My Project
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
ParaEngine::CArchive Class Referenceabstract

file archiver base class. More...

#include <Archive.h>

Inheritance diagram for ParaEngine::CArchive:
ParaEngine::IAttributeFields ParaEngine::IObject ParaEngine::CRefCounted ParaEngine::CZipArchive

Public Member Functions

 ATTRIBUTE_DEFINE_CLASS (CArchive)
 
virtual DWORD GetType ()
 
virtual const std::string & GetIdentifier ()
 
const string & GetArchiveName () const
 
virtual bool IsArchive (const std::string &sFilename)
 whether the archive represent the given file. More...
 
virtual bool Open (const string &sArchiveName, int nPriority)
 open archive More...
 
virtual void Close ()
 close archive
 
virtual bool DoesFileExist (const string &filename)=0
 Check whether a given file exists. More...
 
virtual bool OpenFile (const char *filename, FileHandle &handle)=0
 Open a file for immediate reading. More...
 
virtual bool OpenFile (const ArchiveFileFindItem *item, FileHandle &handle)=0
 Open a file for immediate reading. More...
 
virtual DWORD GetFileSize (FileHandle &handle)=0
 get file size. More...
 
virtual bool ReadFile (FileHandle &handle, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead)=0
 read file. More...
 
virtual bool ReadFileRaw (FileHandle &handle, LPVOID *lppBuffer, LPDWORD pnCompressedSize, LPDWORD pnUncompressedSize)
 read the raw (may be compressed file) More...
 
virtual bool WriteFile (FileHandle &handle, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten)
 
virtual bool CloseFile (FileHandle &hFile)=0
 close file. More...
 
virtual bool CreateNewFile (const char *filename, FileHandle &handle, bool bAutoMakeFilePath=true)
 create a new file for writing More...
 
virtual void SetRootDirectory (const string &filename)
 set root directory More...
 
virtual void SetBaseDirectory (const char *filename)
 set the base directory to be removed from the relative path of all files in the zip file. More...
 
virtual void FindFiles (CSearchResult &result, const string &sRootPath, const string &sFilePattern, int nSubLevel)
 this is a recursive function. More...
 
virtual bool IsIgnoreCase () const
 
- Public Member Functions inherited from ParaEngine::IAttributeFields
virtual int GetAttributeClassID ()
 attribute class ID should be identical, unless one knows how overriding rules work. More...
 
virtual const char * GetAttributeClassName ()
 a static string, describing the attribute class object's name
 
virtual const char * GetAttributeClassDescription ()
 a static string, describing the attribute class object
 
virtual int InstallFields (CAttributeClass *pClass, bool bOverride)
 this class should be implemented if one wants to add new attribute. More...
 
virtual int GetChildAttributeColumnCount ()
 we support multi-dimensional child object. More...
 
virtual int GetChildAttributeObjectCount (int nColumnIndex=0)
 get the number of child objects (row count) in the given column. More...
 
virtual IAttributeFieldsGetChildAttributeObject (int nRowIndex, int nColumnIndex=0)
 
virtual IAttributeFieldsGetChildAttributeObject (const std::string &sName)
 get attribute by child object. More...
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetName_s, const char **)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetName_s, const char *)
 
 ATTRIBUTE_METHOD (IAttributeFields, PrintObject_s)
 
 ATTRIBUTE_METHOD (IAttributeFields, AddRef_s)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetRefCount_s, int *)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetTime_s, int)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetTime_s, int *)
 
 ATTRIBUTE_METHOD (IAttributeFields, Release_s)
 
virtual void SetIdentifier (const std::string &sID)
 
virtual bool IsModified ()
 whether some of the fields are modified.It is up to the implementation class to provide this functionality if necessary. More...
 
virtual void SetModified (bool bModified)
 set whether any field has been modified. More...
 
virtual bool ValidateFields ()
 validate all fields and return true if validation passed. More...
 
virtual string GetValidationMessage ()
 get the recent validation message due to the most recent call to ValidateFields()
 
virtual bool ResetField (int nFieldID)
 Reset the field to its initial or default value. More...
 
virtual bool InvokeEditor (int nFieldID, const std::string &sParameters)
 Invoke an (external) editor for a given field. More...
 
virtual bool AddChildAttributeObject (IAttributeFields *pChild, int nRowIndex=-1, int nColumnIndex=0)
 add child object. More...
 
virtual void * QueryObjectByName (const std::string &sObjectType)
 convert to object of a given type. More...
 
virtual void * QueryObject (int nObjectType)
 convert to object of a given type. More...
 
virtual int GetTime ()
 get the current local time in case it is animated in milli seconds frames. More...
 
virtual void SetTime (int nTime)
 
virtual CDynamicAttributeFieldGetDynamicField (const std::string &sName)
 Get a dynamic field with a given name. More...
 
virtual CDynamicAttributeFieldGetDynamicField (int nIndex)
 Get a dynamic field with a given index. More...
 
virtual const char * GetDynamicFieldNameByIndex (int nIndex)
 get field name by index
 
virtual int GetDynamicFieldCount ()
 how many dynamic field this object currently have. More...
 
virtual int SetDynamicField (const std::string &sName, const CVariable &value)
 set a dynamic field with a given name. More...
 
virtual int AddDynamicField (const std::string &sName, ATTRIBUTE_FIELDTYPE dwType)
 add dynamic field and return field index
 
virtual void RemoveAllDynamicFields ()
 remove all dynamic fields
 
virtual int SaveDynamicFieldsToString (std::string &output)
 save only text dynamic fields to fieldname = value text strings. More...
 
virtual int LoadDynamicFieldsFromString (const std::string &input)
 load only text dynamic fields from string More...
 
CAttributeClassGetAttributeClass ()
 get the main attribute class object. More...
 
void PrintObject ()
 print the content of this object to a text file at temp/doc/[ClassName].txt. More...
 
- Public Member Functions inherited from ParaEngine::IObject
virtual void Clone (IObject *obj) const
 Clone the object's contains to a pointer. More...
 
virtual IObjectClone () const
 Clone the object's contains and return a pointer to the newly created object. More...
 
virtual bool Equals (const IObject *obj) const
 Compare the object with another object. More...
 
virtual const ITypeGetType () const
 
virtual std::string ToString () const
 
WeakPtr_typeGetWeakReference ()
 get weak reference object. More...
 
virtual int ProcessObjectEvent (const ObjectEvent &event)
 this function is only used to backward compatibility of ParaObject:AddEvent() function. More...
 
- Public Member Functions inherited from ParaEngine::CRefCounted
void addref () const
 add reference count of the object. More...
 
bool delref () const
 decrease reference count of the object. More...
 
int GetRefCount () const
 get the reference count
 
virtual int Release ()
 
CRefCountedAddToAutoReleasePool ()
 addref and releases the ownership sometime soon automatically (usually at the end of the current frame). More...
 

Static Public Member Functions

static DWORD TypeID ()
 
- Static Public Member Functions inherited from ParaEngine::IAttributeFields
static HRESULT GetAttributeClassID_s (IAttributeFields *cls, int *p1)
 
static HRESULT GetAttributeClassName_s (IAttributeFields *cls, const char **p1)
 
static bool OpenWithDefaultEditor (const char *sFilename, bool bWaitOnReturn=false)
 Open a given file with the default registered editor in the game engine. More...
 

Protected Attributes

string m_filename
 file name
 
FileHandle m_archiveHandle
 
bool m_bOpened
 
int m_nPriority
 
- Protected Attributes inherited from ParaEngine::IObject
WeakPtr_type m_weak_reference
 
- Protected Attributes inherited from ParaEngine::CRefCounted
int m_refcount
 

Additional Inherited Members

- Public Types inherited from ParaEngine::IAttributeFields
typedef ParaEngine::weak_ptr< IObject, IAttributeFieldsWeakPtr_type
 
- Public Types inherited from ParaEngine::IObject
typedef ParaEngine::weak_ptr< IObjectWeakPtr_type
 
- Protected Member Functions inherited from ParaEngine::IAttributeFields
virtual CAttributeClassCreateAttributeClass ()
 initialize fields
 
virtual CDynamicAttributesSetGetDynamicAttributes (bool bCreateIfNotExist=false)
 

Detailed Description

file archiver base class.

Member Function Documentation

§ CloseFile()

virtual bool ParaEngine::CArchive::CloseFile ( FileHandle hFile)
pure virtual

close file.

Implemented in ParaEngine::CZipArchive.

§ CreateNewFile()

virtual bool ParaEngine::CArchive::CreateNewFile ( const char *  filename,
FileHandle handle,
bool  bAutoMakeFilePath = true 
)
inlinevirtual

create a new file for writing

Parameters
bAutoMakeFilePathif true, the file path will be created, if not exists

§ DoesFileExist()

virtual bool ParaEngine::CArchive::DoesFileExist ( const string &  filename)
pure virtual

Check whether a given file exists.

Parameters
filenamefile name to check

Implemented in ParaEngine::CZipArchive.

§ FindFiles()

virtual void ParaEngine::CArchive::FindFiles ( CSearchResult result,
const string &  sRootPath,
const string &  sFilePattern,
int  nSubLevel 
)
inlinevirtual

this is a recursive function.

Finding a file inside the zip. search files at once.

See also
CSearchResult the current version of this function can support only one query at a time. The search result is invalid if called intermittently
Parameters
sRootPaththe parent path inside the zip where to search for. for example: "", "xmodel/","xmodel/models/". Other format is not acceptable
sFilePatternfile pattern, e.g. "*.x" (all files with x extension), "*" (any files), "*."(directories only)
nSubLevelhow many sub folders of sRootPath to look into. default value is 0, which only searches the sRootPath folder.

Reimplemented in ParaEngine::CZipArchive.

§ GetFileSize()

virtual DWORD ParaEngine::CArchive::GetFileSize ( FileHandle handle)
pure virtual

get file size.

Implemented in ParaEngine::CZipArchive.

§ IsArchive()

bool ParaEngine::CArchive::IsArchive ( const std::string &  sFilename)
virtual

whether the archive represent the given file.

Please note that pkg and zip file extension and slash letters are ignored.

Parameters
sFilenameis archive name

§ Open()

bool ParaEngine::CArchive::Open ( const string &  sArchiveName,
int  nPriority 
)
virtual

open archive

Parameters
nPrioritythe smaller the number, the higher the priority with regard to other archive

Reimplemented in ParaEngine::CZipArchive.

§ OpenFile() [1/2]

virtual bool ParaEngine::CArchive::OpenFile ( const char *  filename,
FileHandle handle 
)
pure virtual

Open a file for immediate reading.

call getBuffer() to retrieval the data

Parameters
filenamethe file name to open
handleto the opened file.
Returns
: true if succeeded.

Implemented in ParaEngine::CZipArchive.

§ OpenFile() [2/2]

virtual bool ParaEngine::CArchive::OpenFile ( const ArchiveFileFindItem item,
FileHandle handle 
)
pure virtual

Open a file for immediate reading.

call getBuffer() to retrieval the data

Parameters
itemthe file find item to open
handleto the opened file.
Returns
: true if succeeded.

Implemented in ParaEngine::CZipArchive.

§ ReadFile()

virtual bool ParaEngine::CArchive::ReadFile ( FileHandle handle,
LPVOID  lpBuffer,
DWORD  nNumberOfBytesToRead,
LPDWORD  lpNumberOfBytesRead 
)
pure virtual

read file.

Implemented in ParaEngine::CZipArchive.

§ ReadFileRaw()

virtual bool ParaEngine::CArchive::ReadFileRaw ( FileHandle handle,
LPVOID *  lppBuffer,
LPDWORD  pnCompressedSize,
LPDWORD  pnUncompressedSize 
)
inlinevirtual

read the raw (may be compressed file)

Parameters
lppBufferthe buffer to hold the (compressed) output data. one need to use the SAFE_DELETE_ARRAY() to delete the output data.
pnCompressedSizeoutput the size of the compressed data
pnUncompressedSize:outputthe size of the uncompressed data. if 0, it means that the data is not compressed.
Returns
true if succeed.

Reimplemented in ParaEngine::CZipArchive.

§ SetBaseDirectory()

virtual void ParaEngine::CArchive::SetBaseDirectory ( const char *  filename)
inlinevirtual

set the base directory to be removed from the relative path of all files in the zip file.

call this function only once, it will actually modify the relative file path.

Reimplemented in ParaEngine::CZipArchive.

§ SetRootDirectory()

virtual void ParaEngine::CArchive::SetRootDirectory ( const string &  filename)
inlinevirtual

set root directory

Parameters
filenamethe parent directory filename will be regarded as the root directory. m_bRelativePath will be set to false if filename or its parent directory is ""; otherwise it will be set to true.

Reimplemented in ParaEngine::CZipArchive.


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