Archive* OpenArchive( const char* name ){
return new ZipArchive( name );
}
-
-#if 0
-
-class TestZip
-{
-class TestVisitor : public Archive::IVisitor
-{
-public:
-void visit( const char* name ){
- int bleh = 0;
-}
-};
-public:
-TestZip(){
- testzip( "c:/quake3/baseq3/mapmedia.pk3", "textures/radiant/notex.tga" );
-}
-
-void testzip( const char* name, const char* filename ){
- Archive* archive = OpenArchive( name );
- ArchiveFile* file = archive->openFile( filename );
- if ( file != 0 ) {
- unsigned char buffer[4096];
- std::size_t count = file->getInputStream().read( (InputStream::byte_type*)buffer, 4096 );
- file->release();
- }
- TestVisitor visitor;
- archive->forEachFile( Archive::VisitorFunc( &visitor, Archive::eFilesAndDirectories, 0 ), "" );
- archive->forEachFile( Archive::VisitorFunc( &visitor, Archive::eFilesAndDirectories, 1 ), "" );
- archive->forEachFile( Archive::VisitorFunc( &visitor, Archive::eFiles, 1 ), "" );
- archive->forEachFile( Archive::VisitorFunc( &visitor, Archive::eDirectories, 1 ), "" );
- archive->forEachFile( Archive::VisitorFunc( &visitor, Archive::eFilesAndDirectories, 1 ), "textures" );
- archive->forEachFile( Archive::VisitorFunc( &visitor, Archive::eFilesAndDirectories, 1 ), "textures/" );
- archive->forEachFile( Archive::VisitorFunc( &visitor, Archive::eFilesAndDirectories, 2 ), "" );
- archive->release();
-}
-};
-
-TestZip g_TestZip;
-
-#endif