41 virtual Filename get_filename()
const=0;
42 INLINE
const Filename &get_original_filename()
const;
44 virtual bool has_file()
const;
45 virtual bool is_directory()
const;
46 virtual bool is_regular_file()
const;
47 virtual bool is_writable()
const;
49 BLOCKING
virtual bool delete_file();
50 BLOCKING
virtual bool rename_file(
VirtualFile *new_file);
51 BLOCKING
virtual bool copy_file(
VirtualFile *new_file);
55 void output(std::ostream &out)
const;
56 BLOCKING
void ls(std::ostream &out = std::cout)
const;
57 BLOCKING
void ls_all(std::ostream &out = std::cout)
const;
59 EXTENSION(PyObject *read_file(
bool auto_unwrap)
const);
60 BLOCKING
virtual std::istream *open_read_file(
bool auto_unwrap)
const;
61 BLOCKING
virtual void close_read_file(std::istream *stream)
const;
62 virtual bool was_read_successful()
const;
64 EXTENSION(PyObject *write_file(PyObject *data,
bool auto_wrap));
65 BLOCKING
virtual std::ostream *open_write_file(
bool auto_wrap,
bool truncate);
66 BLOCKING
virtual std::ostream *open_append_file();
67 BLOCKING
virtual void close_write_file(std::ostream *stream);
69 BLOCKING
virtual std::iostream *open_read_write_file(
bool truncate);
70 BLOCKING
virtual std::iostream *open_read_append_file();
71 BLOCKING
virtual void close_read_write_file(std::iostream *stream);
73 BLOCKING
virtual std::streamsize get_file_size(std::istream *stream)
const;
74 BLOCKING
virtual std::streamsize get_file_size()
const;
75 BLOCKING
virtual time_t get_timestamp()
const;
80 virtual bool atomic_compare_and_exchange_contents(std::string &orig_contents,
const std::string &old_contents,
const std::string &new_contents);
81 virtual bool atomic_read_contents(std::string &contents)
const;
83 INLINE std::string read_file(
bool auto_unwrap)
const;
84 INLINE
bool write_file(
const std::string &data,
bool auto_wrap);
86 INLINE
void set_original_filename(
const Filename &filename);
87 bool read_file(std::string &result,
bool auto_unwrap)
const;
88 virtual bool read_file(vector_uchar &result,
bool auto_unwrap)
const;
89 virtual bool write_file(
const unsigned char *data,
size_t data_size,
bool auto_wrap);
91 static bool simple_read_file(std::istream *stream, vector_uchar &result);
92 static bool simple_read_file(std::istream *stream, vector_uchar &result,
size_t max_bytes);
99 void r_ls_all(std::ostream &out,
const Filename &root)
const;
106 return get_class_type();
108 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
112 static void init_type() {
113 TypedReferenceCount::init_type();
115 TypedReferenceCount::get_class_type());
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...