OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::Archive Class Referenceabstract

Archive-handling class. More...

#include <OgreArchive.h>

+ Inheritance diagram for Ogre::Archive:

Public Member Functions

 Archive (const String &name, const String &archType)
 Constructor - don't call direct, used by ArchiveFactory. More...
 
virtual ~Archive ()
 Default destructor. More...
 
virtual DataStreamPtr create (const String &filename)
 Create a new file (or overwrite one already there). More...
 
virtual bool exists (const String &filename)=0
 Find out if the named file exists (note: fully qualified filename required) More...
 
virtual StringVectorPtr find (const String &pattern, bool recursive=true, bool dirs=false)=0
 Find all file or directory names matching a given pattern in this archive. More...
 
virtual FileInfoListPtr findFileInfo (const String &pattern, bool recursive=true, bool dirs=false)=0
 Find all files or directories matching a given pattern in this archive and get some detailed information about them. More...
 
virtual time_t getModifiedTime (const String &filename)=0
 Retrieve the modification time of a given file. More...
 
const StringgetName () const
 Get the name of this archive. More...
 
const StringgetType () const
 Return the type code of this Archive. More...
 
virtual bool isCaseSensitive () const =0
 Returns whether this archive is case sensitive in the way it matches files. More...
 
virtual bool isReadOnly () const
 Reports whether this Archive is read-only, or whether the contents can be updated. More...
 
virtual StringVectorPtr list (bool recursive=true, bool dirs=false)=0
 List all file names in the archive. More...
 
virtual FileInfoListPtr listFileInfo (bool recursive=true, bool dirs=false)=0
 List all files in the archive with accompanying information. More...
 
virtual void load ()=0
 Loads the archive. More...
 
virtual DataStreamPtr open (const String &filename, bool readOnly=true)=0
 Open a stream on a given file. More...
 
virtual void remove (const String &filename)
 Delete a named file. More...
 
virtual void unload ()=0
 Unloads the archive. More...
 

Detailed Description

Archive-handling class.

Remarks
An archive is a generic term for a container of files. This may be a filesystem folder, it may be a compressed archive, it may even be a remote location shared on the web. This class is designed to be subclassed to provide access to a range of file locations.
Instances of this class are never constructed or even handled by end-user applications. They are constructed by custom ArchiveFactory classes, which plugins can register new instances of using ArchiveManager. End-user applications will typically use ResourceManager or ResourceGroupManager to manage resources at a higher level, rather than reading files directly through this class. Doing it this way allows you to benefit from OGRE's automatic searching of multiple file locations for the resources you are looking for.

Constructor & Destructor Documentation

◆ Archive()

Ogre::Archive::Archive ( const String name,
const String archType 
)
inline

Constructor - don't call direct, used by ArchiveFactory.

◆ ~Archive()

virtual Ogre::Archive::~Archive ( )
inlinevirtual

Default destructor.

Member Function Documentation

◆ create()

virtual DataStreamPtr Ogre::Archive::create ( const String filename)
virtual

Create a new file (or overwrite one already there).

Note
If the archive is read-only then this method will fail.
Parameters
filenameThe fully qualified name of the file
Returns
A shared pointer to a DataStream which can be used to read / write the file.

Reimplemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ exists()

virtual bool Ogre::Archive::exists ( const String filename)
pure virtual

Find out if the named file exists (note: fully qualified filename required)

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ find()

virtual StringVectorPtr Ogre::Archive::find ( const String pattern,
bool  recursive = true,
bool  dirs = false 
)
pure virtual

Find all file or directory names matching a given pattern in this archive.

Note
This method only returns filenames, you can also retrieve other information using findFileInfo.
Parameters
patternThe pattern to search for; wildcards (*) are allowed
recursiveWhether all paths of the archive are searched (if the archive has a concept of that)
dirsSet to true if you want the directories to be listed instead of files
Returns
A list of filenames matching the criteria, all are fully qualified

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ findFileInfo()

virtual FileInfoListPtr Ogre::Archive::findFileInfo ( const String pattern,
bool  recursive = true,
bool  dirs = false 
)
pure virtual

Find all files or directories matching a given pattern in this archive and get some detailed information about them.

Parameters
patternThe pattern to search for; wildcards (*) are allowed
recursiveWhether all paths of the archive are searched (if the archive has a concept of that)
dirsSet to true if you want the directories to be listed instead of files
Returns
A list of file information structures for all files matching the criteria.

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ getModifiedTime()

virtual time_t Ogre::Archive::getModifiedTime ( const String filename)
pure virtual

Retrieve the modification time of a given file.

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ getName()

const String& Ogre::Archive::getName ( ) const
inline

Get the name of this archive.

◆ getType()

const String& Ogre::Archive::getType ( ) const
inline

Return the type code of this Archive.

◆ isCaseSensitive()

virtual bool Ogre::Archive::isCaseSensitive ( ) const
pure virtual

Returns whether this archive is case sensitive in the way it matches files.

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ isReadOnly()

virtual bool Ogre::Archive::isReadOnly ( ) const
inlinevirtual

Reports whether this Archive is read-only, or whether the contents can be updated.

◆ list()

virtual StringVectorPtr Ogre::Archive::list ( bool  recursive = true,
bool  dirs = false 
)
pure virtual

List all file names in the archive.

Note
This method only returns filenames, you can also retrieve other information using listFileInfo.
Parameters
recursiveWhether all paths of the archive are searched (if the archive has a concept of that)
dirsSet to true if you want the directories to be listed instead of files
Returns
A list of filenames matching the criteria, all are fully qualified

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ listFileInfo()

virtual FileInfoListPtr Ogre::Archive::listFileInfo ( bool  recursive = true,
bool  dirs = false 
)
pure virtual

List all files in the archive with accompanying information.

Parameters
recursiveWhether all paths of the archive are searched (if the archive has a concept of that)
dirsSet to true if you want the directories to be listed instead of files
Returns
A list of structures detailing quite a lot of information about all the files in the archive.

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ load()

virtual void Ogre::Archive::load ( )
pure virtual

Loads the archive.

Remarks
This initializes all the internal data of the class.
Warning
Do not call this function directly, it is meant to be used only by the ArchiveManager class.

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ open()

virtual DataStreamPtr Ogre::Archive::open ( const String filename,
bool  readOnly = true 
)
pure virtual

Open a stream on a given file.

Note
There is no equivalent 'close' method; the returned stream controls the lifecycle of this file operation.
Parameters
filenameThe fully qualified name of the file
readOnlyWhether to open the file in read-only mode or not (note, if the archive is read-only then this cannot be set to false)
Returns
A shared pointer to a DataStream which can be used to read / write the file. If the file is not present, returns a null shared pointer.

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ remove()

virtual void Ogre::Archive::remove ( const String filename)
virtual

Delete a named file.

Remarks
Not possible on read-only archives
Parameters
filenameThe fully qualified name of the file

Reimplemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.

◆ unload()

virtual void Ogre::Archive::unload ( )
pure virtual

Unloads the archive.

Warning
Do not call this function directly, it is meant to be used only by the ArchiveManager class.

Implemented in Ogre::ZipArchive, Ogre::FileSystemArchive, and Ogre::APKFileSystemArchive.


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