6 #include "oldrpmfile.h"
8 typedef enum { RPMDB_NONE, RPMDB_GDBM_ERROR, RPMDB_NO_MEMORY } rpm_error;
21 enum rpmdbFreeType { RPMDB_NOFREE, RPMDB_FREENAME, RPMDB_FREEALL } ;
24 char * name, * version, * release;
25 enum rpmdbFreeType freeType;
26 struct rpmdbLabel * next;
27 int fileNumber; /* -1 means invalid */
30 struct rpmdbPackageInfo {
31 char * name, * version, * release;
33 unsigned int installTime, buildTime;
40 unsigned int fileCount;
41 struct rpmFileInfo * files;
44 #define RPMDB_READER 1
46 int rpmdbOpen(struct rpmdb * rpmdb);
47 void rpmdbClose(struct rpmdb * rpmdb);
48 struct rpmdbLabel * rpmdbGetAllLabels(struct rpmdb * rpmdb);
49 struct rpmdbLabel * rpmdbFindPackagesByFile(struct rpmdb * rpmdb, char * path);
50 struct rpmdbLabel * rpmdbFindPackagesByLabel(struct rpmdb * rpmdb,
51 struct rpmdbLabel label);
53 char * rpmdbGetPackageGroup(struct rpmdb * rpmdb, struct rpmdbLabel label);
54 int rpmdbGetPackageInfo(struct rpmdb * rpmdb, struct rpmdbLabel label,
55 struct rpmdbPackageInfo * pinfo);
56 void rpmdbFreePackageInfo(struct rpmdbPackageInfo package);
58 struct rpmdbLabel rpmdbMakeLabel(char * name, char * version, char * release,
59 int fileNumber, enum rpmdbFreeType freeType);
60 void rpmdbFreeLabelList(struct rpmdbLabel * list);
61 void rpmdbFreeLabel(struct rpmdbLabel label);
62 int rpmdbWasError(struct rpmdb * rpmdb);
64 int rpmdbLabelstrToLabel(char * str, int length, struct rpmdbLabel * label);
65 char * rpmdbLabelToLabelstr(struct rpmdbLabel label, int withFileNum);
66 int rpmdbLabelCmp(struct rpmdbLabel * one, struct rpmdbLabel * two);
68 void rpmdbSetPrefix(char * new);