Panda3D
Public Member Functions | Static Public Member Functions | List of all members
VirtualFile Class Reference

The abstract base class for a file or directory within the VirtualFileSystem. More...

Inheritance diagram for VirtualFile:
TypedReferenceCount TypedObject ReferenceCount VirtualFileComposite VirtualFileHTTP VirtualFileSimple

Public Member Functions

 closeReadFile (Istream stream)
 Closes a file opened by a previous call to open_read_file(). More...
 
 closeReadWriteFile (Iostream stream)
 Closes a file opened by a previous call to open_read_write_file(). More...
 
 closeWriteFile (Ostream stream)
 Closes a file opened by a previous call to open_write_file(). More...
 
bool copyFile (VirtualFile new_file)
 Attempts to copy the contents of this file to the indicated file. More...
 
bool deleteFile ()
 Attempts to delete this file or directory. More...
 
Filename getFilename ()
 
Streamsize getFileSize ()
 Returns the current size on disk (or wherever it is) of the file before it has been opened. More...
 
Streamsize getFileSize (Istream stream)
 Returns the current size on disk (or wherever it is) of the already-open file. More...
 
VirtualFileSystem getFileSystem ()
 
const Filename getOriginalFilename ()
 Returns the original filename as it was used to locate this VirtualFile. More...
 
bool getSystemInfo (SubfileInfo info)
 Populates the SubfileInfo structure with the data representing where the file actually resides on disk, if this is knowable. More...
 
time_t getTimestamp ()
 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). More...
 
bool hasFile ()
 Returns true if this file exists, false otherwise. More...
 
bool isDirectory ()
 Returns true if this file represents a directory (and scan_directory() may be called), false otherwise. More...
 
bool isRegularFile ()
 Returns true if this file represents a regular file (and read_file() may be called), false otherwise. More...
 
bool isWritable ()
 Returns true if this file may be written to, which implies write_file() may be called (unless it is a directory instead of a regular file). More...
 
 ls (Ostream out)
 If the file represents a directory, lists its contents. More...
 
 lsAll (Ostream out)
 If the file represents a directory, recursively lists its contents and those of all subdirectories. More...
 
Ostream openAppendFile ()
 Works like open_write_file(), but the file is opened in append mode. More...
 
Iostream openReadAppendFile ()
 Works like open_read_write_file(), but the file is opened in append mode. More...
 
Istream openReadFile (bool auto_unwrap)
 Opens the file for reading. More...
 
Iostream openReadWriteFile (bool truncate)
 Opens the file for writing. More...
 
Ostream openWriteFile (bool auto_wrap, bool truncate)
 Opens the file for writing. More...
 
 output (Ostream out)
 
object readFile (bool auto_unwrap)
 Returns the entire contents of the file as a string. More...
 
bool renameFile (VirtualFile new_file)
 Attempts to move or rename this file or directory. More...
 
VirtualFileList scanDirectory ()
 If the file represents a directory (that is, is_directory() returns true), this returns the list of files within the directory at the current time. More...
 
bool wasReadSuccessful ()
 Call this method after a reading the istream returned by open_read_file() to completion. More...
 
object writeFile (object data, bool auto_wrap)
 
- Public Member Functions inherited from TypedObject
TypeHandle getType ()
 
int getTypeIndex ()
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
 
bool isExactType (TypeHandle handle)
 Returns true if the current object is the indicated type exactly. More...
 
bool isOfType (TypeHandle handle)
 Returns true if the current object is or derives from the indicated type. More...
 
- Public Member Functions inherited from ReferenceCount
int getRefCount ()
 Returns the current reference count. More...
 
 ref ()
 Explicitly increments the reference count. More...
 
bool testRefCountIntegrity ()
 Does some easy checks to make sure that the reference count isn't completely bogus. More...
 
bool testRefCountNonzero ()
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
 
bool unref ()
 Explicitly decrements the reference count. More...
 

Static Public Member Functions

static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedReferenceCount
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedObject
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle getClassType ()
 

Additional Inherited Members

- Public Attributes inherited from TypedObject
TypeHandle type
 Returns the TypeHandle representing this object's type. More...
 
- Public Attributes inherited from ReferenceCount
int ref_count
 The current reference count. More...
 

Detailed Description

The abstract base class for a file or directory within the VirtualFileSystem.

Member Function Documentation

◆ closeReadFile()

closeReadFile ( Istream  stream)

Closes a file opened by a previous call to open_read_file().

This really just deletes the istream pointer, but it is recommended to use this interface instead of deleting it explicitly, to help work around compiler issues.

◆ closeReadWriteFile()

closeReadWriteFile ( Iostream  stream)

Closes a file opened by a previous call to open_read_write_file().

This really just deletes the iostream pointer, but it is recommended to use this interface instead of deleting it explicitly, to help work around compiler issues.

◆ closeWriteFile()

closeWriteFile ( Ostream  stream)

Closes a file opened by a previous call to open_write_file().

This really just deletes the ostream pointer, but it is recommended to use this interface instead of deleting it explicitly, to help work around compiler issues.

◆ copyFile()

bool copyFile ( VirtualFile  new_file)

Attempts to copy the contents of this file to the indicated file.

Returns true on success, false on failure.

◆ deleteFile()

bool deleteFile ( )

Attempts to delete this file or directory.

This can remove a single file or an empty directory. It will not remove a nonempty directory. Returns true on success, false on failure.

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getFilename()

Filename getFilename ( )

◆ getFileSize() [1/2]

Streamsize getFileSize ( )

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

◆ getFileSize() [2/2]

Streamsize getFileSize ( Istream  stream)

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.

◆ getFileSystem()

VirtualFileSystem getFileSystem ( )

◆ getOriginalFilename()

const Filename getOriginalFilename ( )

Returns the original filename as it was used to locate this VirtualFile.

This is usually, but not always, the same string returned by get_filename().

◆ getSystemInfo()

bool getSystemInfo ( SubfileInfo  info)

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 does not (or it is not known where the file resides), in which case the info is meaningless.

◆ getTimestamp()

time_t getTimestamp ( )

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.

◆ hasFile()

bool hasFile ( )

Returns true if this file exists, false otherwise.

◆ isDirectory()

bool isDirectory ( )

Returns true if this file represents a directory (and scan_directory() may be called), false otherwise.

◆ isRegularFile()

bool isRegularFile ( )

Returns true if this file represents a regular file (and read_file() may be called), false otherwise.

◆ isWritable()

bool isWritable ( )

Returns true if this file may be written to, which implies write_file() may be called (unless it is a directory instead of a regular file).

◆ ls()

ls ( Ostream  out)

If the file represents a directory, lists its contents.

◆ lsAll()

lsAll ( Ostream  out)

If the file represents a directory, recursively lists its contents and those of all subdirectories.

◆ openAppendFile()

Ostream openAppendFile ( )

Works like open_write_file(), but the file is opened in append mode.

Like open_write_file, the returned pointer should eventually be passed to close_write_file().

◆ openReadAppendFile()

Iostream openReadAppendFile ( )

Works like open_read_write_file(), but the file is opened in append mode.

Like open_read_write_file, the returned pointer should eventually be passed to close_read_write_file().

◆ openReadFile()

Istream openReadFile ( bool  auto_unwrap)

Opens the file for reading.

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

◆ openReadWriteFile()

Iostream openReadWriteFile ( bool  truncate)

Opens the file for writing.

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

◆ openWriteFile()

Ostream openWriteFile ( bool  auto_wrap,
bool  truncate 
)

Opens the file for writing.

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

◆ output()

output ( Ostream  out)

◆ readFile()

object readFile ( bool  auto_unwrap)

Returns the entire contents of the file as a string.

◆ renameFile()

bool renameFile ( VirtualFile  new_file)

Attempts to move or rename this file or directory.

If the original file is an ordinary file, it will quietly replace any already-existing file in the new filename (but not a directory). If the original file is a directory, the new filename must not already exist.

If the file is a directory, the new filename must be within the same mount point. If the file is an ordinary file, the new filename may be anywhere; but if it is not within the same mount point then the rename operation is automatically performed as a two-step copy-and-delete operation.

◆ scanDirectory()

VirtualFileList scanDirectory ( )

If the file represents a directory (that is, is_directory() returns true), this returns the list of files within the directory at the current time.

Returns NULL if the file is not a directory or if the directory cannot be read.

◆ wasReadSuccessful()

bool wasReadSuccessful ( )

Call this method after a reading the istream returned by open_read_file() to completion.

If it returns true, the file was read completely and without error; if it returns false, there may have been some errors or a truncated file read. This is particularly likely if the stream is a VirtualFileHTTP.

◆ writeFile()

object writeFile ( object  data,
bool  auto_wrap 
)