35 #if OGRE_THREAD_SUPPORT
65 void checkZzipError(
int zzipError,
const String& operation)
const;
90 void remove(
const String& filename)
const;
104 bool dirs =
false)
const;
107 bool exists(
const String& filename);
110 time_t getModifiedTime(
const String& filename);
119 const String& getType(
void)
const;
142 const String& getType(
void)
const;
147 return resZipArchive;
156 typedef bool (*DecryptEmbeddedZipFileFunc)(
size_t pos,
void* buf,
size_t len);
159 static void addEmbbeddedFile(
const String& name,
const uint8 * fileData,
160 size_t fileSize, DecryptEmbeddedZipFileFunc decryptFunc);
163 static void removeEmbbeddedFile(
const String& name);
181 size_t read(
void* buf,
size_t count);
183 size_t write(
void* buf,
size_t count);
185 void skip(
long count);
187 void seek(
size_t pos );
189 size_t tell(
void)
const;
191 bool eof(
void)
const;
ZZIP_DIR * mZzipDir
Handle to root zip file.
zzip_plugin_io_handlers * mPluginIo
A pointer to file io alternative implementation.
Archive * createInstance(const String &name, bool readOnly)
Creates a new object.
Specialisation of the Archive class to allow reading of files from a zip format source archive...
void destroyInstance(Archive *ptr)
Destroys an object which was created by this factory.
Archive * createInstance(const String &name, bool readOnly)
Creates a new object.
Specialisation of ZipArchiveFactory for embedded Zip files.
Specialisation of ArchiveFactory for Zip files.
union _zzip_plugin_io zzip_plugin_io_handlers
Abstract factory class, archive codec plugins can register concrete subclasses of this...
FileInfoList mFileList
File list (since zziplib seems to only allow scanning of dir tree once)
struct zzip_file ZZIP_FILE
vector< FileInfo >::type FileInfoList
static zzip_plugin_io_handlers * mPluginIo
A static pointer to file io alternative implementation for the embedded files.
General purpose class used for encapsulating the reading and writing of data.
Specialisation of DataStream to handle streaming data from zip archives.
StaticCache< 2 *OGRE_STREAM_TEMP_SIZE > mCache
We need caching because sometimes serializers step back in data stream and zziplib behaves slow...
virtual ~ZipArchiveFactory()
bool isCaseSensitive(void) const
Returns whether this archive is case sensitive in the way it matches files.