Manage access to librpm database.
More...
#include <zypp/target/rpm/librpmDb.h>
Manage access to librpm database.
Definition at line 51 of file librpmDb.h.
◆ Ptr
◆ constPtr
◆ librpmDb()
Private constructor! librpmDb objects are to be created via static interface only.
Definition at line 227 of file librpmDb.cc.
◆ ~librpmDb()
zypp::target::rpm::librpmDb::~librpmDb |
( |
| ) |
|
|
override |
◆ ~db_const_iterator()
zypp::target::rpm::librpmDb::~db_const_iterator |
( |
| ) |
|
◆ dbAccess() [1/2]
INTENTIONALLY UNDEFINED<\B> because of bug in Ptr classes which allows implicit conversion from librpmDb::Ptr to librpmDb::constPtr.
Currently we don't want to provide non const handles, as the database is opened READONLY.
- Exceptions
-
◆ globalInit()
bool zypp::target::rpm::librpmDb::globalInit |
( |
| ) |
|
|
static |
Initialize lib librpm (read configfiles etc.).
It's called on demand but you may call it anytime.
- Returns
- Whether librpm is initialized.
Definition at line 139 of file librpmDb.cc.
◆ expand()
std::string zypp::target::rpm::librpmDb::expand |
( |
const std::string & | macro_r | ) |
|
|
static |
- Returns
- librpm macro expansion.
Definition at line 159 of file librpmDb.cc.
◆ suggestedDbPath()
Pathname zypp::target::rpm::librpmDb::suggestedDbPath |
( |
const Pathname & | root_r | ) |
|
|
static |
- Returns
- The preferred location of the rpmdb below root_r. It's the location of an already existing db, otherwise the default location suggested by rpm's config.
- Exceptions
-
RpmException | if root is not an absolute path or no directory for the rpmdb can determined. |
Definition at line 171 of file librpmDb.cc.
◆ dbExists()
- Returns
- whether the rpmdb below the system at root_r exists. Unless a dbPath_r is explicitly specified, the systems default rpmdb is used (
- See also
- suggestedDbPath).
- Exceptions
-
RpmException | if no directory for the rpmdb can be determined. |
Definition at line 183 of file librpmDb.cc.
◆ dbOpenIf()
Open the rpmdb below the system at root_r (if it exists).
If the database does not exist a nullptr
is returned. Unless a dbPath_r is explicitly specified, the systems default rpmdb is used (
- See also
- suggestedDbPath).
- Exceptions
-
Definition at line 195 of file librpmDb.cc.
◆ dbOpenCreate()
Assert the rpmdb below the system at root_r exists.
If the database does not exist an empty one is created. Unless a dbPath_r is explicitly specified, the systems default rpmdb is used (
- See also
- suggestedDbPath).
- Exceptions
-
Definition at line 198 of file librpmDb.cc.
◆ dbAccess() [2/2]
Internal workhorse managing database creation and access.
- Exceptions
-
Definition at line 201 of file librpmDb.cc.
◆ unref_to()
void zypp::target::rpm::librpmDb::unref_to |
( |
unsigned | refCount_r | ) |
const |
|
overrideprivatevirtual |
◆ root()
const Pathname & zypp::target::rpm::librpmDb::root |
( |
| ) |
const |
- Returns
- This handles root directory for all operations.
Definition at line 240 of file librpmDb.cc.
◆ dbPath()
const Pathname & zypp::target::rpm::librpmDb::dbPath |
( |
| ) |
const |
- Returns
- This handles directory that contains the rpmdb.
Definition at line 243 of file librpmDb.cc.
◆ dumpOn()
std::ostream & zypp::target::rpm::librpmDb::dumpOn |
( |
std::ostream & | str | ) |
const |
|
overridevirtual |
◆ operator=()
◆ db_const_iterator() [1/5]
◆ db_const_iterator() [2/5]
zypp::target::rpm::librpmDb::db_const_iterator |
( |
| ) |
|
Open the default rpmdb below the host system (at /).
- Deprecated
- It's preferred to explicitly tell the root directory of the system whose database you want to query.
◆ db_const_iterator() [3/5]
zypp::target::rpm::librpmDb::db_const_iterator |
( |
const Pathname & | root_r | ) |
|
|
explicit |
Open the default rpmdb below the system at root_r.
◆ db_const_iterator() [4/5]
zypp::target::rpm::librpmDb::db_const_iterator |
( |
const Pathname & | root_r, |
|
|
const Pathname & | dbPath_r ) |
Open a specific rpmdb below the system at root_r.
◆ db_const_iterator() [5/5]
zypp::target::rpm::librpmDb::db_const_iterator |
( |
std::nullptr_t | | ) |
|
A null iterator.
What you get if the database does not exist.
◆ hasDB()
bool zypp::target::rpm::librpmDb::hasDB |
( |
| ) |
const |
Whether an underlying rpmdb exists.
◆ operator++()
void zypp::target::rpm::librpmDb::operator++ |
( |
| ) |
|
◆ dbHdrNum()
unsigned zypp::target::rpm::librpmDb::dbHdrNum |
( |
| ) |
const |
Returns the current headers index in database, 0 if no header.
◆ operator*()
◆ operator->()
◆ findAll()
bool zypp::target::rpm::librpmDb::findAll |
( |
| ) |
|
Reset to iterate all packages.
Returns true if iterator contains at least one entry.
◆ findByFile()
bool zypp::target::rpm::librpmDb::findByFile |
( |
const std::string & | file_r | ) |
|
Reset to iterate all packages that own a certain file.
◆ findByProvides()
bool zypp::target::rpm::librpmDb::findByProvides |
( |
const std::string & | tag_r | ) |
|
Reset to iterate all packages that provide a certain tag.
◆ findByRequiredBy()
bool zypp::target::rpm::librpmDb::findByRequiredBy |
( |
const std::string & | tag_r | ) |
|
Reset to iterate all packages that require a certain tag.
◆ findByConflicts()
bool zypp::target::rpm::librpmDb::findByConflicts |
( |
const std::string & | tag_r | ) |
|
Reset to iterate all packages that conflict with a certain tag.
◆ findByName()
bool zypp::target::rpm::librpmDb::findByName |
( |
const std::string & | name_r | ) |
|
Reset to iterate all packages with a certain name.
NOTE: Multiple entries for one package installed in different versions are possible but not desired. Usually you'll want to use findPackage instead.
findByName is needed to retrieve pseudo packages like 'gpg-pubkey', which in fact exist in multiple instances.
◆ findPackage() [1/3]
bool zypp::target::rpm::librpmDb::findPackage |
( |
const std::string & | name_r | ) |
|
Find package by name.
Multiple entries for one package installed in different versions are possible but not desired. If so, the last package installed is returned.
◆ findPackage() [2/3]
bool zypp::target::rpm::librpmDb::findPackage |
( |
const std::string & | name_r, |
|
|
const Edition & | ed_r ) |
Find package by name and edition.
Commonly used by PMRpmPackageDataProvider.
◆ findPackage() [3/3]
Abbr.
for findPackage( which_r->name(), which_r->edition() );
◆ librpmDb
◆ operator<<
◆ _d
D & zypp::target::rpm::librpmDb::_d |
|
private |
The documentation for this class was generated from the following files: