00001
00023 #ifndef _LIBPACKMAN_FILE_H_
00024 #define _LIBPACKMAN_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 _PmFile PmFile;
00035 #include <libpackman/package.h>
00036
00042 typedef enum _PmFileType
00043 {
00044 PM_FILETYPE_NORMAL,
00045 PM_FILETYPE_CONFIG,
00046 PM_FILETYPE_DOCUMENTATION,
00047 PM_FILETYPE_DEVICE,
00048 PM_FILETYPE_DIRECTORY,
00049 PM_FILETYPE_UNKNOWN
00051 } PmFileType;
00052
00053
00059 struct _PmFile
00060 {
00061 PmFileType type;
00063 PmPackage *package;
00065 char *name;
00066 char *checksum;
00067 mode_t mode;
00068 char *owner;
00069 char *group;
00070 char *symlink;
00072 unsigned short majorMinor;
00075 unsigned int size;
00077 time_t date;
00080 PmFile *prev;
00081 PmFile *next;
00082 };
00083
00084
00085
00087
00098 PmFile *pmNewFile(void);
00099
00110 PmFile *pmDuplicateFile(PmFile *baseFile);
00111
00120 void pmDestroyFile(PmFile *file);
00121
00125
00127
00140 void pmSetFilePackage(PmFile *file, PmPackage *package);
00141
00150 void pmSetFileName(PmFile *file, const char *name);
00151
00160 void pmSetFileChecksum(PmFile *file, const char *checksum);
00161
00170 void pmSetFileMode(PmFile *file, mode_t mode);
00171
00180 void pmSetFileOwner(PmFile *file, const char *owner);
00181
00190 void pmSetFileGroup(PmFile *file, const char *group);
00191
00200 void pmSetFileType(PmFile *file, PmFileType type);
00201
00212 void pmSetFileMajorMinor(PmFile *file, unsigned short majorMinor);
00213
00222 void pmSetFileSize(PmFile *file, unsigned int size);
00223
00232 void pmSetFileDate(PmFile *file, time_t date);
00233
00244 void pmSetFileSymlink(PmFile *file, const char *symlink);
00245
00249
00251
00263 PmPackage *pmGetFilePackage(PmFile *file);
00264
00274 const char *pmGetFileName(PmFile *file);
00275
00285 const char *pmGetFileChecksum(PmFile *file);
00286
00296 mode_t pmGetFileMode(PmFile *file);
00297
00307 const char *pmGetFileOwner(PmFile *file);
00308
00318 const char *pmGetFileGroup(PmFile *file);
00319
00329 PmFileType pmGetFileType(PmFile *file);
00330
00340 unsigned short pmGetFileMajorMinor(PmFile *file);
00341
00351 unsigned int pmGetFileSize(PmFile *file);
00352
00362 time_t pmGetFileDate(PmFile *file);
00363
00373 const char *pmGetFileSymlink(PmFile *file);
00374
00378
00380
00393 PmFile *pmFirstFile(PmPackage *pkg);
00394
00405 PmFile *pmPreviousFile(PmFile *file);
00406
00417 PmFile *pmNextFile(PmFile *file);
00418
00421
00423
00435 const char *pmFileTypeToName(PmFileType type);
00436
00446 PmFileType pmFileTypeFromName(const char *name);
00447
00450 #ifdef __cplusplus
00451 }
00452 #endif
00453
00454 #endif