libzypp 17.37.17
zypp::detail::PoolQueryIterator Class Reference

PoolQuery iterator as returned by PoolQuery::begin. More...

#include <zypp/PoolQuery.h>

Inheritance diagram for zypp::detail::PoolQueryIterator:

Public Types

using size_type = Matches::size_type
using matches_iterator = Matches::const_iterator

Public Member Functions

 PoolQueryIterator ()
 Default ctor is also end.
 PoolQueryIterator (const shared_ptr< PoolQueryMatcher > &matcher_r)
 \Ref PoolQuery ctor.

Private Types

using Matches = std::vector<sat::LookupAttr::iterator>

(Note that these are not member symbols.)

std::ostream & operator<< (std::ostream &str, const PoolQueryIterator &obj)
 Stream output.
std::ostream & dumpOn (std::ostream &str, const PoolQueryIterator &obj) ZYPP_API
 Detailed stream output.

Detailed inspection of attribute matches within the current Solvable.

The matches_iterator visits all attribute matches within the current Solvable, providing a sat::LookupAttr::iterator pointing to attribute.

While a matches_iterator itself becomes invalid if the PoolQueryIterator is advanced, the sat::LookupAttr::iterator it pointed to stays valid, even after the query ended.

// Setup query for "libzypp" in name or requires:
q.addString( "libzypp" );
q.setCaseSensitive( false );
q.addDependency( sat::SolvAttr::requires );
// Iterate the result:
for_( solvIter, q.begin(), q.end() )
{
sat::Solvable solvable( *solvIter );
cout << "Found matches in " << solvable << endl;
if ( verbose )
for_( attrIter, solvIter.matchesBegin(), solvIter.matchesEnd() )
{
sat::LookupAttr::iterator attr( *attrIter );
cout << " " << attr.inSolvAttr() << "\t\"" << attr.asString() << "\"" << endl;
}
}
Found matches in PackageKit-0.3.11-1.12.i586(@System)
solvable:requires "libzypp.so.523"
Found matches in libqdialogsolver1-1.2.6-1.1.2.i586(@System)
solvable:requires "libzypp.so.523"
solvable:requires "libzypp >= 5.25.3-0.1.2"
Found matches in libzypp-5.30.3-0.1.1.i586(@System)
solvable:name "libzypp"
Found matches in libzypp-testsuite-tools-4.2.6-8.1.i586(@System)
solvable:name "libzypp-testsuite-tools"
solvable:requires "libzypp.so.523"
...
Meta-data query API.
Definition PoolQuery.h:91
void addString(const std::string &value)
Add a global query string.
Definition PoolQuery.cc:882
void setCaseSensitive(bool value=true)
Turn case sentitivity on or off (unsets or sets SEARCH_NOCASE flag).
void addAttribute(const sat::SolvAttr &attr, const std::string &value="")
Filter by the value of the specified attr attribute.
Definition PoolQuery.cc:885
const_iterator end() const
An iterator pointing to the end of the query result.
Definition PoolQuery.h:621
const_iterator begin() const
Query result accessers.
void addDependency(const sat::SolvAttr &attr, const std::string &name, const Rel &op, const Edition &edition)
Query "name|global op edition".
Definition PoolQuery.cc:888
void setMatchSubstring()
Set to substring (the default).
Definition PoolQuery.cc:963
const Matches & matches() const
static const SolvAttr name
Definition SolvAttr.h:52
A Solvable object within the sat Pool.
Definition Solvable.h:54
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Definition Easy.h:27
class boost::iterator_core_access
shared_ptr< PoolQueryMatcher_matcher
shared_ptr< Matches_matches
bool matchesEmpty () const
 False unless this is the end iterator.
size_type matchesSize () const
 Number of attribute matches.
matches_iterator matchesBegin () const
 Begin of matches.
matches_iterator matchesEnd () const
 End of matches.
sat::Solvable dereference () const
void increment ()
const Matchesmatches () const

Detailed Description

PoolQuery iterator as returned by PoolQuery::begin.

The PoolQueryIterator visits sat::Solavables that do contain matches.

But it also provides an iterator by itself, to allow a detailed inspection of the individual attribute matches within the current Solvable.

Definition at line 516 of file PoolQuery.h.

Member Typedef Documentation

◆ Matches

Definition at line 524 of file PoolQuery.h.

◆ size_type

using zypp::detail::PoolQueryIterator::size_type = Matches::size_type

Definition at line 526 of file PoolQuery.h.

◆ matches_iterator

using zypp::detail::PoolQueryIterator::matches_iterator = Matches::const_iterator

Definition at line 527 of file PoolQuery.h.

Constructor & Destructor Documentation

◆ PoolQueryIterator() [1/2]

zypp::detail::PoolQueryIterator::PoolQueryIterator ( )
inline

Default ctor is also end.

Definition at line 530 of file PoolQuery.h.

◆ PoolQueryIterator() [2/2]

zypp::detail::PoolQueryIterator::PoolQueryIterator ( const shared_ptr< PoolQueryMatcher > & matcher_r)
inline

\Ref PoolQuery ctor.

Definition at line 534 of file PoolQuery.h.

Member Function Documentation

◆ matchesEmpty()

bool zypp::detail::PoolQueryIterator::matchesEmpty ( ) const
inline

False unless this is the end iterator.

Definition at line 584 of file PoolQuery.h.

◆ matchesSize()

size_type zypp::detail::PoolQueryIterator::matchesSize ( ) const
inline

Number of attribute matches.

Definition at line 586 of file PoolQuery.h.

◆ matchesBegin()

matches_iterator zypp::detail::PoolQueryIterator::matchesBegin ( ) const
inline

Begin of matches.

Definition at line 588 of file PoolQuery.h.

◆ matchesEnd()

matches_iterator zypp::detail::PoolQueryIterator::matchesEnd ( ) const
inline

End of matches.

Definition at line 590 of file PoolQuery.h.

◆ dereference()

sat::Solvable zypp::detail::PoolQueryIterator::dereference ( ) const
inlineprivate

Definition at line 596 of file PoolQuery.h.

◆ increment()

void zypp::detail::PoolQueryIterator::increment ( )
private

Definition at line 1808 of file PoolQuery.cc.

◆ matches()

const PoolQueryIterator::Matches & zypp::detail::PoolQueryIterator::matches ( ) const
private

Definition at line 1821 of file PoolQuery.cc.

◆ boost::iterator_core_access

friend class boost::iterator_core_access
friend

Definition at line 594 of file PoolQuery.h.

◆ operator<<()

std::ostream & operator<< ( std::ostream & str,
const PoolQueryIterator & obj )
related

Stream output.

Definition at line 611 of file PoolQuery.h.

◆ dumpOn()

std::ostream & dumpOn ( std::ostream & str,
const PoolQueryIterator & obj )
related

Detailed stream output.

Definition at line 1838 of file PoolQuery.cc.

Member Data Documentation

◆ _matcher

shared_ptr<PoolQueryMatcher> zypp::detail::PoolQueryIterator::_matcher
private

Definition at line 605 of file PoolQuery.h.

◆ _matches

shared_ptr<Matches> zypp::detail::PoolQueryIterator::_matches
mutableprivate

Definition at line 606 of file PoolQuery.h.


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