Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

archive.h

Go to the documentation of this file.
00001 
00023 #ifndef _LIBCOMPREX_ARCHIVE_H_
00024 #define _LIBCOMPREX_ARCHIVE_H_
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00030 typedef struct _CxArchive CxArchive;  
00032 #include <libcomprex/directory.h>
00033 #include <libcomprex/file.h>
00034 #include <libcomprex/fp.h>
00035 #include <libcomprex/module.h>
00036 #include <libcomprex/types.h>
00037 
00043 struct _CxArchive
00044 {
00045     CxModule      *module;      
00046     CxArchiveType  type;        
00047     CxAccessMode   accessMode;  
00049     CxArchive     *parent;      
00050     CxFP          *fp;          
00052     char *name;                 
00058     char  *path;
00059 
00064     char  *physPath;
00065 
00067     char isLocal;
00068 
00069     unsigned int fileSize;      
00070     unsigned int archiveSize;   
00072     size_t fileCount;           
00074     CxDirectory *root;          
00076     void *moduleData;           
00078     unsigned int refCount;      
00084     void (*ex_callback) (CxArchive *, CxFile *, size_t onFile, size_t fileCount);
00085 };
00086 
00087 
00088 /**************************************************************************/
00090 /**************************************************************************/
00100 CxArchive *cxNewArchive(void);
00101 
00109 void cxDestroyArchive(CxArchive *archive);
00110 
00113 /**************************************************************************/
00115 /**************************************************************************/
00128 void cxSetArchiveModule(CxArchive *archive, CxModule *module);
00129 
00138 void cxSetArchiveType(CxArchive *archive, CxArchiveType type);
00139 
00148 void cxSetArchiveAccessMode(CxArchive *archive, CxAccessMode mode);
00149 
00158 void cxSetArchiveFileName(CxArchive *archive, const char *filename);
00159 
00173 void cxSetArchivePath(CxArchive *archive, const char *path);
00174 
00187 void cxSetArchivePhysicalPath(CxArchive *archive, const char *path);
00188 
00197 void cxSetArchiveFileSize(CxArchive *archive, unsigned int fileSize);
00198 
00207 void cxSetArchiveSize(CxArchive *archive, unsigned int archiveSize);
00208 
00220 void cxSetArchiveLocal(CxArchive *archive, char isLocal);
00221 
00228 void cxSetArchiveExtractCallback(CxArchive *archive,
00229                                  void (*callback)(CxArchive *, CxFile *,
00230                                                   size_t, size_t));
00231 
00235 /**************************************************************************/
00237 /**************************************************************************/
00249 CxModule *cxGetArchiveModule(CxArchive *archive);
00250 
00260 CxArchiveType cxGetArchiveType(CxArchive *archive);
00261 
00271 CxAccessMode cxGetArchiveAccessMode(CxArchive *archive);
00272 
00282 const char *cxGetArchiveFileName(CxArchive *archive);
00283 
00298 const char *cxGetArchivePath(CxArchive *archive);
00299 
00313 const char *cxGetArchivePhysicalPath(CxArchive *archive);
00314 
00322 size_t cxGetArchiveFileCount(CxArchive *archive);
00323 
00333 unsigned int cxGetArchiveFileSize(CxArchive *archive);
00334 
00344 unsigned int cxGetArchiveSize(CxArchive *archive);
00345 
00358 char cxIsArchiveLocal(CxArchive *archive);
00359 
00367 CxDirectory *cxGetArchiveRoot(CxArchive *archive);
00368 
00371 #ifdef __cplusplus
00372 }
00373 #endif
00374 
00375 #endif /* _LIBCOMPREX_ARCHIVE_H_ */
00376 

Generated on Wed Mar 5 20:47:43 2003 for libcomprex by doxygen1.2.18-20021020