rpm 6.1.90
The RPM Package Manager
Loading...
Searching...
No Matches
Database API.

Opening & accessing the RPM database. More...

Collaboration diagram for Database API.:

Files

file  rpmdb.h
file  rpmlib.h

Functions

RPM_PUBLIC_API rpmop rpmdbOp (rpmdb db, rpmdbOpX opx)
RPM_PUBLIC_API int rpmdbOpenAll (rpmdb db)
RPM_PUBLIC_API int rpmdbCountPackages (rpmdb db, const char *name)
RPM_PUBLIC_API unsigned int rpmdbGetIteratorOffset (rpmdbMatchIterator mi)
RPM_PUBLIC_API int rpmdbGetIteratorCount (rpmdbMatchIterator mi)
RPM_PUBLIC_API unsigned int rpmdbGetIteratorFileNum (rpmdbMatchIterator mi)
RPM_PUBLIC_API int rpmdbAppendIterator (rpmdbMatchIterator mi, const unsigned int *hdrNums, unsigned int nHdrNums)
RPM_PUBLIC_API int rpmdbSetIteratorRE (rpmdbMatchIterator mi, rpmTagVal tag, rpmMireMode mode, const char *pattern)
RPM_PUBLIC_API int rpmdbSetIteratorRewrite (rpmdbMatchIterator mi, int rewrite)
RPM_PUBLIC_API int rpmdbSetIteratorModified (rpmdbMatchIterator mi, int modified)
RPM_PUBLIC_API int rpmdbSetHdrChk (rpmdbMatchIterator mi, rpmts ts, rpmRC(*hdrchk)(rpmts ts, const void *uh, size_t uc, char **msg))
RPM_PUBLIC_API rpmdbMatchIterator rpmdbInitIterator (rpmdb db, rpmDbiTagVal rpmtag, const void *keyp, size_t keylen)
RPM_PUBLIC_API Header rpmdbNextIterator (rpmdbMatchIterator mi)
RPM_PUBLIC_API rpmdbMatchIterator rpmdbFreeIterator (rpmdbMatchIterator mi)
RPM_PUBLIC_API rpmdbIndexIterator rpmdbIndexKeyIteratorInit (rpmdb db, rpmDbiTag rpmtag)
RPM_PUBLIC_API rpmdbIndexIterator rpmdbIndexIteratorInit (rpmdb db, rpmDbiTag rpmtag)
RPM_PUBLIC_API int rpmdbIndexIteratorNext (rpmdbIndexIterator ii, const void **key, size_t *keylen)
RPM_PUBLIC_API int rpmdbIndexIteratorNextTd (rpmdbIndexIterator ii, rpmtd keytd)
RPM_PUBLIC_API unsigned int rpmdbIndexIteratorNumPkgs (rpmdbIndexIterator ii)
RPM_PUBLIC_API unsigned int rpmdbIndexIteratorPkgOffset (rpmdbIndexIterator ii, unsigned int nr)
RPM_PUBLIC_API unsigned int rpmdbIndexIteratorTagNum (rpmdbIndexIterator ii, unsigned int nr)
RPM_PUBLIC_API rpmdbIndexIterator rpmdbIndexIteratorFree (rpmdbIndexIterator ii)
RPM_PUBLIC_API int rpmdbCtrl (rpmdb db, rpmdbCtrlOp ctrl)
RPM_PUBLIC_API char * rpmdbCookie (rpmdb db)
RPM_PUBLIC_API int rpmdbStat (const char *prefix, struct stat *statbuf)
RPM_PUBLIC_API int rpmdbFStat (rpmdb db, struct stat *statbuf)

Detailed Description

Opening & accessing the RPM database.

Function Documentation

◆ rpmdbAppendIterator()

RPM_PUBLIC_API int rpmdbAppendIterator ( rpmdbMatchIterator mi,
const unsigned int * hdrNums,
unsigned int nHdrNums )

Append items to set of package instances to iterate.

Parameters
mirpm database iterator
hdrNumsarray of package instances
nHdrNumsnumber of elements in array
Returns
0 on success, 1 on failure (bad args)

◆ rpmdbCookie()

RPM_PUBLIC_API char * rpmdbCookie ( rpmdb db)

Retrieve rpm database changed-cookie. Useful for eg. determining cache validity.

Parameters
dbrpm database
Returns
cookie string (malloced), or NULL on error

◆ rpmdbCountPackages()

RPM_PUBLIC_API int rpmdbCountPackages ( rpmdb db,
const char * name )

Return number of instances of package in rpm database.

Parameters
dbrpm database
namerpm package name
Returns
number of instances

◆ rpmdbCtrl()

RPM_PUBLIC_API int rpmdbCtrl ( rpmdb db,
rpmdbCtrlOp ctrl )

manipulate the rpm database

Parameters
dbrpm database
ctrloperation
Returns
0 on success; != 0 on error

◆ rpmdbFreeIterator()

RPM_PUBLIC_API rpmdbMatchIterator rpmdbFreeIterator ( rpmdbMatchIterator mi)

Destroy rpm database iterator.

Parameters
mirpm database iterator
Returns
NULL always

◆ rpmdbFStat()

RPM_PUBLIC_API int rpmdbFStat ( rpmdb db,
struct stat * statbuf )

Perform stat() on an open rpm database

Parameters
dbrpm database
[out]statbufreturned data from stat()
Returns
0 on success, -1 on error

◆ rpmdbGetIteratorCount()

RPM_PUBLIC_API int rpmdbGetIteratorCount ( rpmdbMatchIterator mi)

Return number of elements in rpm database iterator.

Parameters
mirpm database iterator
Returns
number of elements

◆ rpmdbGetIteratorFileNum()

RPM_PUBLIC_API unsigned int rpmdbGetIteratorFileNum ( rpmdbMatchIterator mi)

Return index to the array of elements (eg files) being iterated.

Parameters
mirpm database iterator
Returns
array index

◆ rpmdbGetIteratorOffset()

RPM_PUBLIC_API unsigned int rpmdbGetIteratorOffset ( rpmdbMatchIterator mi)

Return header join key for current position of rpm database iterator.

Parameters
mirpm database iterator
Returns
current header join key

◆ rpmdbIndexIteratorFree()

RPM_PUBLIC_API rpmdbIndexIterator rpmdbIndexIteratorFree ( rpmdbIndexIterator ii)

Free index iterator

Parameters
iiindex iterator return NULL

◆ rpmdbIndexIteratorInit()

RPM_PUBLIC_API rpmdbIndexIterator rpmdbIndexIteratorInit ( rpmdb db,
rpmDbiTag rpmtag )

Get an iterator for an index

Parameters
dbrpm database
RPM Tag API.the index to iterate over
Returns
the index iterator

◆ rpmdbIndexIteratorNext()

RPM_PUBLIC_API 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

Parameters
iiindex iterator
keyaddress to save the pointer to the key
keylenaddress to save the length of the key to
Returns
0 on success; != 0 on error or end of index

◆ rpmdbIndexIteratorNextTd()

RPM_PUBLIC_API int rpmdbIndexIteratorNextTd ( rpmdbIndexIterator ii,
rpmtd keytd )

Get the next key into a tag data container. Caller is responsible for calling rpmtdFreeData() to freeing the data returned in keytd once done with it.

Parameters
iiindex iterator
keytdtag container to store the key in
Returns
0 on success; != 0 on error or end of index

◆ rpmdbIndexIteratorNumPkgs()

RPM_PUBLIC_API unsigned int rpmdbIndexIteratorNumPkgs ( rpmdbIndexIterator ii)

Get number of entries for current key

Parameters
iiindex iterator
Returns
number of entries. 0 on error.

◆ rpmdbIndexIteratorPkgOffset()

RPM_PUBLIC_API unsigned int rpmdbIndexIteratorPkgOffset ( rpmdbIndexIterator ii,
unsigned int nr )

Get package offset of entry

Parameters
iiindex iterator
nrnumber of the entry
Returns
db offset of pkg

◆ rpmdbIndexIteratorTagNum()

RPM_PUBLIC_API unsigned int rpmdbIndexIteratorTagNum ( rpmdbIndexIterator ii,
unsigned int nr )

Get tag number of entry

Parameters
iiindex iterator
nrnumber of the entry
Returns
number of tag within the package

◆ rpmdbIndexKeyIteratorInit()

RPM_PUBLIC_API rpmdbIndexIterator rpmdbIndexKeyIteratorInit ( rpmdb db,
rpmDbiTag rpmtag )

Get an iterator for index keys

Parameters
dbrpm database
RPM Tag API.the index to iterate over
Returns
the index iterator

◆ rpmdbInitIterator()

RPM_PUBLIC_API rpmdbMatchIterator rpmdbInitIterator ( rpmdb db,
rpmDbiTagVal rpmtag,
const void * keyp,
size_t keylen )

Return database iterator.

Parameters
dbrpm database
RPM Tag API.database index tag
keypkey data (NULL for sequential access)
keylenkey data length (0 will use strlen(keyp))
Returns
NULL on failure

◆ rpmdbNextIterator()

RPM_PUBLIC_API Header rpmdbNextIterator ( rpmdbMatchIterator mi)

Return next package header from iteration.

Parameters
mirpm database iterator
Returns
NULL on end of iteration.

◆ rpmdbOp()

RPM_PUBLIC_API rpmop rpmdbOp ( rpmdb db,
rpmdbOpX opx )

Retrieve operation timestamp from rpm database.

Parameters
dbrpm database
opxoperation timestamp index
Returns
pointer to operation timestamp.

◆ rpmdbOpenAll()

RPM_PUBLIC_API int rpmdbOpenAll ( rpmdb db)

Open all database indices.

Parameters
dbrpm database
Returns
0 on success

◆ rpmdbSetHdrChk()

RPM_PUBLIC_API 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.

Parameters
mirpm database iterator
tstransaction set
(*hdrchk)headerCheck() vector
Returns
0 always

◆ rpmdbSetIteratorModified()

RPM_PUBLIC_API int rpmdbSetIteratorModified ( rpmdbMatchIterator mi,
int modified )

Modify iterator to mark header for lazy write on release.

Parameters
mirpm database iterator
modifiednew value of modified
Returns
previous value

◆ rpmdbSetIteratorRE()

RPM_PUBLIC_API int rpmdbSetIteratorRE ( rpmdbMatchIterator mi,
rpmTagVal tag,
rpmMireMode mode,
const char * pattern )

Add pattern to iterator selector.

Parameters
mirpm database iterator
tagrpm tag
modetype of pattern match
patternpattern to match
Returns
0 on success

◆ rpmdbSetIteratorRewrite()

RPM_PUBLIC_API int rpmdbSetIteratorRewrite ( rpmdbMatchIterator mi,
int rewrite )

Prepare iterator for lazy writes.

Note
Must be called before rpmdbNextIterator() with CDB model database.
Parameters
mirpm database iterator
rewritenew value of rewrite
Returns
previous value

◆ rpmdbStat()

RPM_PUBLIC_API int rpmdbStat ( const char * prefix,
struct stat * statbuf )

Perform stat() on rpm database

Parameters
prefixprefix or NULL for /
[out]statbufreturned data from stat()
Returns
0 on success, -1 on error