OGRE-Next  3.0.0
Object-Oriented Graphics Rendering Engine
Ogre::ZipArchive Class Reference

Specialisation of the Archive class to allow reading of files from a zip format source archive. More...

#include <OgreZip.h>

+ Inheritance diagram for Ogre::ZipArchive:

Public Member Functions

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

Detailed Description

Specialisation of the Archive class to allow reading of files from a zip format source archive.

Remarks
This archive format supports all archives compressed in the standard zip format, including iD pk3 files.

Constructor & Destructor Documentation

◆ ZipArchive()

Ogre::ZipArchive::ZipArchive ( const String name,
const String archType,
zzip_plugin_io_handlers pluginIo = NULL 
)

◆ ~ZipArchive()

Ogre::ZipArchive::~ZipArchive ( )
override

Member Function Documentation

◆ create()

DataStreamPtr Ogre::ZipArchive::create ( const String filename)
overridevirtual

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 from Ogre::Archive.

◆ exists()

bool Ogre::ZipArchive::exists ( const String filename)
overridevirtual

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

Implements Ogre::Archive.

◆ find()

StringVectorPtr Ogre::ZipArchive::find ( const String pattern,
bool  recursive = true,
bool  dirs = false 
)
overridevirtual

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

Implements Ogre::Archive.

◆ findFileInfo()

FileInfoListPtr Ogre::ZipArchive::findFileInfo ( const String pattern,
bool  recursive = true,
bool  dirs = false 
)
overridevirtual

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.

Implements Ogre::Archive.

◆ getModifiedTime()

time_t Ogre::ZipArchive::getModifiedTime ( const String filename)
overridevirtual

Retrieve the modification time of a given file.

Implements Ogre::Archive.

◆ isCaseSensitive()

bool Ogre::ZipArchive::isCaseSensitive ( ) const
inlineoverridevirtual

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

Implements Ogre::Archive.

◆ list()

StringVectorPtr Ogre::ZipArchive::list ( bool  recursive = true,
bool  dirs = false 
)
overridevirtual

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

Implements Ogre::Archive.

◆ listFileInfo()

FileInfoListPtr Ogre::ZipArchive::listFileInfo ( bool  recursive = true,
bool  dirs = false 
)
overridevirtual

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.

Implements Ogre::Archive.

◆ load()

void Ogre::ZipArchive::load ( )
overridevirtual

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.

Implements Ogre::Archive.

◆ open()

DataStreamPtr Ogre::ZipArchive::open ( const String filename,
bool  readOnly = true 
)
overridevirtual

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.

Implements Ogre::Archive.

◆ remove()

void Ogre::ZipArchive::remove ( const String filename)
overridevirtual

Delete a named file.

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

Reimplemented from Ogre::Archive.

◆ unload()

void Ogre::ZipArchive::unload ( )
overridevirtual

Unloads the archive.

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

Implements Ogre::Archive.


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