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;