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());
124 INLINE std::ostream &operator << (std::ostream &out,
const VirtualFile &file);
A hierarchy of directories and files that appears to be one continuous file system,...
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_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.
A base class for things which need to inherit from both TypedObject and from ReferenceCount.
The abstract base class for a file or directory within the VirtualFileSystem.
A specialization of ordered_vector that emulates a standard STL set: one copy of each element is allo...
A list of VirtualFiles, as returned by VirtualFile::scan_directory().
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
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.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
The abstract base class for a mount definition used within a VirtualFileSystem.
This class records a particular byte sub-range within an existing file on disk.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
TypeHandle is the identifier used to differentiate C++ class types.
A composite directory within the VirtualFileSystem: this maps to more than one directory on different...