libzypp  9.1.2
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | Related Functions
zypp::detail::PoolQueryIterator Class Reference

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

#include <PoolQuery.h>

Inheritance diagram for zypp::detail::PoolQueryIterator:
Inheritance graph
[legend]

List of all members.

Public Types

typedef Matches::size_type size_type
typedef Matches::const_iterator matches_iterator

Public Member Functions

 PoolQueryIterator ()
 Default ctor is also end.
 PoolQueryIterator (const shared_ptr< PoolQueryMatcher > &matcher_r)
 PoolQuery ctor.
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:
 PoolQuery q;
 q.addString( "libzypp" );
 q.setMatchSubstring();
 q.setCaseSensitive( false );
 q.addAttribute( sat::SolvAttr::name );
 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"
 ...
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.

Private Types

typedef std::vector
< sat::LookupAttr::iterator
Matches

Private Member Functions

sat::Solvable dereference () const
void increment ()
const Matchesmatches () const

Private Attributes

shared_ptr< PoolQueryMatcher_matcher
shared_ptr< Matches_matches

Friends

class boost::iterator_core_access

Related Functions

(Note that these are not member functions.)

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

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 511 of file PoolQuery.h.


Member Typedef Documentation

Definition at line 519 of file PoolQuery.h.

typedef Matches::size_type zypp::detail::PoolQueryIterator::size_type

Definition at line 521 of file PoolQuery.h.

typedef Matches::const_iterator zypp::detail::PoolQueryIterator::matches_iterator

Definition at line 522 of file PoolQuery.h.


Constructor & Destructor Documentation

Default ctor is also end.

Definition at line 525 of file PoolQuery.h.

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

PoolQuery ctor.

Definition at line 529 of file PoolQuery.h.

References increment().


Member Function Documentation

False unless this is the end iterator.

Definition at line 579 of file PoolQuery.h.

References _matcher.

Number of attribute matches.

Definition at line 581 of file PoolQuery.h.

References matches().

Begin of matches.

Definition at line 583 of file PoolQuery.h.

References matches().

End of matches.

Definition at line 585 of file PoolQuery.h.

References matches().

Definition at line 591 of file PoolQuery.h.

Definition at line 1677 of file PoolQuery.cc.

References _matcher, and _matches.

Referenced by PoolQueryIterator().

Definition at line 1690 of file PoolQuery.cc.

References _matcher, and _matches.

Referenced by matchesBegin(), matchesEnd(), and matchesSize().


Friends And Related Function Documentation

friend class boost::iterator_core_access [friend]

Definition at line 589 of file PoolQuery.h.

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

Stream output.

Definition at line 606 of file PoolQuery.h.

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

Detailed stream output.

Definition at line 1707 of file PoolQuery.cc.


Member Data Documentation

Definition at line 600 of file PoolQuery.h.

Referenced by increment(), matches(), and matchesEmpty().

shared_ptr<Matches> zypp::detail::PoolQueryIterator::_matches [mutable, private]

Definition at line 601 of file PoolQuery.h.

Referenced by increment(), and matches().


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