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 CxDirectory *root; 00074 void *moduleData; 00076 unsigned int refCount; 00077 }; 00078 00079 00080 /**************************************************************************/ 00082 /**************************************************************************/ 00092 CxArchive *cxNewArchive(void); 00093 00101 void cxDestroyArchive(CxArchive *archive); 00102 00105 /**************************************************************************/ 00107 /**************************************************************************/ 00120 void cxSetArchiveModule(CxArchive *archive, CxModule *module); 00121 00130 void cxSetArchiveType(CxArchive *archive, CxArchiveType type); 00131 00140 void cxSetArchiveAccessMode(CxArchive *archive, CxAccessMode mode); 00141 00150 void cxSetArchiveFileName(CxArchive *archive, const char *filename); 00151 00165 void cxSetArchivePath(CxArchive *archive, const char *path); 00166 00179 void cxSetArchivePhysicalPath(CxArchive *archive, const char *path); 00180 00189 void cxSetArchiveFileSize(CxArchive *archive, unsigned int fileSize); 00190 00199 void cxSetArchiveSize(CxArchive *archive, unsigned int archiveSize); 00200 00212 void cxSetArchiveLocal(CxArchive *archive, char isLocal); 00213 00217 /**************************************************************************/ 00219 /**************************************************************************/ 00231 CxModule *cxGetArchiveModule(CxArchive *archive); 00232 00242 CxArchiveType cxGetArchiveType(CxArchive *archive); 00243 00253 CxAccessMode cxGetArchiveAccessMode(CxArchive *archive); 00254 00264 const char *cxGetArchiveFileName(CxArchive *archive); 00265 00280 const char *cxGetArchivePath(CxArchive *archive); 00281 00295 const char *cxGetArchivePhysicalPath(CxArchive *archive); 00296 00306 unsigned int cxGetArchiveFileSize(CxArchive *archive); 00307 00317 unsigned int cxGetArchiveSize(CxArchive *archive); 00318 00331 char cxIsArchiveLocal(CxArchive *archive); 00332 00340 CxDirectory *cxGetArchiveRoot(CxArchive *archive); 00341 00344 #ifdef __cplusplus 00345 } 00346 #endif 00347 00348 #endif /* _LIBCOMPREX_ARCHIVE_H_ */ 00349