libzypp 17.37.10

zypp::target::rpm::librpmDb Class Reference

Manage access to librpm database. More...

`#include <zypp/target/rpm/librpmDb.h>`

Inheritance diagram for zypp::target::rpm::librpmDb:

## Classes
class | D
| librpmDb internal database handle More...
class | db_const_iterator
| Subclass to retrieve rpm database content. More...

## Public Types
using | Ptr = intrusive_ptr<librpmDb>
using | constPtr = intrusive_ptr<const librpmDb>

## Public Member Functions
| ~librpmDb () override
| Destructor.
const Pathname & | root () const
const Pathname & | dbPath () const
std::ostream & | dumpOn (std::ostream &str) const override
| Dump debug info.
Public Member Functions inherited from zypp::base::ReferenceCounted
| ReferenceCounted ()
| Default ctor.
| ReferenceCounted (const ReferenceCounted &rhs)
| Copy ctor.
virtual | ~ReferenceCounted ()
| Dtor.
ReferenceCounted & | operator= (const ReferenceCounted &)
| Assignment.
unsigned | refCount () const
| Return reference counter value.
void | ref () const
| Add a reference.
void | unref () const
| Release a reference.

## Static Public Member Functions
static bool | globalInit ()
| Initialize lib librpm (read configfiles etc.).
static std::string | expand (const std::string &macro_r)
static Pathname | suggestedDbPath (const Pathname &root_r)
static bool | dbExists (const Pathname &root_r, const Pathname &dbPath_r=Pathname())
static librpmDb::constPtr | dbOpenIf (const Pathname &root_r, const Pathname &dbPath_r=Pathname())
| Open the rpmdb below the system at root_r (if it exists).
static librpmDb::constPtr | dbOpenCreate (const Pathname &root_r, const Pathname &dbPath_r=Pathname())
| Assert the rpmdb below the system at root_r exists.
Static Public Member Functions inherited from zypp::base::ReferenceCounted
static void | add_ref (const ReferenceCounted *ptr_r)
| Called by zypp::intrusive_ptr to add a reference.
static void | release (const ReferenceCounted *ptr_r)
| Called by zypp::intrusive_ptr to add a reference.

## Private Member Functions
| librpmDb (const Pathname &root_r, const Pathname &dbPath_r, bool readonly_r=true)
| Private constructor!
void | unref_to (unsigned refCount_r) const override
| Trigger from Rep, after refCount was decreased.

## Static Private Member Functions
static void | dbAccess (librpmDb::Ptr &ptr_r)
| INTENTIONALLY UNDEFINED<\B> because of bug in Ptr classes which allows implicit conversion from librpmDb::Ptr to librpmDb::constPtr.
static librpmDb::constPtr | dbAccess (const Pathname &root_r, const Pathname &dbPath_r, bool create_r=false)
| Internal workhorse managing database creation and access.

## Private Attributes
D & | _d

## Related Symbols
(Note that these are not member symbols.)
std::ostream & | operator<< (std::ostream &str, const librpmDb::db_const_iterator &obj) ZYPP_API
| stream output
Related Symbols inherited from zypp::base::ReferenceCounted
void | intrusive_ptr_add_ref (const ReferenceCounted *ptr_r)
| intrusive_ptr hook to add_ref.
void | intrusive_ptr_release (const ReferenceCounted *ptr_r)
| intrusive_ptr hook to release.
std::ostream & | operator<< (std::ostream &str, const ReferenceCounted &obj)
| Stream output.

## Additional Inherited Members
Protected Member Functions inherited from zypp::base::ReferenceCounted
virtual void | ref_to (unsigned) const
| Trigger derived classes after refCount was increased.

## Detailed Description

Manage access to librpm database.

Definition at line 51 of file librpmDb.h.

## Member Typedef Documentation

## ◆ Ptr

using zypp::target::rpm::librpmDb::Ptr = intrusive_ptr<librpmDb>

Definition at line 54 of file librpmDb.h.

## ◆ constPtr

using zypp::target::rpm::librpmDb::constPtr = intrusive_ptr<const librpmDb>

Definition at line 55 of file librpmDb.h.

## Constructor & Destructor Documentation

## ◆ librpmDb()

zypp::target::rpm::librpmDb::librpmDb | ( | const Pathname & | root_r,
|  | const Pathname & | dbPath_r,
|  | bool | readonly_r = true )
| private

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

Destructor.

Closes rpmdb.

Definition at line 231 of file librpmDb.cc.

## Member Function Documentation

## ◆ dbAccess() [1/2]

void zypp::target::rpm::librpmDb::dbAccess | ( | librpmDb::Ptr & | ptr_r | ) |
| static private

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

  RpmException |

## ◆ 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()

bool zypp::target::rpm::librpmDb::dbExists | ( | const Pathname & | root_r,
|  | const Pathname & | dbPath_r = Pathname() )
| static

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()

librpmDb::constPtr zypp::target::rpm::librpmDb::dbOpenIf | ( | const Pathname & | root_r,
|  | const Pathname & | dbPath_r = Pathname() )
| static

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

  RpmException | if an existing database can not be opened.

Definition at line 195 of file librpmDb.cc.

## ◆ dbOpenCreate()

librpmDb::constPtr zypp::target::rpm::librpmDb::dbOpenCreate | ( | const Pathname & | root_r,
|  | const Pathname & | dbPath_r = Pathname() )
| static

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

  RpmException | if the database can not be created or opened.

Definition at line 198 of file librpmDb.cc.

## ◆ dbAccess() [2/2]

librpmDb::constPtr zypp::target::rpm::librpmDb::dbAccess | ( | const Pathname & | root_r,
|  | const Pathname & | dbPath_r,
|  | bool | create_r = false )
| static private

Internal workhorse managing database creation and access.

Exceptions

  RpmException | if an existing database can not be opened.

Definition at line 201 of file librpmDb.cc.

## ◆ unref_to()

void zypp::target::rpm::librpmDb::unref_to | ( | unsigned | refCount_r | ) | const
| override private virtual

Trigger from Rep, after refCount was decreased.

Reimplemented from zypp::base::ReferenceCounted.

Definition at line 237 of file librpmDb.cc.

## ◆ 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
| override virtual

Dump debug info.

Reimplemented from zypp::base::ReferenceCounted.

Definition at line 246 of file librpmDb.cc.

## Member Data Documentation

## ◆ _d

D& zypp::target::rpm::librpmDb::_d
| private

Definition at line 147 of file librpmDb.h.

The documentation for this class was generated from the following files:

- zypp/target/rpm/librpmDb.h
- zypp/target/rpm/librpmDb.cc