Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

RPMDB.


Files

file  dbconfig.c
file  rpmdb.c
file  rpmdb.h
 Access RPM indices using Berkeley DB interface(s).

file  rpmlib.h

Data Structures

struct  rpmdb_s

RPMDB

typedef struct rpmdb_srpmdb
typedef struct _dbiIndexSetdbiIndexSet
typedef struct _rpmdbMatchIteratorrpmdbMatchIterator
int rpmdbOpen (const char *root, rpmdb *dbp, int mode, int perms)
int rpmdbInit (const char *root, int perms)
int rpmdbClose (rpmdb rpmdb)
int rpmdbSync (rpmdb rpmdb)
int rpmdbOpenAll (rpmdb rpmdb)
int rpmdbCountPackages (rpmdb db, const char *name)
void rpmdbFreeIterator (rpmdbMatchIterator mi)
rpmdb rpmdbGetIteratorRpmDB (rpmdbMatchIterator mi)
unsigned int rpmdbGetIteratorOffset (rpmdbMatchIterator mi)
int rpmdbGetIteratorCount (rpmdbMatchIterator mi)
int rpmdbAppendIterator (rpmdbMatchIterator mi, const int *hdrNums, int nHdrNums)
int rpmdbPruneIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums, int sorted)
void rpmdbSetIteratorVersion (rpmdbMatchIterator mi, const char *version)
void rpmdbSetIteratorRelease (rpmdbMatchIterator mi, const char *release)
int rpmdbSetIteratorModified (rpmdbMatchIterator mi, int modified)
Header rpmdbNextIterator (rpmdbMatchIterator mi)
rpmdbMatchIterator rpmdbInitIterator (rpmdb rpmdb, int rpmtag, const void *key, size_t keylen)
int rpmdbAdd (rpmdb rpmdb, int iid, Header h)
int rpmdbRemove (rpmdb db, int rid, unsigned int offset)
int rpmdbRebuild (const char *root)
Header XrpmdbNextIterator (rpmdbMatchIterator mi, const char *f, unsigned l)

Enumerations

enum  rpmdbFlags { RPMDB_FLAG_JUSTCHECK = (1 << 0), RPMDB_FLAG_MINIMAL = (1 << 1), RPMDB_FLAG_CHROOT = (1 << 2) }

Functions

unsigned int rpmdbGetIteratorFileNum (rpmdbMatchIterator mi)
int rpmdbFindFpList (rpmdb rpmdb, fingerPrint *fpList, dbiIndexSet *matchList, int numItems)

Typedef Documentation

typedef struct _dbiIndexSet * dbiIndexSet
 

Definition at line 562 of file rpmlib.h.

typedef struct rpmdb_s * rpmdb
 

Definition at line 558 of file rpmlib.h.

typedef struct _rpmdbMatchIterator * rpmdbMatchIterator
 

Definition at line 613 of file rpmlib.h.


Enumeration Type Documentation

enum rpmdbFlags
 

Enumeration values:
RPMDB_FLAG_JUSTCHECK  
RPMDB_FLAG_MINIMAL  
RPMDB_FLAG_CHROOT  

Definition at line 270 of file rpmdb.h.


Function Documentation

Header XrpmdbNextIterator ( rpmdbMatchIterator mi,
const char * f,
unsigned l )
 

Definition at line 1313 of file rpmdb.c.

int rpmdbAdd ( rpmdb rpmdb,
int iid,
Header h )
 

Add package header to rpm database and indices.

Parameters:
rpmdb   rpm database
iid   install transaction id (or -1 to skip)
h   header
Returns:
0 on success

Definition at line 1818 of file rpmdb.c.

Referenced by psmStage(), and rpmdbRebuild().

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

Append items to set of package instances to iterate.

Parameters:
mi   rpm database iterator
hdrNums   array of package instances
nHdrNums   number of elements in array
Returns:
0 on success, 1 on failure (bad args)

Definition at line 1482 of file rpmdb.c.

Referenced by markReplacedFiles(), rpmRunTransactions(), and rpmdepCheck().

int rpmdbClose ( rpmdb rpmdb )
 

Close all database indices and free rpmdb.

Parameters:
rpmdb   rpm database
Returns:
0 always

Definition at line 675 of file rpmdb.c.

Referenced by checkSpec(), main(), newRpmdb(), openDatabase(), rpmErase(), rpmInstall(), rpmQuery(), rpmVerify(), rpmdbDealloc(), rpmdbInit(), rpmdbRebuild(), and ugFindUpgradePackages().

int rpmdbCountPackages ( rpmdb db,
const char * name )
 

Return number of instances of package in rpm database.

Parameters:
db   rpm database
name   rpm package name
Returns:
number of instances

Definition at line 1001 of file rpmdb.c.

Referenced by findPackagesWithObsoletes(), handleOneTrigger(), psmStage(), and runTriggers().

int rpmdbFindFpList ( rpmdb rpmdb,
fingerPrint * fpList,
dbiIndexSet * matchList,
int numItems )
 

Parameters:
rpmdb   rpm database

Definition at line 2068 of file rpmdb.c.

Referenced by rpmRunTransactions().

void rpmdbFreeIterator ( rpmdbMatchIterator mi )
 

Destroy rpm database iterator.

Parameters:
mi   rpm database iterator

Definition at line 1212 of file rpmdb.c.

Referenced by addLostFiles(), checkPackageSet(), dbiFindMatches(), findUpgradePackages(), handleDbResult(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), main(), markReplacedFiles(), psmStage(), rpmErase(), rpmInstall(), rpmRunTransactions(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbFirst(), rpmdbLength(), rpmdbMIDealloc(), rpmdbRebuild(), rpmdbRemove(), rpmdbSubscript(), rpmdepCheck(), rpmtransAddPackage(), rpmtransRemove(), runImmedTriggers(), runTriggers(), showMatches(), unmarkPackagesAlreadyInstalled(), and unsatisfiedDepend().

int rpmdbGetIteratorCount ( rpmdbMatchIterator mi )
 

Return number of elements in rpm database iterator.

Parameters:
mi   rpm database iterator
Returns:
number of elements

Definition at line 1278 of file rpmdb.c.

Referenced by rpmErase(), rpmInstall(), rpmdbFindFpList(), rpmtransRemove(), and runImmedTriggers().

unsigned int rpmdbGetIteratorFileNum ( rpmdbMatchIterator mi )
 

Definition at line 1272 of file rpmdb.c.

unsigned int rpmdbGetIteratorOffset ( rpmdbMatchIterator mi )
 

Return join key for current position of rpm database iterator.

Parameters:
mi   rpm database iterator
Returns:
current join key

Definition at line 1266 of file rpmdb.c.

Referenced by handleDbResult(), markReplacedFiles(), psmStage(), rpmErase(), rpmdbFirst(), rpmtransAddPackage(), and rpmtransRemove().

rpmdb rpmdbGetIteratorRpmDB ( rpmdbMatchIterator mi )
 

Return rpm database used by iterator.

Parameters:
mi   rpm database iterator
Returns:
rpm database handle

Definition at line 1260 of file rpmdb.c.

Referenced by showMatches().

int rpmdbInit ( const char * root,
int perms )
 

Initialize database.

Parameters:
root   path to top of install tree
perms   database permissions
Returns:
0 on success

Definition at line 866 of file rpmdb.c.

Referenced by main(), and rpmInitDB().

rpmdbMatchIterator rpmdbInitIterator ( rpmdb rpmdb,
int rpmtag,
const void * key,
size_t keylen )
 

Return database iterator.

Parameters:
rpmdb   rpm database
rpmtag   rpm tag
keyp   key data (NULL for sequential access)
keylen   key data length (0 will use strlen(keyp))
Returns:
NULL on failure

Definition at line 1493 of file rpmdb.c.

Referenced by addLostFiles(), checkDependentConflicts(), checkDependentPackages(), dbiFindMatches(), findUpgradePackages(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), main(), markReplacedFiles(), psmStage(), py_rpmdbInitIterator(), rpmErase(), rpmInstall(), rpmQueryVerify(), rpmRunTransactions(), rpmdbByFile(), rpmdbByName(), rpmdbByProvides(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbFirst(), rpmdbLength(), rpmdbRebuild(), rpmdbRemove(), rpmdbSubscript(), rpmdepCheck(), rpmtransAddPackage(), rpmtransRemove(), runImmedTriggers(), runTriggers(), unmarkPackagesAlreadyInstalled(), and unsatisfiedDepend().

Header rpmdbNextIterator ( rpmdbMatchIterator mi )
 

Return next package header from iteration.

Parameters:
mi   rpm database iterator
Returns:
NULL on end of iteration.

int rpmdbOpen ( const char * root,
rpmdb * dbp,
int mode,
int perms )
 

Open rpm database.

Parameters:
root   path to top of install tree
Return values:
dbp   address of rpm database
Parameters:
mode   open(2) flags: O_RDWR or O_RDONLY (O_CREAT also)
perms   database permissions
Returns:
0 on success

Definition at line 860 of file rpmdb.c.

Referenced by checkSpec(), main(), rpmErase(), rpmInstall(), rpmOpenDB(), rpmQuery(), rpmVerify(), and ugFindUpgradePackages().

int rpmdbOpenAll ( rpmdb rpmdb )
 

Open all database indices.

Parameters:
rpmdb   rpm database
Returns:
0 always

Definition at line 662 of file rpmdb.c.

Referenced by rpmRunTransactions(), and rpmdbInit().

int rpmdbPruneIterator ( rpmdbMatchIterator mi,
int * hdrNums,
int nHdrNums,
int sorted )
 

Remove items from set of package instances to iterate.

Parameters:
mi   rpm database iterator
hdrNums   array of package instances
nHdrNums   number of elements in array
sorted   is the array sorted? (array will be sorted on return)
Returns:
0 on success, 1 on failure (bad args)

Definition at line 1471 of file rpmdb.c.

Referenced by checkPackageSet(), rpmtransAddPackage(), and unsatisfiedDepend().

int rpmdbRebuild ( const char * root )
 

Rebuild database indices from package headers.

Parameters:
root   path to top of install tree

Definition at line 2347 of file rpmdb.c.

Referenced by main(), and rebuildDB().

int rpmdbRemove ( rpmdb db,
int rid,
unsigned int offset )
 

Remove package header from rpm database and indices.

Parameters:
rpmdb   rpm database
rid   remove transaction id (or -1 to skip)
offset   location in Packages dbi
Returns:
0 on success

Definition at line 1620 of file rpmdb.c.

Referenced by psmStage().

int rpmdbSetIteratorModified ( rpmdbMatchIterator mi,
int modified )
 

Modify iterator to mark header for lazy write.

Parameters:
mi   rpm database iterator
modified   new value of modified
Returns:
previous value

Definition at line 1304 of file rpmdb.c.

Referenced by markReplacedFiles().

void rpmdbSetIteratorRelease ( rpmdbMatchIterator mi,
const char * release )
 

Modify iterator to filter out headers that do not match release.

Todo:
Replace with a more general mechanism using RE's on tag content.
Parameters:
mi   rpm database iterator
release   release to check for

Definition at line 1284 of file rpmdb.c.

Referenced by psmStage(), rpmRunTransactions(), and rpmdbRebuild().

void rpmdbSetIteratorVersion ( rpmdbMatchIterator mi,
const char * version )
 

Modify iterator to filter out headers that do not match version.

Todo:
Replace with a more general mechanism using RE's on tag content.
Parameters:
mi   rpm database iterator
version   version to check for

Definition at line 1294 of file rpmdb.c.

Referenced by psmStage(), rpmRunTransactions(), and rpmdbRebuild().

int rpmdbSync ( rpmdb rpmdb )
 

Sync all database indices.

Parameters:
rpmdb   rpm database
Returns:
0 always

Definition at line 705 of file rpmdb.c.

Referenced by rpmRunTransactions().


Generated at Thu Apr 19 15:29:51 2001 for rpm by doxygen1.2.6-20010408 written by Dimitri van Heesch, © 1997-2001