Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

FileSystemZIP Class Reference

#include <filesystemzip.h>

Inheritance diagram for FileSystemZIP:

Inheritance graph
[legend]
Collaboration diagram for FileSystemZIP:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 FileSystemZIP ()
virtual ~FileSystemZIP ()
virtual void Clear ()
virtual boost::shared_ptr<
salt::RFile
Open (const std::string &inName)
 tries to open the file named inName.
virtual bool SetPath (const std::string &inPath)
 sets the path all calls to Open are relative to.
virtual int ForEachFile (const std::string &expression, TCallback callback, void *param)

Protected Types

typedef std::map< std::string,
TArchiveEntry * > 
TEntryMap

Protected Member Functions

void AddArchiveEntry (TArchiveEntry *ae)
void ZIPGetLocalHeader (TLocalHeader *lh)
void ZIPGetFileHeader (TFileHeader *fh)
void ZIPGetCentralDirectoryEnd (TCentralDirectoryEnd *cde)
void ZIPGetCentralDirectoryEndFirst (TCentralDirectoryEnd *cde)
void ZIPSkipData (TLocalHeader *lh)

Protected Attributes

boost::shared_ptr< salt::StdFilemHandle
std::string mArchiveName
TEntryMap mEntryMap

Classes

struct  TArchiveEntry
struct  TCentralDirectoryEnd
struct  TFileHeader
struct  TLocalHeader

Detailed Description

Definition at line 71 of file filesystemzip.h.


Member Typedef Documentation

typedef std::map<std::string, TArchiveEntry*> FileSystemZIP::TEntryMap [protected]
 

Definition at line 139 of file filesystemzip.h.


Constructor & Destructor Documentation

FileSystemZIP::FileSystemZIP  ) 
 

Definition at line 55 of file filesystemzip.cpp.

FileSystemZIP::~FileSystemZIP  )  [virtual]
 

Definition at line 59 of file filesystemzip.cpp.

References Clear().

Here is the call graph for this function:


Member Function Documentation

void FileSystemZIP::AddArchiveEntry TArchiveEntry ae  )  [protected]
 

Definition at line 413 of file filesystemzip.cpp.

References FileSystemZIP::TArchiveEntry::filename, and mEntryMap.

void FileSystemZIP::Clear  )  [virtual]
 

Definition at line 283 of file filesystemzip.cpp.

References FileSystemZIP::TArchiveEntry::filename, mArchiveName, mEntryMap, and mHandle.

Referenced by ~FileSystemZIP().

virtual int FileSystemZIP::ForEachFile const std::string &  expression,
TCallback  callback,
void *  param
[virtual]
 

virtual boost::shared_ptr<salt::RFile> FileSystemZIP::Open const std::string &  inName  )  [virtual]
 

tries to open the file named inName.

Returns an instance of a salt::RFile on success, NULL otherwise

Implements zeitgeist::FileSystem.

virtual bool FileSystemZIP::SetPath const std::string &  inPath  )  [virtual]
 

sets the path all calls to Open are relative to.

For a standard file system this call maps directly to a directory. For Filesystems providing access to an archive it is used to select the archive, i.e. it is the filename of an archive. Please refer to concrete Filesystems for an example implementation.

Implements zeitgeist::FileSystem.

void FileSystemZIP::ZIPGetCentralDirectoryEnd TCentralDirectoryEnd cde  )  [protected]
 

Definition at line 374 of file filesystemzip.cpp.

References FileSystemZIP::TCentralDirectoryEnd::cd_size, FileSystemZIP::TCentralDirectoryEnd::cds_disk_no, mHandle, FileSystemZIP::TCentralDirectoryEnd::num_entries_this_disk, FileSystemZIP::TCentralDirectoryEnd::num_entries_total, FileSystemZIP::TCentralDirectoryEnd::offset_start_cd, SIG_CENTRAL_DIRECTORY_END, FileSystemZIP::TCentralDirectoryEnd::signature, FileSystemZIP::TCentralDirectoryEnd::this_disk_no, FileSystemZIP::TCentralDirectoryEnd::zipfile_comment, and FileSystemZIP::TCentralDirectoryEnd::zipfile_comment_length.

Referenced by ZIPGetCentralDirectoryEndFirst().

void FileSystemZIP::ZIPGetCentralDirectoryEndFirst TCentralDirectoryEnd cde  )  [protected]
 

Definition at line 394 of file filesystemzip.cpp.

References mHandle, SIG_CENTRAL_DIRECTORY_END, and ZIPGetCentralDirectoryEnd().

Here is the call graph for this function:

void FileSystemZIP::ZIPGetFileHeader TFileHeader fh  )  [protected]
 

Definition at line 333 of file filesystemzip.cpp.

References FileSystemZIP::TFileHeader::compressed_size, FileSystemZIP::TFileHeader::compression_method, FileSystemZIP::TFileHeader::crc32, FileSystemZIP::TFileHeader::disk_number_start, FileSystemZIP::TFileHeader::external_file_attributes, FileSystemZIP::TFileHeader::extra_field, FileSystemZIP::TFileHeader::extra_field_length, FileSystemZIP::TFileHeader::file_comment, FileSystemZIP::TFileHeader::file_comment_length, FileSystemZIP::TFileHeader::filename, FileSystemZIP::TFileHeader::filename_length, FileSystemZIP::TFileHeader::general_purpose, FileSystemZIP::TFileHeader::internal_file_attributes, FileSystemZIP::TFileHeader::last_mod_date, FileSystemZIP::TFileHeader::last_mod_time, mHandle, FileSystemZIP::TFileHeader::relative_offset, SIG_FILE_HEADER, FileSystemZIP::TFileHeader::signature, FileSystemZIP::TFileHeader::uncompressed_size, FileSystemZIP::TFileHeader::version_made, and FileSystemZIP::TFileHeader::version_needed.

void FileSystemZIP::ZIPGetLocalHeader TLocalHeader lh  )  [protected]
 

Definition at line 299 of file filesystemzip.cpp.

References FileSystemZIP::TLocalHeader::compressed_size, FileSystemZIP::TLocalHeader::compression_method, FileSystemZIP::TLocalHeader::crc32, FileSystemZIP::TLocalHeader::extra_field, FileSystemZIP::TLocalHeader::extra_field_length, FileSystemZIP::TLocalHeader::filename, FileSystemZIP::TLocalHeader::filename_length, FileSystemZIP::TLocalHeader::general_purpose, FileSystemZIP::TLocalHeader::last_mod_date, FileSystemZIP::TLocalHeader::last_mod_time, mHandle, SIG_LOCAL_HEADER, FileSystemZIP::TLocalHeader::signature, FileSystemZIP::TLocalHeader::uncompressed_size, and FileSystemZIP::TLocalHeader::version_needed.

void FileSystemZIP::ZIPSkipData TLocalHeader lh  )  [protected]
 

Definition at line 328 of file filesystemzip.cpp.

References FileSystemZIP::TLocalHeader::compressed_size, and mHandle.


Member Data Documentation

std::string FileSystemZIP::mArchiveName [protected]
 

Definition at line 163 of file filesystemzip.h.

Referenced by Clear().

TEntryMap FileSystemZIP::mEntryMap [protected]
 

Definition at line 164 of file filesystemzip.h.

Referenced by AddArchiveEntry(), and Clear().

boost::shared_ptr<salt::StdFile> FileSystemZIP::mHandle [protected]
 

Definition at line 162 of file filesystemzip.h.

Referenced by Clear(), ZIPGetCentralDirectoryEnd(), ZIPGetCentralDirectoryEndFirst(), ZIPGetFileHeader(), ZIPGetLocalHeader(), and ZIPSkipData().


The documentation for this class was generated from the following files:
Generated on Thu Apr 6 15:38:10 2006 for rcssserver3d by  doxygen 1.4.4