Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Related Pages  

file.h

Go to the documentation of this file.
00001 
00023 #ifndef _LIBCOMPREX_FILE_H_
00024 #define _LIBCOMPREX_FILE_H_
00025 
00026 #include <sys/types.h>
00027 #include <time.h>
00028 
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032 
00033 typedef struct _CxFile     CxFile;     
00034 typedef enum   _CxFileType CxFileType; 
00036 #include <libcomprex/archive.h>
00037 #include <libcomprex/directory.h>
00038 #include <libcomprex/types.h>
00039 
00043 enum _CxFileType
00044 {
00045     CX_FILETYPE_UNKNOWN = 0,  
00046     CX_FILETYPE_NORMAL,       
00047     CX_FILETYPE_SYMLINK,      
00048     CX_FILETYPE_HARDLINK,     
00049     CX_FILETYPE_CHAR_DEVICE,  
00050     CX_FILETYPE_BLOCK_DEVICE, 
00051     CX_FILETYPE_FIFO          
00052 };
00053 
00059 struct _CxFile
00060 {
00061     CxArchive *archive;      
00062     CxDirectory *parentDir;  
00064     char  *name;             
00066     CxFileType type;         
00072     char  *path;
00073 
00078     char  *physPath;
00079 
00080     mode_t mode;                   
00081     uid_t  uid;                    
00082     gid_t  gid;                    
00084     unsigned int compressedSize;   
00085     unsigned int uncompressedSize; 
00087     time_t date;                   
00089     char isLocalFile;        
00091     void *moduleData;        
00093     unsigned int refCount;   
00095     CxFile *prev;            
00096     CxFile *next;            
00097 };
00098 
00099 /**************************************************************************/
00101 /**************************************************************************/
00111 CxFile *cxNewFile(void);
00112 
00120 void cxDestroyFile(CxFile *file);
00121 
00124 /**************************************************************************/
00126 /**************************************************************************/
00139 void cxSetFileArchive(CxFile *file, CxArchive *archive);
00140 
00149 void cxSetFileParent(CxFile *file, CxDirectory *parent);
00150 
00159 void cxSetFileName(CxFile *file, const char *name);
00160 
00174 void cxSetFilePath(CxFile *file, const char *path);
00175 
00188 void cxSetFilePhysicalPath(CxFile *file, const char *path);
00189 
00198 void cxSetFileType(CxFile *file, CxFileType type);
00199 
00208 void cxSetFileMode(CxFile *file, mode_t mode);
00209 
00218 void cxSetFileUid(CxFile *file, uid_t uid);
00219 
00228 void cxSetFileGid(CxFile *file, gid_t gid);
00229 
00238 void cxSetFileCompressedSize(CxFile *file, unsigned int size);
00239 
00248 void cxSetFileSize(CxFile *file, unsigned int size);
00249 
00258 void cxSetFileDate(CxFile *file, time_t date);
00259 
00271 void cxSetFileLocal(CxFile *file, char isLocalFile);
00272 
00275 /**************************************************************************/
00277 /**************************************************************************/
00289 CxArchive *cxGetFileArchive(CxFile *file);
00290 
00300 CxDirectory *cxGetFileParent(CxFile *file);
00301 
00311 const char *cxGetFileName(CxFile *file);
00312 
00327 const char *cxGetFilePath(CxFile *file);
00328 
00342 const char *cxGetFilePhysicalPath(CxFile *file);
00343 
00353 CxFileType cxGetFileType(CxFile *file);
00354 
00364 mode_t cxGetFileMode(CxFile *file);
00365 
00375 uid_t cxGetFileUid(CxFile *file);
00376 
00386 gid_t cxGetFileGid(CxFile *file);
00387 
00397 unsigned int cxGetFileCompressedSize(CxFile *file);
00398 
00408 unsigned int cxGetFileSize(CxFile *file);
00409 
00419 time_t cxGetFileDate(CxFile *file);
00420 
00433 char cxIsFileLocal(CxFile *file);
00434 
00437 /**************************************************************************/
00439 /**************************************************************************/
00452 CxFile *cxGetNextFile(CxFile *file);
00453 
00464 CxFile *cxGetPreviousFile(CxFile *file);
00465 
00468 #ifdef __cplusplus
00469 }
00470 #endif
00471 
00472 #endif /* _LIBCOMPREX_FILE_H_ */
00473 

Generated on Wed May 29 12:20:35 2002 for libcomprex by doxygen1.2.15-20020430