zypp::detail::PoolQueryMatcher Class Reference

Store PoolQuery settings and assist PoolQueryIterator. More...

List of all members.

Public Types

typedef sat::LookupAttr::iterator base_iterator

Public Member Functions

const base_iteratorend () const
bool advance (base_iterator &base_r) const
void matchDetail (const base_iterator &base_r, std::vector< base_iterator > &return_r) const
 Provide all matching attributes within this solvable.
 PoolQueryMatcher (const shared_ptr< const PoolQuery::Impl > &query_r)
 Ctor stores the PoolQuery settings.
 ~PoolQueryMatcher ()

Private Member Functions

base_iterator startNewQyery () const
 Initialize a new base query.
bool isAMatch (base_iterator &base_r) const
 Check whether we are on a match.

Private Attributes

std::set< Repository_repos
 Repositories include in the search.
std::set< ResKind_kinds
 Resolvable kinds to include.
Rel _op
 Edition filter.
Edition _edition
int _status_flags
 Installed status filter flags.
AttrMatchList _attrMatchList
 AttrMatcher per attribtue.


Detailed Description

Store PoolQuery settings and assist PoolQueryIterator.

Basically the matcher performs a base query, which should preselect candidates for a match. And has some filter conditions on top of it. Query and fileter depend on the PoolQuery settings.

Matcher must be stateless, as it is shared between multiple PoolQueryIterator instances.

If base_iterator is at the end, advance moves it to the first match. Otherwise advance moves to the next match, or to the end, if there is no more match.

Note:
The original implementation treated an empty search string as <it>"match always"</it>. We stay compatible.

Definition at line 1370 of file PoolQuery.cc.


Member Typedef Documentation

Definition at line 1373 of file PoolQuery.cc.


Constructor & Destructor Documentation

zypp::detail::PoolQueryMatcher::PoolQueryMatcher ( const shared_ptr< const PoolQuery::Impl > &  query_r  )  [inline]

Ctor stores the PoolQuery settings.

Exceptions:
MatchException Any of the exceptions thrown by PoolQuery::Impl::compile.

Definition at line 1456 of file PoolQuery.cc.

References _attrMatchList, _edition, _kinds, zypp::Rel::_op, _op, _repos, _status_flags, for_, zypp::sat::Pool::instance(), and zypp::sat::Pool::reposFind().

zypp::detail::PoolQueryMatcher::~PoolQueryMatcher (  )  [inline]

Definition at line 1479 of file PoolQuery.cc.


Member Function Documentation

const base_iterator& zypp::detail::PoolQueryMatcher::end (  )  const [inline]

Definition at line 1376 of file PoolQuery.cc.

Referenced by advance(), and matchDetail().

bool zypp::detail::PoolQueryMatcher::advance ( base_iterator base_r  )  const [inline]

void zypp::detail::PoolQueryMatcher::matchDetail ( const base_iterator base_r,
std::vector< base_iterator > &  return_r 
) const [inline]

base_iterator zypp::detail::PoolQueryMatcher::startNewQyery (  )  const [inline, private]

bool zypp::detail::PoolQueryMatcher::isAMatch ( base_iterator base_r  )  const [inline, private]

Check whether we are on a match.

The check covers the whole Solvable, not just the current attribute base_r points to. If there's no match, also prepare base_r to advance appropriately. If there is a match, simply return true. advance always moves to the next Solvable if there was a match.

Note:
: Caller asserts we're not at end.

Definition at line 1521 of file PoolQuery.cc.

References _attrMatchList, _edition, _kinds, _op, _repos, _status_flags, zypp::Rel::ANY, zypp::sat::LookupAttr::begin(), zypp::compareByRel(), zypp::sat::LookupAttr::empty(), zypp::sat::LookupAttr::end(), for_, zypp::sat::LookupAttr::iterator::inRepo(), zypp::sat::LookupAttr::iterator::inSolvable(), zypp::PoolQuery::INSTALLED_ONLY, zypp::sat::LookupAttr::iterator::nextSkipRepo(), zypp::sat::LookupAttr::iterator::nextSkipSolvable(), predicate, and zypp::sat::LookupAttr::setAttrMatcher().

Referenced by advance().


Member Data Documentation

Repositories include in the search.

Definition at line 1597 of file PoolQuery.cc.

Referenced by isAMatch(), PoolQueryMatcher(), and startNewQyery().

Resolvable kinds to include.

Definition at line 1599 of file PoolQuery.cc.

Referenced by isAMatch(), and PoolQueryMatcher().

Edition filter.

Definition at line 1601 of file PoolQuery.cc.

Referenced by isAMatch(), and PoolQueryMatcher().

Definition at line 1602 of file PoolQuery.cc.

Referenced by isAMatch(), and PoolQueryMatcher().

Installed status filter flags.

See also:
PoolQuery::StatusFilter

Definition at line 1604 of file PoolQuery.cc.

Referenced by isAMatch(), and PoolQueryMatcher().

AttrMatcher per attribtue.

Definition at line 1606 of file PoolQuery.cc.

Referenced by isAMatch(), matchDetail(), PoolQueryMatcher(), and startNewQyery().


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

doxygen