Panda3D

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
VirtualFileMountMultifile Class Reference

Maps a Multifile's contents into the VirtualFileSystem. More...

`#include "virtualFileMountMultifile.h"`

Inheritance diagram for VirtualFileMountMultifile:

## Public Member Functions
| VirtualFileMountMultifile (Multifile *multifile)
virtual TypeHandle | force_init_type ()
virtual std::streamsize | get_file_size (const Filename &file) const
| Returns the current size on disk (or wherever it is) of the file before it has been opened.
virtual std::streamsize | get_file_size (const Filename &file, std::istream *stream) const
| Returns the current size on disk (or wherever it is) of the already-open file.
Multifile * | get_multifile () const
| Returns the Multifile pointer that this mount object is based on.
virtual bool | get_system_info (const Filename &file, SubfileInfo &info)
| Populates the SubfileInfo structure with the data representing where the file actually resides on disk, if this is knowable.
virtual time_t | get_timestamp (const Filename &file) const
| Returns a time_t value that represents the time the file was last modified, to within whatever precision the operating system records this information (on a Windows95 system, for instance, this may only be accurate to within 2 seconds).
virtual TypeHandle | get_type () const
virtual bool | has_file (const Filename &file) const
| Returns true if the indicated file exists within the mount system.
virtual bool | is_directory (const Filename &file) const
| Returns true if the indicated file exists within the mount system and is a directory.
virtual bool | is_regular_file (const Filename &file) const
| Returns true if the indicated file exists within the mount system and is a regular file.
virtual std::istream * | open_read_file (const Filename &file) const
| Opens the file for reading, if it exists.
virtual void | output (std::ostream &out) const
virtual bool | read_file (const Filename &file, bool do_uncompress, vector_uchar &result) const
| Fills up the indicated pvector with the contents of the file, if it is a regular file.
virtual bool | scan_directory (vector_string &contents, const Filename &dir) const
| Fills the given vector up with the list of filenames that are local to this directory, if the filename is a directory.
Public Member Functions inherited from VirtualFileMount
virtual bool | atomic_compare_and_exchange_contents (const Filename &file, std::string &orig_contents, const std::string &old_contents, const std::string &new_contents)
| See Filename::atomic_compare_and_exchange_contents().
virtual bool | atomic_read_contents (const Filename &file, std::string &contents) const
| See Filename::atomic_read_contents().
virtual void | close_read_file (std::istream *stream) const
| Closes a file opened by a previous call to open_read_file().
virtual void | close_read_write_file (std::iostream *stream)
| Closes a file opened by a previous call to open_read_write_file().
virtual void | close_write_file (std::ostream *stream)
| Closes a file opened by a previous call to open_write_file().
virtual bool | copy_file (const Filename &orig_filename, const Filename &new_filename)
| Attempts to copy the contents of the indicated file to the indicated file.
virtual bool | create_file (const Filename &file)
| Attempts to create the indicated file within the mount, if it does not already exist.
virtual bool | delete_file (const Filename &file)
| Attempts to delete the indicated file or directory within the mount.
VirtualFileSystem * | get_file_system () const
| Returns the file system this mount object is attached to.
int | get_mount_flags () const
| Returns the set of flags passed by the user to the VirtualFileSystem::mount() command.
const Filename & | get_mount_point () const
| Returns the name of the directory within the virtual file system that this mount object is attached to.
virtual bool | is_writable (const Filename &file) const
| Returns true if the named file or directory may be written to, false otherwise.
virtual bool | make_directory (const Filename &file)
| Attempts to create the indicated file within the mount, if it does not already exist.
virtual PointerTo< VirtualFile > | make_virtual_file (const Filename &local_filename, const Filename &original_filename, bool implicit_pz_file, int open_flags)
| Constructs and returns a new VirtualFile instance that corresponds to the indicated filename within this mount point.
virtual std::ostream * | open_append_file (const Filename &file)
| Works like open_write_file(), but the file is opened in append mode.
virtual std::iostream * | open_read_append_file (const Filename &file)
| Works like open_read_write_file(), but the file is opened in append mode.
std::istream * | open_read_file (const Filename &file, bool do_uncompress) const
| Opens the file for reading.
virtual std::iostream * | open_read_write_file (const Filename &file, bool truncate)
| Opens the file for writing.
std::ostream * | open_write_file (const Filename &file, bool do_compress, bool truncate)
| Opens the file for writing.
virtual std::ostream * | open_write_file (const Filename &file, bool truncate)
| Opens the file for writing.
virtual bool | rename_file (const Filename &orig_filename, const Filename &new_filename)
| Attempts to rename the contents of the indicated file to the indicated file.
virtual void | write (std::ostream &out) const
virtual bool | write_file (const Filename &file, bool do_compress, const unsigned char *data, size_t data_size)
| Writes the indicated data to the file, if it is a writable file.
Public Member Functions inherited from TypedReferenceCount
| TypedReferenceCount (const TypedReferenceCount &copy)
void | operator= (const TypedReferenceCount &copy)
Public Member Functions inherited from TypedObject
| TypedObject (const TypedObject &copy)=default
TypedObject * | as_typed_object ()
| Returns the object, upcast (if necessary) to a TypedObject pointer.
const TypedObject * | as_typed_object () const
| Returns the object, upcast (if necessary) to a TypedObject pointer.
int | get_best_parent_from_Set (const std::set< int > &) const
int | get_type_index () const
| Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.
bool | is_exact_type (TypeHandle handle) const
| Returns true if the current object is the indicated type exactly.
bool | is_of_type (TypeHandle handle) const
| Returns true if the current object is or derives from the indicated type.
TypedObject & | operator= (const TypedObject &copy)=default
Public Member Functions inherited from MemoryBase
void | operator delete (void *, void *)
void | operator delete (void *ptr)
void | operator delete[] (void *, void *)
void | operator delete[] (void *ptr)
void * | operator new (size_t size)
void * | operator new (size_t size, void *ptr)
void * | operator new[] (size_t size)
void * | operator new[] (size_t size, void *ptr)
Public Member Functions inherited from ReferenceCount
int | get_ref_count () const
WeakReferenceList * | get_weak_list () const
| Returns the WeakReferenceList associated with this ReferenceCount object.
bool | has_weak_list () const
| Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise.
void | local_object ()
| This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack.
void | ref () const
| Explicitly increments the reference count.
bool | ref_if_nonzero () const
| Atomically increases the reference count of this object if it is not zero.
bool | test_ref_count_integrity () const
| Does some easy checks to make sure that the reference count isn't completely bogus.
bool | test_ref_count_nonzero () const
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus.
virtual bool | unref () const
| Explicitly decrements the reference count.
bool | unref_if_one () const
| Atomically decreases the reference count of this object if it is one.
WeakReferenceList * | weak_ref ()
| Adds the indicated PointerToVoid as a weak reference to this object.
void | weak_unref ()
| Removes the indicated PointerToVoid as a weak reference to this object.

## Static Public Member Functions
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from VirtualFileMount
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from TypedReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from TypedObject
static TypeHandle | get_class_type ()
static void | init_type ()
| This function is declared non-inline to work around a compiler bug in g++ 2.96.
Static Public Member Functions inherited from ReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()

## Additional Inherited Members
Public Attributes inherited from TypedObject
| get_type
Public Attributes inherited from ReferenceCount
| get_ref_count
| Returns the current reference count.

## Detailed Description

Maps a Multifile's contents into the VirtualFileSystem.

Definition at line 26 of file virtualFileMountMultifile.h.

## Constructor & Destructor Documentation

## ◆ VirtualFileMountMultifile()

VirtualFileMountMultifile::VirtualFileMountMultifile | ( | Multifile * | multifile | ) |
| inline

Definition at line 17 of file virtualFileMountMultifile.I.

## ◆ ~VirtualFileMountMultifile()

VirtualFileMountMultifile::~VirtualFileMountMultifile | ( |  | ) |
| virtual

Definition at line 23 of file virtualFileMountMultifile.cxx.

## Member Function Documentation

## ◆ force_init_type()

virtual TypeHandle VirtualFileMountMultifile::force_init_type | ( |  | ) |
| inline virtual

Reimplemented from VirtualFileMount.

Definition at line 60 of file virtualFileMountMultifile.h.

## ◆ get_class_type()

static TypeHandle VirtualFileMountMultifile::get_class_type | ( |  | ) |
| inline static

Definition at line 61 of file virtualFileMountMultifile.h.

## ◆ get_file_size() [1/2]

std::streamsize VirtualFileMountMultifile::get_file_size | ( | const Filename & | file | ) | const
| virtual

Returns the current size on disk (or wherever it is) of the file before it has been opened.

Implements VirtualFileMount.

Definition at line 120 of file virtualFileMountMultifile.cxx.

## ◆ get_file_size() [2/2]

std::streamsize VirtualFileMountMultifile::get_file_size | ( | const Filename & | file,
|  | std::istream * | stream ) const
| virtual

Returns the current size on disk (or wherever it is) of the already-open file.

Pass in the stream that was returned by open_read_file(); some implementations may require this stream to determine the size.

Implements VirtualFileMount.

Definition at line 107 of file virtualFileMountMultifile.cxx.

## ◆ get_multifile()

Multifile * VirtualFileMountMultifile::get_multifile | ( |  | ) | const
| inline

Returns the Multifile pointer that this mount object is based on.

Definition at line 26 of file virtualFileMountMultifile.I.

Referenced by VirtualFileSystem::unmount(), and VirtualFileSystem::unmount().

## ◆ get_system_info()

bool VirtualFileMountMultifile::get_system_info | ( | const Filename & | file,
|  | SubfileInfo & | info )
| virtual

Populates the SubfileInfo structure with the data representing where the file actually resides on disk, if this is knowable.

Returns true if the file might reside on disk, and the info is populated, or false if it might not (or it is not known where the file resides), in which case the info is meaningless.

Reimplemented from VirtualFileMount.

Definition at line 155 of file virtualFileMountMultifile.cxx.

## ◆ get_timestamp()

time_t VirtualFileMountMultifile::get_timestamp | ( | const Filename & | file | ) | const
| virtual

Returns a time_t value that represents the time the file was last modified, to within whatever precision the operating system records this information (on a Windows95 system, for instance, this may only be accurate to within 2 seconds).

If the timestamp cannot be determined, either because it is not supported by the operating system or because there is some error (such as file not found), returns 0.

Implements VirtualFileMount.

Definition at line 139 of file virtualFileMountMultifile.cxx.

## ◆ get_type()

virtual TypeHandle VirtualFileMountMultifile::get_type | ( |  | ) | const
| inline virtual

Reimplemented from VirtualFileMount.

Definition at line 57 of file virtualFileMountMultifile.h.

## ◆ has_file()

bool VirtualFileMountMultifile::has_file | ( | const Filename & | file | ) | const
| virtual

Returns true if the indicated file exists within the mount system.

Implements VirtualFileMount.

Definition at line 31 of file virtualFileMountMultifile.cxx.

## ◆ init_type()

static void VirtualFileMountMultifile::init_type | ( |  | ) |
| inline static

Definition at line 64 of file virtualFileMountMultifile.h.

## ◆ is_directory()

bool VirtualFileMountMultifile::is_directory | ( | const Filename & | file | ) | const
| virtual

Returns true if the indicated file exists within the mount system and is a directory.

Implements VirtualFileMount.

Definition at line 42 of file virtualFileMountMultifile.cxx.

## ◆ is_regular_file()

bool VirtualFileMountMultifile::is_regular_file | ( | const Filename & | file | ) | const
| virtual

Returns true if the indicated file exists within the mount system and is a regular file.

Implements VirtualFileMount.

Definition at line 51 of file virtualFileMountMultifile.cxx.

## ◆ open_read_file()

std::istream * VirtualFileMountMultifile::open_read_file | ( | const Filename & | file | ) | const
| virtual

Opens the file for reading, if it exists.

Returns a newly allocated istream on success (which you should eventually delete when you are done reading). Returns NULL on failure.

Implements VirtualFileMount.

Definition at line 88 of file virtualFileMountMultifile.cxx.

## ◆ output()

void VirtualFileMountMultifile::output | ( | std::ostream & | out | ) | const
| virtual

Reimplemented from VirtualFileMount.

Definition at line 191 of file virtualFileMountMultifile.cxx.

## ◆ read_file()

bool VirtualFileMountMultifile::read_file | ( | const Filename & | file,
|  | bool | do_uncompress,
|  | vector_uchar & | result ) const
| virtual

Fills up the indicated pvector with the contents of the file, if it is a regular file.

Returns true on success, false otherwise.

Reimplemented from VirtualFileMount.

Definition at line 60 of file virtualFileMountMultifile.cxx.

References VirtualFileMount::read_file().

## ◆ scan_directory()

bool VirtualFileMountMultifile::scan_directory | ( | vector_string & | contents,
|  | const Filename & | dir ) const
| virtual

Fills the given vector up with the list of filenames that are local to this directory, if the filename is a directory.

Returns true if successful, or false if the file is not a directory or cannot be read.

Implements VirtualFileMount.

Definition at line 182 of file virtualFileMountMultifile.cxx.

The documentation for this class was generated from the following files:

- panda/src/express/virtualFileMountMultifile.h
- panda/src/express/virtualFileMountMultifile.cxx
- panda/src/express/virtualFileMountMultifile.I