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 _CxFsNode CxFile;
00034 typedef struct _CxFileData CxFileData;
00036 #include <libcomprex/fsnode.h>
00037 #include <libcomprex/archive.h>
00038 #include <libcomprex/types.h>
00039
00043 struct _CxFileData
00044 {
00049 char *physPath;
00050
00051 unsigned int compressedSize;
00052 unsigned int uncompressedSize;
00053 };
00054
00055
00057
00067 CxFile *cxNewFile(void);
00068
00076 void cxDestroyFile(CxFile *file);
00077
00080
00082
00095 void cxSetFileArchive(CxFile *file, CxArchive *archive);
00096
00105 void cxSetFileParent(CxFile *file, CxDirectory *parent);
00106
00115 void cxSetFileName(CxFile *file, const char *name);
00116
00128 void cxSetFilePhysicalPath(CxFile *file, const char *path);
00129
00138 void cxSetFileMode(CxFile *file, mode_t mode);
00139
00148 void cxSetFileUid(CxFile *file, uid_t uid);
00149
00158 void cxSetFileGid(CxFile *file, gid_t gid);
00159
00168 void cxSetFileCompressedSize(CxFile *file, unsigned int size);
00169
00178 void cxSetFileSize(CxFile *file, unsigned int size);
00179
00188 void cxSetFileDate(CxFile *file, time_t date);
00189
00201 void cxSetFileLocal(CxFile *file, char isLocal);
00202
00205
00207
00219 CxArchive *cxGetFileArchive(CxFile *file);
00220
00230 CxDirectory *cxGetFileParent(CxFile *file);
00231
00241 const char *cxGetFileName(CxFile *file);
00242
00256 const char *cxGetFilePath(CxFile *file);
00257
00270 const char *cxGetFilePhysicalPath(CxFile *file);
00271
00281 mode_t cxGetFileMode(CxFile *file);
00282
00292 uid_t cxGetFileUid(CxFile *file);
00293
00303 gid_t cxGetFileGid(CxFile *file);
00304
00314 unsigned int cxGetFileCompressedSize(CxFile *file);
00315
00325 unsigned int cxGetFileSize(CxFile *file);
00326
00336 time_t cxGetFileDate(CxFile *file);
00337
00350 char cxIsFileLocal(CxFile *file);
00351
00354
00356
00369 CxFile *cxGetNextFile(CxFile *file);
00370
00381 CxFile *cxGetPreviousFile(CxFile *file);
00382
00385 #ifdef __cplusplus
00386 }
00387 #endif
00388
00389 #endif
00390