ScummVM API documentation
Common::File Class Reference

#include <file.h>

Inheritance diagram for Common::File:
Common::SeekableReadStream Common::NonCopyable Common::ReadStream Common::Stream MADS::File MM::Shared::Xeen::File MutationOfJB::EncryptedFile Pink::BroFile Pink::OrbFile Titanic::File Toltecs::ArchiveReader Ultima::Shared::File

Public Member Functions

virtual bool open (const Path &filename)
 
virtual bool open (const Path &filename, Archive &archive)
 
virtual bool open (const FSNode &node)
 
virtual bool open (SeekableReadStream *stream, const String &name)
 
virtual void close ()
 
bool isOpen () const
 
const char * getName () const
 
bool err () const override
 
void clearErr () override
 
bool eos () const override
 
int64 pos () const override
 
int64 size () const override
 
bool seek (int64 offs, int whence=SEEK_SET) override
 
uint32 read (void *dataPtr, uint32 dataSize) override
 
- Public Member Functions inherited from Common::SeekableReadStream
virtual bool skip (uint32 offset)
 
virtual char * readLine (char *s, size_t bufSize, bool handleCR=true)
 
virtual String readLine (bool handleCR=true)
 
void hexdump (int len, int bytesPerLine=16, int startOffset=0)
 
- Public Member Functions inherited from Common::ReadStream
byte readByte ()
 
FORCEINLINE int8 readSByte ()
 
uint16 readUint16LE ()
 
uint32 readUint32LE ()
 
uint64 readUint64LE ()
 
uint16 readUint16BE ()
 
uint32 readUint32BE ()
 
uint64 readUint64BE ()
 
FORCEINLINE int16 readSint16LE ()
 
FORCEINLINE int32 readSint32LE ()
 
FORCEINLINE int64 readSint64LE ()
 
FORCEINLINE int16 readSint16BE ()
 
FORCEINLINE int32 readSint32BE ()
 
FORCEINLINE int64 readSint64BE ()
 
FORCEINLINE float readFloatLE ()
 
FORCEINLINE float readFloatBE ()
 
FORCEINLINE double readDoubleLE ()
 
FORCEINLINE double readDoubleBE ()
 
template<class TDataFormat , class... T>
bool readMultiple (const TDataFormat &dataFormat, T &...values)
 
template<class... T>
bool readMultipleEndian (bool isLittle, T &...values)
 
template<class... T>
bool readMultipleLE (T &...values)
 
template<class... T>
bool readMultipleBE (T &...values)
 
SeekableReadStreamreadStream (uint32 dataSize)
 
String readString (char terminator=0, size_t len=String::npos)
 
Common::String readPascalString (bool transformCR=true)
 

Static Public Member Functions

static bool exists (const Path &filename)
 

Protected Attributes

SeekableReadStream_handle
 
String _name
 

Detailed Description

Member Function Documentation

◆ exists()

static bool Common::File::exists ( const Path filename)
static

Check if a given file exists in any of the current default paths, as defined by SearchMan.

Parameters
filenameThe file to check for.
Returns
True if the file exists, false otherwise.

◆ open() [1/4]

virtual bool Common::File::open ( const Path filename)
virtual

Try to open the file with the given file name, by searching SearchMan.

Note
Must not be called if this file is already open (i.e. if isOpen returns true).
Parameters
filenameName of the file to open.
Returns
True if the file was opened successfully, false otherwise.

Reimplemented in Pink::BroFile, MM::Shared::Xeen::File, Pink::OrbFile, Ultima::Shared::File, and Titanic::File.

◆ open() [2/4]

virtual bool Common::File::open ( const Path filename,
Archive archive 
)
virtual

Try to open the file with the given file name from within the given archive.

Note
Must not be called if this file is already open (i.e. if isOpen returns true).
Parameters
filenameName of the file to open.
archiveArchive in which to search for the file.
Returns
True if the file was opened successfully, false otherwise.

Reimplemented in MM::Shared::Xeen::File, and Ultima::Shared::File.

◆ open() [3/4]

virtual bool Common::File::open ( const FSNode node)
virtual

Try to open the file corresponding to the given node. Will check whether the node actually refers to an existing file (and not a directory), and handle those cases gracefully.

Note
Must not be called if this file already is open (i.e. if isOpen returns true).
Parameters
nodeThe node to consider.
Returns
True if the file was opened successfully, false otherwise.

Reimplemented in MM::Shared::Xeen::File, and Ultima::Shared::File.

◆ open() [4/4]

virtual bool Common::File::open ( SeekableReadStream stream,
const String name 
)
virtual

Try to 'open' the given stream. That is, wrap around it, and if the stream is a NULL pointer, gracefully treat this as if opening failed.

Note
Must not be called if this file already is open (i.e. if isOpen returns true).
Parameters
streamPointer to a SeekableReadStream, or 0.
nameString describing the 'file' corresponding to the stream.
Returns
True if the stream was non-zero, false otherwise.

◆ close()

virtual void Common::File::close ( )
virtual

Close the file, if open.

Reimplemented in Ultima::Shared::File.

◆ isOpen()

bool Common::File::isOpen ( ) const

Check if the object opened a file successfully.

Returns
True if any file is opened, false otherwise.

◆ getName()

const char* Common::File::getName ( ) const
inline

Return the file name of the opened file for debugging purposes.

Returns
The file name of the opened file.

◆ err()

bool Common::File::err ( ) const
overridevirtual

Implement abstract Stream method.

Reimplemented from Common::Stream.

◆ clearErr()

void Common::File::clearErr ( )
overridevirtual

Implement abstract Stream method.

Reimplemented from Common::Stream.

◆ eos()

bool Common::File::eos ( ) const
overridevirtual

Implement abstract SeekableReadStream method.

Implements Common::ReadStream.

◆ pos()

int64 Common::File::pos ( ) const
overridevirtual

Implement abstract SeekableReadStream method.

Implements Common::SeekableReadStream.

◆ size()

int64 Common::File::size ( ) const
overridevirtual

Implement abstract SeekableReadStream method.

Implements Common::SeekableReadStream.

◆ seek()

bool Common::File::seek ( int64  offs,
int  whence = SEEK_SET 
)
overridevirtual

Implement abstract SeekableReadStream method.

Implements Common::SeekableReadStream.

◆ read()

uint32 Common::File::read ( void *  dataPtr,
uint32  dataSize 
)
overridevirtual

Implement abstract SeekableReadStream method.

Implements Common::ReadStream.

Reimplemented in MutationOfJB::EncryptedFile.

Member Data Documentation

◆ _handle

SeekableReadStream* Common::File::_handle
protected

File handle to the actual file; 0 if no file is open.

◆ _name

String Common::File::_name
protected

The name of this file, kept for debugging purposes.


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