14 #ifndef VIRTUALFILESYSTEM_H 15 #define VIRTUALFILESYSTEM_H 46 MF_read_only = 0x0002,
49 BLOCKING
bool mount(
Multifile *multifile,
const Filename &mount_point,
int flags);
50 BLOCKING
bool mount(
const Filename &physical_filename,
const Filename &mount_point,
51 int flags,
const std::string &password =
"");
52 BLOCKING
bool mount_loop(
const Filename &virtual_filename,
const Filename &mount_point,
53 int flags,
const std::string &password =
"");
55 BLOCKING
int unmount(
Multifile *multifile);
56 BLOCKING
int unmount(
const Filename &physical_filename);
58 BLOCKING
int unmount_point(
const Filename &mount_point);
59 BLOCKING
int unmount_all();
61 int get_num_mounts()
const;
63 MAKE_SEQ(get_mounts, get_num_mounts, get_mount);
64 MAKE_SEQ_PROPERTY(mounts, get_num_mounts, get_mount);
66 BLOCKING
bool chdir(
const Filename &new_directory);
68 BLOCKING
bool make_directory(
const Filename &filename);
69 BLOCKING
bool make_directory_full(
const Filename &filename);
71 BLOCKING PT(
VirtualFile) get_file(
const Filename &filename,
bool status_only =
false)
const;
75 bool status_only =
false)
const;
76 BLOCKING
bool delete_file(
const Filename &filename);
77 BLOCKING
bool rename_file(
const Filename &orig_filename,
const Filename &new_filename);
78 BLOCKING
bool copy_file(
const Filename &orig_filename,
const Filename &new_filename);
81 const std::string &default_extension = std::string())
const;
85 BLOCKING INLINE
bool exists(
const Filename &filename)
const;
86 BLOCKING INLINE
bool is_directory(
const Filename &filename)
const;
87 BLOCKING INLINE
bool is_regular_file(
const Filename &filename)
const;
91 INLINE
void ls(
const Filename &filename)
const;
92 INLINE
void ls_all(
const Filename &filename)
const;
94 void write(std::ostream &out)
const;
98 EXTENSION(PyObject *read_file(
const Filename &filename,
bool auto_unwrap)
const);
99 BLOCKING std::istream *open_read_file(
const Filename &filename,
bool auto_unwrap)
const;
100 BLOCKING
static void close_read_file(std::istream *stream);
102 EXTENSION(PyObject *write_file(
const Filename &filename, PyObject *data,
bool auto_wrap));
103 BLOCKING std::ostream *open_write_file(
const Filename &filename,
bool auto_wrap,
bool truncate);
104 BLOCKING std::ostream *open_append_file(
const Filename &filename);
105 BLOCKING
static void close_write_file(std::ostream *stream);
107 BLOCKING std::iostream *open_read_write_file(
const Filename &filename,
bool truncate);
108 BLOCKING std::iostream *open_read_append_file(
const Filename &filename);
109 BLOCKING
static void close_read_write_file(std::iostream *stream);
114 BLOCKING INLINE std::string read_file(
const Filename &filename,
bool auto_unwrap)
const;
115 BLOCKING INLINE
bool write_file(
const Filename &filename,
const std::string &data,
bool auto_wrap);
117 bool atomic_compare_and_exchange_contents(
const Filename &filename, std::string &orig_contents,
const std::string &old_contents,
const std::string &new_contents);
118 bool atomic_read_contents(
const Filename &filename, std::string &contents)
const;
120 INLINE
bool read_file(
const Filename &filename, std::string &result,
bool auto_unwrap)
const;
121 INLINE
bool read_file(
const Filename &filename, vector_uchar &result,
bool auto_unwrap)
const;
122 INLINE
bool write_file(
const Filename &filename,
const unsigned char *data,
size_t data_size,
bool auto_wrap);
124 void scan_mount_points(vector_string &names,
const Filename &path)
const;
126 static void parse_options(
const std::string &options,
127 int &flags, std::string &password);
128 static void parse_option(
const std::string &option,
129 int &flags, std::string &password);
136 OF_status_only = 0x0001,
137 OF_create_file = 0x0002,
138 OF_make_directory = 0x0004,
139 OF_allow_nonexist = 0x0008,
156 const Filename &original_filename,
bool implicit_pz_file,
157 int open_flags)
const;
158 bool consider_mount_mf(
const Filename &filename);
163 unsigned int _mount_seq;
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A hierarchy of directories and files that appears to be one continuous file system,...
This is a convenience class to specialize ConfigVariable as a boolean type.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
The abstract base class for a file or directory within the VirtualFileSystem.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL vector.
A list of VirtualFiles, as returned by VirtualFile::scan_directory().
The name of a file, such as a texture file or an Egg file.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
The abstract base class for a mount definition used within a VirtualFileSystem.
A file that contains a set of files.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This class stores a list of directories that can be searched, in order, to locate a particular file.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A fake mutex implementation for single-threaded applications that don't need any synchronization cont...
A composite directory within the VirtualFileSystem: this maps to more than one directory on different...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.