rpm  4.13.0
rpmdb.h
Go to the documentation of this file.
1 #ifndef H_RPMDB
2 #define H_RPMDB
3 
9 #include <rpm/rpmtypes.h>
10 #include <rpm/rpmsw.h>
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
19 typedef enum rpmMireMode_e {
24 } rpmMireMode;
25 
26 typedef enum rpmdbOpX_e {
31 } rpmdbOpX;
32 
33 typedef enum rpmdbCtrlOp_e {
39 } rpmdbCtrlOp;
40 
47 rpmop rpmdbOp(rpmdb db, rpmdbOpX opx);
48 
54 int rpmdbOpenAll (rpmdb db);
55 
62 int rpmdbCountPackages(rpmdb db, const char * name);
63 
70 
77 
81 
90  const unsigned int * hdrNums, unsigned int nHdrNums);
91 
101  rpmMireMode mode, const char * pattern);
102 
110 int rpmdbSetIteratorRewrite(rpmdbMatchIterator mi, int rewrite);
111 
118 int rpmdbSetIteratorModified(rpmdbMatchIterator mi, int modified);
119 
128  rpmRC (*hdrchk) (rpmts ts, const void * uh, size_t uc, char ** msg));
129 
139  const void * keyp, size_t keylen);
140 
147 
151 int rpmdbCheckSignals(void);
152 
161 int rpmdbCheckTerminate(int terminate);
162 
169 
177 
186 int rpmdbIndexIteratorNext(rpmdbIndexIterator ii, const void ** key, size_t * keylen);
187 
197 
204 
211 unsigned int rpmdbIndexIteratorPkgOffset(rpmdbIndexIterator ii, unsigned int nr);
212 
219 unsigned int rpmdbIndexIteratorTagNum(rpmdbIndexIterator ii, unsigned int nr);
220 
227 
234 int rpmdbCtrl(rpmdb db, rpmdbCtrlOp ctrl);
235 
236 #ifdef __cplusplus
237 }
238 #endif
239 
240 #endif /* H_RPMDB */
unsigned int rpmdbIndexIteratorTagNum(rpmdbIndexIterator ii, unsigned int nr)
Get tag number of entry.
int rpmdbOpenAll(rpmdb db)
Open all database indices.
enum rpmMireMode_e rpmMireMode
Tag value pattern match mode.
int rpmdbCheckTerminate(int terminate)
Check rpmdb signal handler for trapped signal and/or requested exit, clean up any open iterators and ...
int rpmdbIndexIteratorNext(rpmdbIndexIterator ii, const void **key, size_t *keylen)
Get the next key - Warning! Keys are not zero terminated! Binary tags may even contain zero bytes...
rpmdbIndexIterator rpmdbIndexIteratorFree(rpmdbIndexIterator ii)
Free index iterator.
Header rpmdbNextIterator(rpmdbMatchIterator mi)
Return next package header from iteration.
enum rpmDbiTag_e rpmDbiTag
Rpm database index tags.
rpm_tag_t rpmDbiTagVal
Definition: rpmtypes.h:31
rpm_tag_t rpmTagVal
Definition: rpmtypes.h:30
int rpmdbGetIteratorCount(rpmdbMatchIterator mi)
Return number of elements in rpm database iterator.
int rpmdbSetHdrChk(rpmdbMatchIterator mi, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, char **msg))
Modify iterator to verify retrieved header blobs.
rpmdbMatchIterator rpmdbFreeIterator(rpmdbMatchIterator mi)
Destroy rpm database iterator.
struct rpmdbMatchIterator_s * rpmdbMatchIterator
Definition: rpmtypes.h:69
int rpmdbSetIteratorModified(rpmdbMatchIterator mi, int modified)
Modify iterator to mark header for lazy write on release.
int rpmdbAppendIterator(rpmdbMatchIterator mi, const unsigned int *hdrNums, unsigned int nHdrNums)
Append items to set of package instances to iterate.
rpmop rpmdbOp(rpmdb db, rpmdbOpX opx)
Retrieve operation timestamp from rpm database.
int rpmdbCtrl(rpmdb db, rpmdbCtrlOp ctrl)
manipulate the rpm database
enum rpmdbCtrlOp_e rpmdbCtrlOp
int rpmdbSetIteratorRE(rpmdbMatchIterator mi, rpmTagVal tag, rpmMireMode mode, const char *pattern)
Add pattern to iterator selector.
rpmdbOpX_e
Definition: rpmdb.h:26
struct rpmdb_s * rpmdb
Definition: rpmtypes.h:68
unsigned int rpmdbGetIteratorFileNum(rpmdbMatchIterator mi)
unsigned int rpmdbIndexIteratorNumPkgs(rpmdbIndexIterator ii)
Get number of entries for current key.
Cumulative statistics for an operation.
Definition: rpmsw.h:40
int rpmdbSetIteratorRewrite(rpmdbMatchIterator mi, int rewrite)
Prepare iterator for lazy writes.
enum rpmdbOpX_e rpmdbOpX
static int mode
Definition: rpmdb.c:21
rpmdbIndexIterator rpmdbIndexIteratorInit(rpmdb db, rpmDbiTag rpmtag)
Get an iterator for an index.
struct rpmts_s * rpmts
The main types involved in transaction manipulation.
Definition: rpmtypes.h:63
unsigned int rpmdbGetIteratorOffset(rpmdbMatchIterator mi)
Return header join key for current position of rpm database iterator.
Container for rpm tag data (from headers or extensions).
Definition: rpmtd.h:26
rpmMireMode_e
Tag value pattern match mode.
Definition: rpmdb.h:19
int rpmdbCountPackages(rpmdb db, const char *name)
Return number of instances of package in rpm database.
unsigned int rpmdbIndexIteratorPkgOffset(rpmdbIndexIterator ii, unsigned int nr)
Get package offset of entry.
rpmdbMatchIterator rpmdbInitIterator(rpmdb db, rpmDbiTagVal rpmtag, const void *keyp, size_t keylen)
Return database iterator.
rpmdbCtrlOp_e
Definition: rpmdb.h:33
int rpmdbIndexIteratorNextTd(rpmdbIndexIterator ii, rpmtd keytd)
Get the next key into a tag data container.
enum rpmRC_e rpmRC
Package read return codes.
struct rpmdbIndexIterator_s * rpmdbIndexIterator
Definition: rpmtypes.h:74
int rpmdbCheckSignals(void)
Check for and exit on termination signals.
struct headerToken_s * Header
RPM header and data retrieval types.
Definition: rpmtypes.h:24