libzypp
10.5.0
|
Global ResObject pool. More...
#include <ResPool.h>
Public Types | |
typedef PoolItem | value_type |
PoolItem | |
typedef pool::PoolTraits::size_type | size_type |
typedef pool::PoolTraits::const_iterator | const_iterator |
typedef pool::PoolTraits::repository_iterator | repository_iterator |
Public Member Functions | |
ResPoolProxy | proxy () const |
preliminary | |
Resolver & | resolver () const |
The Resolver. | |
const SerialNumber & | serial () const |
The pools serial number. | |
bool | empty () const |
size_type | size () const |
PoolItem | find (const sat::Solvable &slv_r) const |
Return the corresponding PoolItem. | |
PoolItem | find (const ResObject::constPtr &resolvable_r) const |
Iterate over all PoolItems (all kinds). | |
const_iterator | begin () const |
const_iterator | end () const |
Iterate over all PoolItems matching a \c _Filter. | |
template<class _Filter > | |
filter_iterator< _Filter, const_iterator > | filterBegin (const _Filter &filter_r) const |
template<class _Filter > | |
filter_iterator< _Filter, const_iterator > | filterEnd (const _Filter &filter_r) const |
Iterate over all PoolItems by status. | |
Simply pass the ResStatus predicate you want to use as filter: // iterate over all orphaned items: for_( it, pool.byStatusBegin(&ResStatus::isOrphaned), pool.byStatusEnd(&ResStatus::isOrphaned) ) {...} Or use filter::ByStatus in more complex queries: // iterate over all (orphaned and recommended) items: functor::Chain<filter::ByStatus,filter::ByStatus> myfilter( filter::ByStatus(&ResStatus::isOrphaned), filter::ByStatus(&ResStatus::isRecommended) ); for_( it, pool.filterBegin(myfilter), pool.filterEnd(myfilter) ) { ... } | |
filter_iterator < filter::ByStatus, const_iterator > | byStatusBegin (const filter::ByStatus &filter_r) const |
filter_iterator < filter::ByStatus, const_iterator > | byStatusEnd (const filter::ByStatus &filter_r) const |
Iterate over all Repositories that contribute ResObjects. | |
size_type | knownRepositoriesSize () const |
repository_iterator | knownRepositoriesBegin () const |
repository_iterator | knownRepositoriesEnd () const |
Repository | reposFind (const std::string &alias_r) const |
Find a Repository named alias_r . | |
Handle locale support. | |
A filter::ByLocaleSupport is provided to iterate over all items supporting a specific locale.
ResPool pool( ResPool::instance() ); filter::ByLocaleSupport f( Locale("de") ); for_( it, pool.filterBegin(f), pool.filterEnd(f) ) { MIL << *it << endl; // supporting "de" } f = filter::ByLocaleSupport( pool.getRequestedLocales() ); for_( it, pool.filterBegin(f), pool.filterEnd(f) ) { MIL << *it << endl; // supporting any requested locale } | |
void | setRequestedLocales (const LocaleSet &locales_r) |
Set the requested locales. | |
bool | addRequestedLocale (const Locale &locale_r) |
Add one Locale to the set of requested locales. | |
bool | eraseRequestedLocale (const Locale &locale_r) |
Erase one Locale from the set of requested locales. | |
const LocaleSet & | getRequestedLocales () const |
Return the requested locales. | |
bool | isRequestedLocale (const Locale &locale_r) const |
Wheter this Locale is in the set of requested locales. | |
const LocaleSet & | getAvailableLocales () const |
Get the set of available locales. | |
bool | isAvailableLocale (const Locale &locale_r) const |
Wheter this Locale is in the set of available locales. | |
Static Public Member Functions | |
static ResPool | instance () |
Singleton ctor. | |
Private Member Functions | |
const pool::PoolTraits::ItemContainerT & | store () const |
const pool::PoolTraits::Id2ItemT & | id2item () const |
ResPool (pool::PoolTraits::Impl_Ptr impl_r) | |
Ctor. | |
Private Attributes | |
RW_pointer < pool::PoolTraits::Impl > | _pimpl |
Access to implementation. | |
Friends | |
std::ostream & | operator<< (std::ostream &str, const ResPool &obj) |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &str, const ResPool &obj) |
Iterate over all PoolItems of a certain name and kind. | |
typedef pool::ByIdent | ByIdent |
typedef pool::PoolTraits::byIdent_iterator | byIdent_iterator |
byIdent_iterator | byIdentBegin (const ByIdent &ident_r) const |
byIdent_iterator | byIdentBegin (ResKind kind_r, IdString name_r) const |
byIdent_iterator | byIdentBegin (ResKind kind_r, const C_Str &name_r) const |
template<class _Res > | |
byIdent_iterator | byIdentBegin (IdString name_r) const |
template<class _Res > | |
byIdent_iterator | byIdentBegin (const C_Str &name_r) const |
byIdent_iterator | byIdentBegin (const PoolItem &pi_r) const |
Derive name and kind from PoolItem. | |
byIdent_iterator | byIdentBegin (sat::Solvable slv_r) const |
Derive name and kind from sat::Solvable. | |
byIdent_iterator | byIdentBegin (IdString ident_r) const |
Takes a sat::Solvable::ident string. | |
byIdent_iterator | byIdentEnd (const ByIdent &ident_r) const |
byIdent_iterator | byIdentEnd (ResKind kind_r, IdString name_r) const |
byIdent_iterator | byIdentEnd (ResKind kind_r, const C_Str &name_r) const |
template<class _Res > | |
byIdent_iterator | byIdentEnd (IdString name_r) const |
template<class _Res > | |
byIdent_iterator | byIdentEnd (const C_Str &name_r) const |
byIdent_iterator | byIdentEnd (const PoolItem &pi_r) const |
Derive name and kind from PoolItem. | |
byIdent_iterator | byIdentEnd (sat::Solvable slv_r) const |
Derive name and kind from sat::Solvable. | |
byIdent_iterator | byIdentEnd (IdString ident_r) const |
Takes a sat::Solvable::ident string. | |
Iterate over all ResObjects of a certain kind. | |
typedef filter::ByKind | ByKind |
typedef filter_iterator < ByKind, const_iterator > | byKind_iterator |
byKind_iterator | byKindBegin (const ResKind &kind_r) const |
template<class _Res > | |
byKind_iterator | byKindBegin () const |
byKind_iterator | byKindEnd (const ResKind &kind_r) const |
template<class _Res > | |
byKind_iterator | byKindEnd () const |
Iterate over all ResObjects with a certain name (all kinds). | |
typedef zypp::resfilter::ByName | ByName |
typedef filter_iterator < ByName, const_iterator > | byName_iterator |
byName_iterator | byNameBegin (const std::string &name_r) const |
byName_iterator | byNameEnd (const std::string &name_r) const |
Handle automatic soft-locks. | |
Solvables with and ident listed here are per default created with a setSoftLock applied. I.e. the Resolver should not automatically select them, if they are just recommended. This list is considered when adding new repos to the pool. It is not the list of currently softLocked items. Mainly used to re-apply soft-locks remembered during the last commit. | |
typedef pool::PoolTraits::AutoSoftLocks | AutoSoftLocks |
typedef pool::PoolTraits::autoSoftLocks_iterator | autoSoftLocks_iterator |
bool | autoSoftLocksEmpty () const |
size_type | autoSoftLocksSize () const |
autoSoftLocks_iterator | autoSoftLocksBegin () const |
autoSoftLocks_iterator | autoSoftLocksEnd () const |
void | setAutoSoftLocks (const AutoSoftLocks &newLocks_r) |
Set a new soft-lock list. | |
void | getActiveSoftLocks (AutoSoftLocks &activeLocks_r) |
Suggest a new soft-lock list based on the current selection. | |
Handle hard locks (e.g set from /etc/zypp/locks). | |
As this kind of lock is query based, it's quite expensive. These queries are re-evaluated when adding new repos to the pool. | |
typedef pool::PoolTraits::HardLockQueries | HardLockQueries |
typedef pool::PoolTraits::hardLockQueries_iterator | hardLockQueries_iterator |
bool | hardLockQueriesEmpty () const |
size_type | hardLockQueriesSize () const |
hardLockQueries_iterator | hardLockQueriesBegin () const |
hardLockQueries_iterator | hardLockQueriesEnd () const |
void | setHardLockQueries (const HardLockQueries &newLocks_r) |
Set a new set of queries. | |
void | getHardLockQueries (HardLockQueries &activeLocks_r) |
Suggest a new set of queries based on the current selection. |
Global ResObject pool.
Explicitly shared singleton.
I tagged the byName iterator as deprecated, so the compiler tells you where it is used. Please review the code and check whether byIdent is an appropriate replacement. -- The 'old' zypp pool internally maintained a byName index, so it was a fast way to iterate the pool by name and filter by kind to visit e.g. all packages named foo: invokeOnEach( pool.byNameBegin( name ), pool.byNameEnd( name ), resfilter::ByKind( kind ), action() ); for_( it, pool.byNameBegin( name ), pool.byNameEnd( name ) ) { if ( (*it)->kind() == kind ) { ... } } This is no longer true. In contrary, byName now is a 'quite expensive' iteration. It's faster to rewrite these loops using byIdent (and no filter): invokeOnEach( pool.byIdentBegin( kind, name ), pool.byIdentEnd( kind, name ), action() ); for_( it, pool.byIdentBegin( kind, name ), pool.byNameEnd( kind, name ) ) { ... } How to construct the byIdent iterator: ResPool::byIdentBegin( poolItem ) // using this poolItems kind and name ResPool::byIdentBegin( kind, name ) // explicit kind and name ResPool::byIdentBegin<Package>( name ) // or templated kind -- If you prefer using iterator in a for' loop, but dislike to figure out the exact type of the iterator, you may find the 'for_' macro convenient: #include "zypp/base/Easy.h" for_( it, pool.byIdentBegin( kind, name ), pool.byIdentEnd( kind, name ) ) { PoolItem copy = *it; } instead of: for ( ResPool::byIdent_iterator it = pool.byIdentBegin( kind, name ), end = pool.byIdentEnd( kind, name ); it != end, ++it ) { PoolItem copy = *it; }
typedef PoolItem zypp::ResPool::value_type |
typedef pool::ByIdent zypp::ResPool::ByIdent |
typedef filter::ByKind zypp::ResPool::ByKind |
typedef filter_iterator<ByKind,const_iterator> zypp::ResPool::byKind_iterator |
typedef filter_iterator<ByName,const_iterator> zypp::ResPool::byName_iterator |
zypp::ResPool::ResPool | ( | pool::PoolTraits::Impl_Ptr | impl_r | ) | [private] |
Ctor.
Definition at line 44 of file ResPool.cc.
ResPool zypp::ResPool::instance | ( | ) | [static] |
Singleton ctor.
Definition at line 33 of file ResPool.cc.
ResPoolProxy zypp::ResPool::proxy | ( | ) | const |
preliminary
Definition at line 54 of file ResPool.cc.
Resolver & zypp::ResPool::resolver | ( | ) | const |
The Resolver.
Definition at line 57 of file ResPool.cc.
const SerialNumber & zypp::ResPool::serial | ( | ) | const |
The pools serial number.
Changing whenever the whenever the content changes. (Resolvables or Dependencies).
Definition at line 60 of file ResPool.cc.
bool zypp::ResPool::empty | ( | ) | const |
Definition at line 63 of file ResPool.cc.
ResPool::size_type zypp::ResPool::size | ( | ) | const |
Definition at line 66 of file ResPool.cc.
const_iterator zypp::ResPool::begin | ( | ) | const [inline] |
const_iterator zypp::ResPool::end | ( | ) | const [inline] |
PoolItem zypp::ResPool::find | ( | const sat::Solvable & | slv_r | ) | const |
Return the corresponding PoolItem.
Pool and sat pool should be in sync. Returns an empty PoolItem if there is no corresponding PoolItem.
Definition at line 70 of file ResPool.cc.
PoolItem zypp::ResPool::find | ( | const ResObject::constPtr & | resolvable_r | ) | const [inline] |
filter_iterator<_Filter,const_iterator> zypp::ResPool::filterBegin | ( | const _Filter & | filter_r | ) | const [inline] |
filter_iterator<_Filter,const_iterator> zypp::ResPool::filterEnd | ( | const _Filter & | filter_r | ) | const [inline] |
filter_iterator<filter::ByStatus,const_iterator> zypp::ResPool::byStatusBegin | ( | const filter::ByStatus & | filter_r | ) | const [inline] |
filter_iterator<filter::ByStatus,const_iterator> zypp::ResPool::byStatusEnd | ( | const filter::ByStatus & | filter_r | ) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentBegin | ( | const ByIdent & | ident_r | ) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentBegin | ( | ResKind | kind_r, |
IdString | name_r | ||
) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentBegin | ( | ResKind | kind_r, |
const C_Str & | name_r | ||
) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentBegin | ( | IdString | name_r | ) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentBegin | ( | const C_Str & | name_r | ) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentBegin | ( | const PoolItem & | pi_r | ) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentBegin | ( | sat::Solvable | slv_r | ) | const [inline] |
Derive name and kind from sat::Solvable.
byIdent_iterator zypp::ResPool::byIdentBegin | ( | IdString | ident_r | ) | const [inline] |
Takes a sat::Solvable::ident string.
byIdent_iterator zypp::ResPool::byIdentEnd | ( | const ByIdent & | ident_r | ) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentEnd | ( | ResKind | kind_r, |
IdString | name_r | ||
) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentEnd | ( | ResKind | kind_r, |
const C_Str & | name_r | ||
) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentEnd | ( | IdString | name_r | ) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentEnd | ( | const C_Str & | name_r | ) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentEnd | ( | const PoolItem & | pi_r | ) | const [inline] |
byIdent_iterator zypp::ResPool::byIdentEnd | ( | sat::Solvable | slv_r | ) | const [inline] |
Derive name and kind from sat::Solvable.
byIdent_iterator zypp::ResPool::byIdentEnd | ( | IdString | ident_r | ) | const [inline] |
Takes a sat::Solvable::ident string.
byKind_iterator zypp::ResPool::byKindBegin | ( | const ResKind & | kind_r | ) | const [inline] |
byKind_iterator zypp::ResPool::byKindBegin | ( | ) | const [inline] |
byKind_iterator zypp::ResPool::byKindEnd | ( | const ResKind & | kind_r | ) | const [inline] |
byKind_iterator zypp::ResPool::byKindEnd | ( | ) | const [inline] |
byName_iterator zypp::ResPool::byNameBegin | ( | const std::string & | name_r | ) | const [inline] |
byName_iterator zypp::ResPool::byNameEnd | ( | const std::string & | name_r | ) | const [inline] |
ResPool::size_type zypp::ResPool::knownRepositoriesSize | ( | ) | const |
Definition at line 74 of file ResPool.cc.
ResPool::repository_iterator zypp::ResPool::knownRepositoriesBegin | ( | ) | const |
Definition at line 77 of file ResPool.cc.
ResPool::repository_iterator zypp::ResPool::knownRepositoriesEnd | ( | ) | const |
Definition at line 80 of file ResPool.cc.
Repository zypp::ResPool::reposFind | ( | const std::string & | alias_r | ) | const |
Find a Repository named alias_r
.
Returns Repository::norepository if there is no such Repository.
Definition at line 83 of file ResPool.cc.
void zypp::ResPool::setRequestedLocales | ( | const LocaleSet & | locales_r | ) |
Set the requested locales.
Languages to be supported by the system, e.g. language specific packages to be installed.
Definition at line 135 of file ResPool.cc.
bool zypp::ResPool::addRequestedLocale | ( | const Locale & | locale_r | ) |
Add one Locale to the set of requested locales.
Return true
if locale_r
was newly added to the set.
Definition at line 138 of file ResPool.cc.
bool zypp::ResPool::eraseRequestedLocale | ( | const Locale & | locale_r | ) |
Erase one Locale from the set of requested locales.
Return false
if locale_r
was not found in the set.
Definition at line 141 of file ResPool.cc.
const LocaleSet & zypp::ResPool::getRequestedLocales | ( | ) | const |
Return the requested locales.
Definition at line 144 of file ResPool.cc.
bool zypp::ResPool::isRequestedLocale | ( | const Locale & | locale_r | ) | const |
Wheter this Locale is in the set of requested locales.
Definition at line 147 of file ResPool.cc.
const LocaleSet & zypp::ResPool::getAvailableLocales | ( | ) | const |
Get the set of available locales.
This is computed from the package data so it actually represents all locales packages claim to support.
Definition at line 150 of file ResPool.cc.
bool zypp::ResPool::isAvailableLocale | ( | const Locale & | locale_r | ) | const |
Wheter this Locale is in the set of available locales.
Definition at line 153 of file ResPool.cc.
bool zypp::ResPool::autoSoftLocksEmpty | ( | ) | const |
Definition at line 86 of file ResPool.cc.
ResPool::size_type zypp::ResPool::autoSoftLocksSize | ( | ) | const |
Definition at line 89 of file ResPool.cc.
ResPool::autoSoftLocks_iterator zypp::ResPool::autoSoftLocksBegin | ( | ) | const |
Definition at line 92 of file ResPool.cc.
ResPool::autoSoftLocks_iterator zypp::ResPool::autoSoftLocksEnd | ( | ) | const |
Definition at line 95 of file ResPool.cc.
void zypp::ResPool::setAutoSoftLocks | ( | const AutoSoftLocks & | newLocks_r | ) |
Set a new soft-lock list.
The soft-locks of existing PoolItems are adjusted according to the list. (usually called on target load)
Definition at line 98 of file ResPool.cc.
void zypp::ResPool::getActiveSoftLocks | ( | AutoSoftLocks & | activeLocks_r | ) |
Suggest a new soft-lock list based on the current selection.
Based on the the current soft-lock list. Items tagged to be installed are removed, and those tagged to be deleted are added. (usually remembered on commit).
Definition at line 101 of file ResPool.cc.
bool zypp::ResPool::hardLockQueriesEmpty | ( | ) | const |
Definition at line 105 of file ResPool.cc.
ResPool::size_type zypp::ResPool::hardLockQueriesSize | ( | ) | const |
Definition at line 108 of file ResPool.cc.
ResPool::hardLockQueries_iterator zypp::ResPool::hardLockQueriesBegin | ( | ) | const |
Definition at line 111 of file ResPool.cc.
ResPool::hardLockQueries_iterator zypp::ResPool::hardLockQueriesEnd | ( | ) | const |
Definition at line 114 of file ResPool.cc.
void zypp::ResPool::setHardLockQueries | ( | const HardLockQueries & | newLocks_r | ) |
Set a new set of queries.
The hard-locks of existing PoolItems are adjusted according to the queries. (usually called on target load)
Definition at line 117 of file ResPool.cc.
void zypp::ResPool::getHardLockQueries | ( | HardLockQueries & | activeLocks_r | ) |
Suggest a new set of queries based on the current selection.
(usually remembered on commit).
Definition at line 120 of file ResPool.cc.
const pool::PoolTraits::ItemContainerT & zypp::ResPool::store | ( | ) | const [private] |
Definition at line 124 of file ResPool.cc.
const pool::PoolTraits::Id2ItemT & zypp::ResPool::id2item | ( | ) | const [private] |
Definition at line 127 of file ResPool.cc.
std::ostream& operator<< | ( | std::ostream & | str, |
const ResPool & | obj | ||
) | [friend] |
Definition at line 161 of file ResPool.cc.
std::ostream & operator<< | ( | std::ostream & | str, |
const ResPool & | obj | ||
) | [related] |
Stream output
Definition at line 161 of file ResPool.cc.