41 typedef intrusive_ptr<librpmDb>
Ptr;
42 typedef intrusive_ptr<const librpmDb>
constPtr;
122 static std::string
expand(
const std::string & macro_r );
129 return std::string(
"'(" ) + root_r.
asString() +
")" + sub_r.
asString() +
"'";
189 static unsigned dbRelease(
bool force_r =
false );
236 class db_const_iterator;
262 virtual void unref_to(
unsigned refCount_r )
const;
285 shared_ptr<RpmException>
error()
const;
303 unsigned size()
const;
315 virtual std::ostream &
dumpOn( std::ostream &
str )
const;
527 shared_ptr<RpmException>
dbError()
const;
569 bool findByFile(
const std::string & file_r );
596 bool findByName(
const std::string & name_r );
Edition represents [epoch:]version[-release]
TraitsType::constPtrType constPtr
Base class for reference counted objects.
Wrapper class for ::stat/::lstat.
bool isExist() const
Return whether valid stat info exists.
const Pathname & path() const
Return current Pathname.
const std::string & asString() const
String representation.
bool empty() const
Test for an empty path.
librpmDb internal database handle
Collect info about what kind of rpmdb seems to be present by looking at paths and filenames.
bool hasDbDir() const
Whether dbDir directory exists.
const Pathname & root() const
Root directory for all operations.
const PathInfo & dbV4() const
rpmV4 database (_dbDir/Packages)
Pathname _root
Root directory for all operations.
bool hasDbV3() const
Whether dbV3 file exists.
const PathInfo & dbV3ToV4() const
rpmV3 database backup created on conversion to rpmV4 (_dbDir/packages.rpm3)
DbDirInfo(const Pathname &root_r, const Pathname &dbPath_r)
For Constructor arguments see accessPath.
PathInfo _dbV4
rpmV4 database (_dbDir/Packages)
PathInfo _dbDir
database directory (unset on illegal constructor arguments)
void restat()
Restat all paths.
bool hasDbV4() const
Whether dbV4 file exists.
const PathInfo & dbDir() const
database directory (unset on illegal constructor arguments)
const PathInfo & dbV3() const
rpmV3 database (_dbDir/packages.rpm)
bool usableArgs() const
Whether constructor arguments were llegal and dbDir either is a directory or may be created (path doe...
PathInfo _dbV3ToV4
rpmV3 database backup created on conversion to rpmV4 (_dbDir/packages.rpm3)
const Pathname & dbPath() const
Directory that contains the rpmdb.
PathInfo _dbV3
rpmV3 database (_dbDir/packages.rpm)
friend std::ostream & operator<<(std::ostream &str, const DbDirInfo &obj)
bool hasDbV3ToV4() const
Whether dbV3ToV4 file exists.
bool illegalArgs() const
Whether constructor arguments were illegal.
Pathname _dbPath
Directory that contains the rpmdb.
Subclass to retrieve database content.
unsigned dbHdrNum() const
Returns the current headers index in database, 0 if no header.
db_const_iterator & operator=(const db_const_iterator &)
bool findByProvides(const std::string &tag_r)
Reset to iterate all packages that provide a certain tag.
friend std::ostream & operator<<(std::ostream &str, const db_const_iterator &obj)
bool findByName(const std::string &name_r)
Reset to iterate all packages with a certain name.
~db_const_iterator()
Destructor.
const RpmHeader::constPtr & operator->() const
Forwards to the current RpmHeader::constPtr.
bool findByFile(const std::string &file_r)
Reset to iterate all packages that own a certain file.
bool findAll()
Reset to iterate all packages.
const RpmHeader::constPtr & operator*() const
Returns the current RpmHeader::constPtr or NULL, if no more entries available.
bool findByRequiredBy(const std::string &tag_r)
Reset to iterate all packages that require a certain tag.
bool findPackage(const std::string &name_r)
Find package by name.
shared_ptr< RpmException > dbError() const
Return any database error.
void operator++()
Advance to next RpmHeader::constPtr.
bool findByConflicts(const std::string &tag_r)
Reset to iterate all packages that conflict with a certain tag.
db_const_iterator(const db_const_iterator &)
Manage access to librpm database.
static const Pathname & defaultDbPath()
static bool _dbBlocked
Whether access is blocked (no _defaultDb will be available).
virtual void unref_to(unsigned refCount_r) const
Trigger from Rep, after refCount was decreased.
virtual std::ostream & dumpOn(std::ostream &str) const
Dump debug info.
const Pathname & dbPath() const
const Pathname & root() const
static bool globalInit()
Initialize lib librpm (read configfiles etc.).
static const Pathname & defaultRoot()
intrusive_ptr< const librpmDb > constPtr
intrusive_ptr< librpmDb > Ptr
static librpmDb * newLibrpmDb(Pathname root_r, Pathname dbPath_r, bool readonly_r)
For internal use.
static std::string stringPath(const Pathname &root_r, const Pathname &sub_r)
static unsigned dbRelease(bool force_r=false)
If there are no outstanding references to the database (e.g.
static librpmDb::constPtr _defaultDb
Current rpmdb handle.
shared_ptr< RpmException > error() const
Return any database error.
static Pathname _defaultDbPath
Current directory (below root) that contains the rpmdb.
virtual ~librpmDb()
Destructor.
void * dont_call_it() const
Dont call it ;) It's for development and testing only.
static Pathname _defaultRoot
Current root directory for all operations.
static std::string expand(const std::string ¯o_r)
static void dbAccess(librpmDb::Ptr &ptr_r)
INTENTIONALLY UNDEFINED<\B> because of bug in Ptr classes which allows implicit conversion from librp...
static std::ostream & dumpState(std::ostream &str)
Dump debug info.
librpmDb(const Pathname &root_r, const Pathname &dbPath_r, bool readonly_r)
Private constructor! librpmDb objects are to be created via static interface only.
static void dbAccess()
Access the database at the current default location.
static unsigned blockAccess()
Blocks further access to rpmdb.
static void unblockAccess()
Allow access to rpmdb e.g.
String related utilities and Regular expression matching.
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
Easy-to use interface to the ZYPP dependency resolver.