00001
00023 #ifndef _LIBPACKMAN_PACKAGE_H_
00024 #define _LIBPACKMAN_PACKAGE_H_
00025
00026 #include <time.h>
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031
00032 typedef struct _PmPackage PmPackage;
00034 #include <libpackman/types.h>
00035 #include <libpackman/file.h>
00036 #include <libpackman/downloadurl.h>
00037 #include <libpackman/dependency.h>
00038 #include <libpackman/module.h>
00039 #include <libpackman/db.h>
00040
00046 struct _PmPackage
00047 {
00048 PmModule *module;
00050 PmAccessMode accessMode;
00052 PmDatabase *db;
00054 char *pkgFormat;
00055 char *osDistrib;
00057 char *filePath;
00059 char *name;
00060 char *version;
00061 char *release;
00062 char *url;
00063 char *group;
00065 char *license;
00066 char *summary;
00067 char *description;
00069 char *arch;
00070 char *branch;
00071 int fileSize;
00072 int installedSize;
00075 PmDownloadUrl *downloadUrls;
00077 PmDownloadUrl *lastDownloadUrl;
00078 unsigned int downloadUrlCount;
00080 PmDependency *requirements;
00081 PmDependency *lastRequirement;
00082 unsigned int requirementCount;
00084 PmDependency *provides;
00085 PmDependency *lastProvide;
00086 unsigned int provideCount;
00088 PmFile *files;
00089 PmFile *lastFile;
00090 unsigned int fileCount;
00092 PmPackage *prev;
00093 PmPackage *next;
00095 char _depsVerified;
00096 unsigned int _curStep;
00097 unsigned int _totalSteps;
00098 char _curOperation;
00100 void *dbData;
00101 };
00102
00103
00104
00106
00116 PmPackage *pmNewPackage(void);
00117
00125 void pmDestroyPackage(PmPackage *package);
00126
00130
00132
00146 void pmPackageAddDownloadUrl(PmPackage *pkg, PmDownloadUrl *downloadUrl);
00147
00159 void pmPackageAddRequirement(PmPackage *pkg, PmDependency *requirement);
00160
00172 void pmPackageAddProvide(PmPackage *pkg, PmDependency *provide);
00173
00185 void pmPackageAddFile(PmPackage *pkg, PmFile *file);
00186
00190
00192
00205 void pmSetPackageModule(PmPackage *pkg, PmModule *module);
00206
00215 void pmSetPackageAccessMode(PmPackage *pkg, PmAccessMode mode);
00216
00227 void pmSetPackageFormat(PmPackage *pkg, const char *pkgFormat);
00228
00239 void pmSetPackageOsDistrib(PmPackage *pkg, const char *osDistrib);
00240
00251 void pmSetPackageFilePath(PmPackage *pkg, const char *filePath);
00252
00261 void pmSetPackageName(PmPackage *pkg, const char *name);
00262
00271 void pmSetPackageVersion(PmPackage *pkg, const char *version);
00272
00281 void pmSetPackageRelease(PmPackage *pkg, const char *release);
00282
00291 void pmSetPackageUrl(PmPackage *pkg, const char *url);
00292
00301 void pmSetPackageGroup(PmPackage *pkg, const char *group);
00302
00311 void pmSetPackageLicense(PmPackage *pkg, const char *license);
00312
00321 void pmSetPackageSummary(PmPackage *pkg, const char *summary);
00322
00331 void pmSetPackageDescription(PmPackage *pkg, const char *description);
00332
00350 void pmSetPackageArch(PmPackage *pkg, const char *arch);
00351
00366 void pmSetPackageBranch(PmPackage *pkg, const char *branch);
00367
00376 void pmSetPackageFileSize(PmPackage *pkg, unsigned int fileSize);
00377
00386 void pmSetPackageInstalledSize(PmPackage *pkg, unsigned int installedSize);
00387
00398 void pmSetPreviousPackage(PmPackage *pkg, PmPackage *prev);
00399
00410 void pmSetNextPackage(PmPackage *pkg, PmPackage *next);
00411
00415
00417
00429 PmModule *pmGetPackageModule(PmPackage *pkg);
00430
00440 PmAccessMode pmGetPackageAccessMode(PmPackage *pkg);
00441
00451 const char *pmGetPackageFormat(PmPackage *pkg);
00452
00462 const char *pmGetPackageOsDistrib(PmPackage *pkg);
00463
00473 const char *pmGetPackageFilePath(PmPackage *pkg);
00474
00484 const char *pmGetPackageName(PmPackage *pkg);
00485
00495 const char *pmGetPackageVersion(PmPackage *pkg);
00496
00506 const char *pmGetPackageRelease(PmPackage *pkg);
00507
00517 const char *pmGetPackageUrl(PmPackage *pkg);
00518
00528 const char *pmGetPackageGroup(PmPackage *pkg);
00529
00539 const char *pmGetPackageLicense(PmPackage *pkg);
00540
00550 const char *pmGetPackageSummary(PmPackage *pkg);
00551
00561 const char *pmGetPackageDescription(PmPackage *pkg);
00562
00572 const char *pmGetPackageArch(PmPackage *pkg);
00573
00583 const char *pmGetPackageBranch(PmPackage *pkg);
00584
00594 unsigned int pmGetPackageFileSize(PmPackage *pkg);
00595
00605 unsigned int pmGetPackageInstalledSize(PmPackage *pkg);
00606
00616 unsigned int pmGetPackageDownloadUrlCount(PmPackage *pkg);
00617
00627 unsigned int pmGetPackageRequirementCount(PmPackage *pkg);
00628
00638 unsigned int pmGetPackageProvideCount(PmPackage *pkg);
00639
00649 unsigned int pmGetPackageFileCount(PmPackage *pkg);
00650
00662 PmPackage *pmGetPreviousPackage(PmPackage *pkg);
00663
00675 PmPackage *pmGetNextPackage(PmPackage *pkg);
00676
00679 #ifdef __cplusplus
00680 }
00681 #endif
00682
00683 #endif