Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Ogre::FileSystemArchive Class Reference

Specialisation of the Archive class to allow reading of files from filesystem folders / directories. More...

#include <OgreFileSystem.h>

Inheritance diagram for Ogre::FileSystemArchive:

Ogre::Archive List of all members.

Public Member Functions

 FileSystemArchive (const String &name, const String &archType)
 ~FileSystemArchive ()
bool isCaseSensitive (void) const
 

void load ()
 
Remarks:
This initializes all the internal data of the class.
Warning:
Do not call this function directly, it is ment to be used only by the ArchiveManager class.


void unload ()
 
Warning:
Do not call this function directly, it is ment to be used only by the ArchiveManager class.


DataStreamPtr open (const String &filename) const
 
Note:
There is no equivalent 'close' method; the returned stream controls the lifecycle of this file operation.
Parameters:
filename The fully qualified name of the file
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.


StringVectorPtr list (bool recursive=true)
 
Note:
This method only returns filenames, you can also retrieve other information using listFileInfo.
Parameters:
recursive Whether all paths of the archive are searched (if the archive has a concept of that)
Returns:
A list of filenames matching the criteria, all are fully qualified


FileInfoListPtr listFileInfo (bool recursive=true)
 
Parameters:
recursive Whether all paths of the archive are searched (if the archive has a concept of that)
Returns:
A list of structures detailing quite a lot of information about all the files in the archive.


StringVectorPtr find (const String &pattern, bool recursive=true)
 
Note:
This method only returns filenames, you can also retrieve other information using findFileInfo.
Parameters:
pattern The pattern to search for; wildcards (*) are allowed
recursive Whether all paths of the archive are searched (if the archive has a concept of that)
Returns:
A list of filenames matching the criteria, all are fully qualified


FileInfoListPtr findFileInfo (const String &pattern, bool recursive=true)
 
Parameters:
pattern The pattern to search for; wildcards (*) are allowed
recursive Whether all paths of the archive are searched (if the archive has a concept of that)
Returns:
A list of file information structures for all files matching the criteria.


bool exists (const String &filename)
 

const StringgetName (void) const
 Get the name of this archive.

const StringgetType (void) const
 Return the type code of this Archive.


Protected Types

typedef std::deque< StringDirectoryStack
 Directory stack of previous directories.


Protected Member Functions

void findFiles (const String &pattern, bool recursive, StringVector *simpleList, FileInfoList *detailList, const String &currentDir="")
 Utility method to retrieve all files in a directory matching pattern.

void changeDirectory (const String &dir) const
 Utility method to change the current directory.

void pushDirectory (const String &dir) const
 Utility method to change directory and push the current directory onto a stack.

void popDirectory (void) const
 Utility method to pop a previous directory off the stack and change to it.


Protected Attributes

String mBasePath
 Base path; actually the same as mName, but for clarity.

DirectoryStack mDirectoryStack
char mTmpPath [OGRE_MAX_PATH]
 temporary C-string to retrieve paths

String mName
 Archive name.

String mType
 Archive type code.


Detailed Description

Specialisation of the Archive class to allow reading of files from filesystem folders / directories.

Definition at line 38 of file OgreFileSystem.h.


Member Typedef Documentation

typedef std::deque<String> Ogre::FileSystemArchive::DirectoryStack [protected]
 

Directory stack of previous directories.

Definition at line 47 of file OgreFileSystem.h.


Constructor & Destructor Documentation

Ogre::FileSystemArchive::FileSystemArchive const String name,
const String archType
 

Ogre::FileSystemArchive::~FileSystemArchive  ) 
 


Member Function Documentation

void Ogre::FileSystemArchive::changeDirectory const String dir  )  const [protected]
 

Utility method to change the current directory.

bool Ogre::FileSystemArchive::exists const String filename  )  [virtual]
 

Implements Ogre::Archive.

StringVectorPtr Ogre::FileSystemArchive::find const String pattern,
bool  recursive = true
[virtual]
 

Note:
This method only returns filenames, you can also retrieve other information using findFileInfo.
Parameters:
pattern The pattern to search for; wildcards (*) are allowed
recursive Whether all paths of the archive are searched (if the archive has a concept of that)
Returns:
A list of filenames matching the criteria, all are fully qualified

Implements Ogre::Archive.

FileInfoListPtr Ogre::FileSystemArchive::findFileInfo const String pattern,
bool  recursive = true
[virtual]
 

Parameters:
pattern The pattern to search for; wildcards (*) are allowed
recursive Whether all paths of the archive are searched (if the archive has a concept of that)
Returns:
A list of file information structures for all files matching the criteria.

Implements Ogre::Archive.

void Ogre::FileSystemArchive::findFiles const String pattern,
bool  recursive,
StringVector simpleList,
FileInfoList detailList,
const String currentDir = ""
[protected]
 

Utility method to retrieve all files in a directory matching pattern.

Parameters:
pattern File pattern
recursive Whether to cascade down directories
simpleList Populated if retrieving a simple list
detailList Populated if retrieving a detailed list
currentDir The current directory relative to the base of the archive, for file naming

const String& Ogre::Archive::getName void   )  const [inherited]
 

Get the name of this archive.

Definition at line 96 of file OgreArchive.h.

References Ogre::String.

const String& Ogre::Archive::getType void   )  const [inherited]
 

Return the type code of this Archive.

Definition at line 172 of file OgreArchive.h.

References Ogre::String.

bool Ogre::FileSystemArchive::isCaseSensitive void   )  const [virtual]
 

Implements Ogre::Archive.

StringVectorPtr Ogre::FileSystemArchive::list bool  recursive = true  )  [virtual]
 

Note:
This method only returns filenames, you can also retrieve other information using listFileInfo.
Parameters:
recursive Whether all paths of the archive are searched (if the archive has a concept of that)
Returns:
A list of filenames matching the criteria, all are fully qualified

Implements Ogre::Archive.

FileInfoListPtr Ogre::FileSystemArchive::listFileInfo bool  recursive = true  )  [virtual]
 

Parameters:
recursive Whether all paths of the archive are searched (if the archive has a concept of that)
Returns:
A list of structures detailing quite a lot of information about all the files in the archive.

Implements Ogre::Archive.

void Ogre::FileSystemArchive::load  )  [virtual]
 

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

Implements Ogre::Archive.

DataStreamPtr Ogre::FileSystemArchive::open const String filename  )  const [virtual]
 

Note:
There is no equivalent 'close' method; the returned stream controls the lifecycle of this file operation.
Parameters:
filename The fully qualified name of the file
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.

void Ogre::FileSystemArchive::popDirectory void   )  const [protected]
 

Utility method to pop a previous directory off the stack and change to it.

void Ogre::FileSystemArchive::pushDirectory const String dir  )  const [protected]
 

Utility method to change directory and push the current directory onto a stack.

void Ogre::FileSystemArchive::unload  )  [virtual]
 

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

Implements Ogre::Archive.


Member Data Documentation

String Ogre::FileSystemArchive::mBasePath [protected]
 

Base path; actually the same as mName, but for clarity.

Definition at line 44 of file OgreFileSystem.h.

DirectoryStack Ogre::FileSystemArchive::mDirectoryStack [mutable, protected]
 

Definition at line 48 of file OgreFileSystem.h.

String Ogre::Archive::mName [protected, inherited]
 

Archive name.

Definition at line 80 of file OgreArchive.h.

char Ogre::FileSystemArchive::mTmpPath[OGRE_MAX_PATH] [mutable, protected]
 

temporary C-string to retrieve paths

Definition at line 52 of file OgreFileSystem.h.

String Ogre::Archive::mType [protected, inherited]
 

Archive type code.

Definition at line 82 of file OgreArchive.h.


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

Copyright © 2000-2005 by The OGRE Team
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:38:52 2006