libzypp  17.1.1
zypp::PoolQueryResult Class Reference

Helper class to collect (not only) PoolQuery results. More...

#include <PoolQueryResult.h>

Inheritance diagram for zypp::PoolQueryResult:

Public Types

typedef std::unordered_set< sat::SolvableResultSet
 
typedef ResultSet::size_type size_type
 
typedef ResultSet::const_iterator const_iterator
 
- Public Types inherited from zypp::sat::SolvIterMixin< PoolQueryResult, std::unordered_set< sat::Solvable >::const_iterator >
typedef size_t size_type
 
typedef std::unordered_set< sat::Solvable >::const_iterator Solvable_iterator
 
typedef transform_iterator< asPoolItem, Solvable_iteratorPoolItem_iterator
 
typedef transform_iterator< ui::asSelectable, UnifiedSolvable_iteratorSelectable_iterator
 

Public Member Functions

 PoolQueryResult ()
 Default ctor (empty result) More...
 
 PoolQueryResult (sat::Solvable result_r)
 Ctor adding one sat::Solvable. More...
 
 PoolQueryResult (const PoolItem &result_r)
 Ctor adding one PoolItem. More...
 
 PoolQueryResult (const PoolQuery &query_r)
 Ctor adding one PoolQuery result. More...
 
template<class TQueryResultIter >
 PoolQueryResult (TQueryResultIter begin_r, TQueryResultIter end_r)
 Ctor adding a range of items for which operator+= is defined. More...
 
bool empty () const
 Whether the result is empty. More...
 
size_type size () const
 The number of sat::Solvables. More...
 
const_iterator begin () const
 
const_iterator end () const
 
bool contains (sat::Solvable result_r) const
 Test whether some item is in the result set. More...
 
bool contains (const PoolItem &result_r) const
 
void clear ()
 Clear the result. More...
 
PoolQueryResultoperator+= (const PoolQueryResult &query_r)
 Add items to the result. More...
 
PoolQueryResultoperator+= (const PoolQuery &query_r)
 
PoolQueryResultoperator+= (sat::Solvable result_r)
 
PoolQueryResultoperator+= (const PoolItem &result_r)
 
PoolQueryResultoperator-= (const PoolQueryResult &query_r)
 Remove Items from the result. More...
 
PoolQueryResultoperator-= (const PoolQuery &query_r)
 
PoolQueryResultoperator-= (sat::Solvable result_r)
 
PoolQueryResultoperator-= (const PoolItem &result_r)
 
PoolQueryResult operator+ (const PoolQueryResult &query_r) const
 Combine results. More...
 
PoolQueryResult operator+ (const PoolQuery &query_r) const
 
PoolQueryResult operator+ (sat::Solvable result_r) const
 
PoolQueryResult operator- (const PoolQueryResult &query_r) const
 Intersect results. More...
 
PoolQueryResult operator- (const PoolQuery &query_r) const
 
PoolQueryResult operator- (sat::Solvable result_r) const
 
- Public Member Functions inherited from zypp::sat::SolvIterMixin< PoolQueryResult, std::unordered_set< sat::Solvable >::const_iterator >
bool empty () const
 Whether the collection is epmty. More...
 
size_type size () const
 Size of the collection. More...
 
bool contains (const TSolv &solv_r) const
 Whether collection contains a specific Solvable. More...
 
Solvable_iterator solvableBegin () const
 
Solvable_iterator solvableEnd () const
 
Iterable< Solvable_iteratorsolvable () const
 
PoolItem_iterator poolItemBegin () const
 
PoolItem_iterator poolItemEnd () const
 
Iterable< PoolItem_iteratorpoolItem () const
 
Selectable_iterator selectableBegin () const
 
Selectable_iterator selectableEnd () const
 
Iterable< Selectable_iteratorselectable () const
 

Private Attributes

ResultSet _result
 

Related Functions

(Note that these are not member functions.)

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

Additional Inherited Members

- Protected Member Functions inherited from zypp::sat::SolvIterMixin< PoolQueryResult, std::unordered_set< sat::Solvable >::const_iterator >
 SolvIterMixin ()
 
 SolvIterMixin (const SolvIterMixin &)
 
 ~SolvIterMixin ()
 
void operator= (const SolvIterMixin &)
 

Detailed Description

Helper class to collect (not only) PoolQuery results.

Note
Unfortunately PoolQuery::begin might throw. Exceptions are caught and the query is treated as empty.

PoolQueryResult maintains a set of sat::Solvable. You can add/remove solvables to/from the set defined by:

The class is a sat::SolvIterMixin, so you can iterate the result not just as sat::Solvable, but also as PoolItem or ui::Selectable.

// Constructed from PoolItem iterator pair
PoolQueryResult result( pool.byKindBegin<Package>(), pool.byKindEnd<Package>() );
MIL << result.size() << endl;
{
// Removing a PoolQuery result
PoolQuery q;
q.addAttribute( sat::SolvAttr::name, "[a-zA-Z]*" );
q.setMatchGlob();
result -= q;
MIL << result.size() << endl;
}
MIL << result << endl;
// Removing a range of sat::Solvables
sat::WhatProvides poviders( Capability("3ddiag") );
result -= PoolQueryResult( poviders.begin(), poviders.end() );
// packages not starting with a letter, except 3ddiag
MIL << result << endl;

Definition at line 75 of file PoolQueryResult.h.

Member Typedef Documentation

◆ ResultSet

typedef std::unordered_set<sat::Solvable> zypp::PoolQueryResult::ResultSet

Definition at line 78 of file PoolQueryResult.h.

◆ size_type

typedef ResultSet::size_type zypp::PoolQueryResult::size_type

Definition at line 79 of file PoolQueryResult.h.

◆ const_iterator

typedef ResultSet::const_iterator zypp::PoolQueryResult::const_iterator

Definition at line 80 of file PoolQueryResult.h.

Constructor & Destructor Documentation

◆ PoolQueryResult() [1/5]

zypp::PoolQueryResult::PoolQueryResult ( )
inline

Default ctor (empty result)

Definition at line 84 of file PoolQueryResult.h.

◆ PoolQueryResult() [2/5]

zypp::PoolQueryResult::PoolQueryResult ( sat::Solvable  result_r)
inlineexplicit

Ctor adding one sat::Solvable.

Definition at line 88 of file PoolQueryResult.h.

◆ PoolQueryResult() [3/5]

zypp::PoolQueryResult::PoolQueryResult ( const PoolItem result_r)
inlineexplicit

Ctor adding one PoolItem.

Definition at line 92 of file PoolQueryResult.h.

◆ PoolQueryResult() [4/5]

zypp::PoolQueryResult::PoolQueryResult ( const PoolQuery query_r)
inlineexplicit

Ctor adding one PoolQuery result.

Definition at line 96 of file PoolQueryResult.h.

◆ PoolQueryResult() [5/5]

template<class TQueryResultIter >
zypp::PoolQueryResult::PoolQueryResult ( TQueryResultIter  begin_r,
TQueryResultIter  end_r 
)
inline

Ctor adding a range of items for which operator+= is defined.

Definition at line 101 of file PoolQueryResult.h.

Member Function Documentation

◆ empty()

bool zypp::PoolQueryResult::empty ( ) const
inline

Whether the result is empty.

Definition at line 111 of file PoolQueryResult.h.

◆ size()

size_type zypp::PoolQueryResult::size ( ) const
inline

The number of sat::Solvables.

Definition at line 114 of file PoolQueryResult.h.

◆ begin()

const_iterator zypp::PoolQueryResult::begin ( ) const
inline

Definition at line 117 of file PoolQueryResult.h.

◆ end()

const_iterator zypp::PoolQueryResult::end ( ) const
inline

Definition at line 120 of file PoolQueryResult.h.

◆ contains() [1/2]

bool zypp::PoolQueryResult::contains ( sat::Solvable  result_r) const
inline

Test whether some item is in the result set.

Definition at line 124 of file PoolQueryResult.h.

◆ contains() [2/2]

bool zypp::PoolQueryResult::contains ( const PoolItem result_r) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 127 of file PoolQueryResult.h.

◆ clear()

void zypp::PoolQueryResult::clear ( )
inline

Clear the result.

Definition at line 132 of file PoolQueryResult.h.

◆ operator+=() [1/4]

PoolQueryResult& zypp::PoolQueryResult::operator+= ( const PoolQueryResult query_r)
inline

Add items to the result.

Definition at line 136 of file PoolQueryResult.h.

◆ operator+=() [2/4]

PoolQueryResult& zypp::PoolQueryResult::operator+= ( const PoolQuery query_r)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 143 of file PoolQueryResult.h.

◆ operator+=() [3/4]

PoolQueryResult& zypp::PoolQueryResult::operator+= ( sat::Solvable  result_r)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 155 of file PoolQueryResult.h.

◆ operator+=() [4/4]

PoolQueryResult& zypp::PoolQueryResult::operator+= ( const PoolItem result_r)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 161 of file PoolQueryResult.h.

◆ operator-=() [1/4]

PoolQueryResult& zypp::PoolQueryResult::operator-= ( const PoolQueryResult query_r)
inline

Remove Items from the result.

Definition at line 168 of file PoolQueryResult.h.

◆ operator-=() [2/4]

PoolQueryResult& zypp::PoolQueryResult::operator-= ( const PoolQuery query_r)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 178 of file PoolQueryResult.h.

◆ operator-=() [3/4]

PoolQueryResult& zypp::PoolQueryResult::operator-= ( sat::Solvable  result_r)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 190 of file PoolQueryResult.h.

◆ operator-=() [4/4]

PoolQueryResult& zypp::PoolQueryResult::operator-= ( const PoolItem result_r)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 196 of file PoolQueryResult.h.

◆ operator+() [1/3]

PoolQueryResult zypp::PoolQueryResult::operator+ ( const PoolQueryResult query_r) const
inline

Combine results.

Definition at line 204 of file PoolQueryResult.h.

◆ operator+() [2/3]

PoolQueryResult zypp::PoolQueryResult::operator+ ( const PoolQuery query_r) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 207 of file PoolQueryResult.h.

◆ operator+() [3/3]

PoolQueryResult zypp::PoolQueryResult::operator+ ( sat::Solvable  result_r) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 210 of file PoolQueryResult.h.

◆ operator-() [1/3]

PoolQueryResult zypp::PoolQueryResult::operator- ( const PoolQueryResult query_r) const
inline

Intersect results.

Definition at line 214 of file PoolQueryResult.h.

◆ operator-() [2/3]

PoolQueryResult zypp::PoolQueryResult::operator- ( const PoolQuery query_r) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 217 of file PoolQueryResult.h.

◆ operator-() [3/3]

PoolQueryResult zypp::PoolQueryResult::operator- ( sat::Solvable  result_r) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 220 of file PoolQueryResult.h.

Friends And Related Function Documentation

◆ operator<<()

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

Stream output

Definition at line 28 of file PoolQueryResult.cc.

Member Data Documentation

◆ _result

ResultSet zypp::PoolQueryResult::_result
private

Definition at line 224 of file PoolQueryResult.h.


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