Go to the documentation of this file.00001 #ifndef H_RPMDB
00002 #define H_RPMDB
00003
00009 #include <rpm/rpmtypes.h>
00010 #include <rpm/rpmsw.h>
00011
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015
00019 typedef enum rpmMireMode_e {
00020 RPMMIRE_DEFAULT = 0,
00021 RPMMIRE_STRCMP = 1,
00022 RPMMIRE_REGEX = 2,
00023 RPMMIRE_GLOB = 3
00024 } rpmMireMode;
00025
00026 typedef enum rpmdbOpX_e {
00027 RPMDB_OP_DBGET = 1,
00028 RPMDB_OP_DBPUT = 2,
00029 RPMDB_OP_DBDEL = 3,
00030 RPMDB_OP_MAX = 4
00031 } rpmdbOpX;
00032
00039 rpmop rpmdbOp(rpmdb db, rpmdbOpX opx);
00040
00046 rpmdb rpmdbLink(rpmdb db);
00047
00056 int rpmdbOpen (const char * prefix, rpmdb * dbp,
00057 int mode, int perms);
00058
00065 int rpmdbInit(const char * prefix, int perms);
00066
00072 int rpmdbVerify(const char * prefix);
00073
00079 int rpmdbClose (rpmdb db);
00080
00086 int rpmdbSync (rpmdb db);
00087
00093 int rpmdbOpenAll (rpmdb db);
00094
00101 int rpmdbCountPackages(rpmdb db, const char * name);
00102
00108 unsigned int rpmdbGetIteratorOffset(rpmdbMatchIterator mi);
00109
00115 int rpmdbGetIteratorCount(rpmdbMatchIterator mi);
00116
00119 unsigned int rpmdbGetIteratorFileNum(rpmdbMatchIterator mi);
00120
00128 int rpmdbAppendIterator(rpmdbMatchIterator mi,
00129 const int * hdrNums, int nHdrNums);
00130
00139 int rpmdbSetIteratorRE(rpmdbMatchIterator mi, rpmTagVal tag,
00140 rpmMireMode mode, const char * pattern);
00141
00149 int rpmdbSetIteratorRewrite(rpmdbMatchIterator mi, int rewrite);
00150
00157 int rpmdbSetIteratorModified(rpmdbMatchIterator mi, int modified);
00158
00166 int rpmdbSetHdrChk(rpmdbMatchIterator mi, rpmts ts,
00167 rpmRC (*hdrchk) (rpmts ts, const void * uh, size_t uc, char ** msg));
00168
00177 rpmdbMatchIterator rpmdbInitIterator(rpmdb db, rpmDbiTagVal rpmtag,
00178 const void * keyp, size_t keylen);
00179
00185 Header rpmdbNextIterator(rpmdbMatchIterator mi);
00186
00190 int rpmdbCheckSignals(void);
00191
00200 int rpmdbCheckTerminate(int terminate);
00201
00207 rpmdbMatchIterator rpmdbFreeIterator(rpmdbMatchIterator mi);
00208
00216 int rpmdbRebuild(const char * prefix, rpmts ts,
00217 rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, char ** msg));
00218
00219
00220
00221
00228 rpmdbIndexIterator rpmdbIndexIteratorInit(rpmdb db, rpmDbiTag rpmtag);
00229
00238 int rpmdbIndexIteratorNext(rpmdbIndexIterator ii, const void ** key, size_t * keylen);
00239
00245 unsigned int rpmdbIndexIteratorNumPkgs(rpmdbIndexIterator ii);
00246
00253 unsigned int rpmdbIndexIteratorPkgOffset(rpmdbIndexIterator ii, unsigned int nr);
00254
00261 unsigned int rpmdbIndexIteratorTagNum(rpmdbIndexIterator ii, unsigned int nr);
00262
00268 rpmdbIndexIterator rpmdbIndexIteratorFree(rpmdbIndexIterator ii);
00269
00270
00271 #ifdef __cplusplus
00272 }
00273 #endif
00274
00275 #endif