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 int rpmdbOpenAll (rpmdb db);
00047
00054 int rpmdbCountPackages(rpmdb db, const char * name);
00055
00061 unsigned int rpmdbGetIteratorOffset(rpmdbMatchIterator mi);
00062
00068 int rpmdbGetIteratorCount(rpmdbMatchIterator mi);
00069
00072 unsigned int rpmdbGetIteratorFileNum(rpmdbMatchIterator mi);
00073
00081 int rpmdbAppendIterator(rpmdbMatchIterator mi,
00082 const int * hdrNums, int nHdrNums);
00083
00092 int rpmdbSetIteratorRE(rpmdbMatchIterator mi, rpmTagVal tag,
00093 rpmMireMode mode, const char * pattern);
00094
00102 int rpmdbSetIteratorRewrite(rpmdbMatchIterator mi, int rewrite);
00103
00110 int rpmdbSetIteratorModified(rpmdbMatchIterator mi, int modified);
00111
00119 int rpmdbSetHdrChk(rpmdbMatchIterator mi, rpmts ts,
00120 rpmRC (*hdrchk) (rpmts ts, const void * uh, size_t uc, char ** msg));
00121
00130 rpmdbMatchIterator rpmdbInitIterator(rpmdb db, rpmDbiTagVal rpmtag,
00131 const void * keyp, size_t keylen);
00132
00138 Header rpmdbNextIterator(rpmdbMatchIterator mi);
00139
00143 int rpmdbCheckSignals(void);
00144
00153 int rpmdbCheckTerminate(int terminate);
00154
00160 rpmdbMatchIterator rpmdbFreeIterator(rpmdbMatchIterator mi);
00161
00168 rpmdbIndexIterator rpmdbIndexIteratorInit(rpmdb db, rpmDbiTag rpmtag);
00169
00178 int rpmdbIndexIteratorNext(rpmdbIndexIterator ii, const void ** key, size_t * keylen);
00179
00185 unsigned int rpmdbIndexIteratorNumPkgs(rpmdbIndexIterator ii);
00186
00193 unsigned int rpmdbIndexIteratorPkgOffset(rpmdbIndexIterator ii, unsigned int nr);
00194
00201 unsigned int rpmdbIndexIteratorTagNum(rpmdbIndexIterator ii, unsigned int nr);
00202
00208 rpmdbIndexIterator rpmdbIndexIteratorFree(rpmdbIndexIterator ii);
00209
00210
00211 #ifdef __cplusplus
00212 }
00213 #endif
00214
00215 #endif