libzypp: zypp::PoolQueryResult Class Reference

libzypp 17.25.10

Public Types | Public Member Functions | Private Attributes | Related Functions | List of all members
zypp::PoolQueryResult Class Reference

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

`#include <PoolQueryResult.h>`

Inheritance diagram for zypp::PoolQueryResult:
[legend]

## Public Types
typedef std::unordered_set< sat::Solvable > | ResultSet
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_iterator > | PoolItem_iterator
typedef transform_iterator< ui::asSelectable, UnifiedSolvable_iterator > | Selectable_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
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
void | clear ()
| Clear the result. More...
PoolQueryResult & | operator+= (const PoolQueryResult &query_r)
| Add items to the result. More...
PoolQueryResult & | operator+= (const PoolQuery &query_r)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
PoolQueryResult & | operator+= (sat::Solvable result_r)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
PoolQueryResult & | operator+= (const PoolItem &result_r)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
PoolQueryResult & | operator-= (const PoolQueryResult &query_r)
| Remove Items from the result. More...
PoolQueryResult & | operator-= (const PoolQuery &query_r)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
PoolQueryResult & | operator-= (sat::Solvable result_r)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
PoolQueryResult & | operator-= (const PoolItem &result_r)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
PoolQueryResult | operator+ (const PoolQueryResult &query_r) const
| Combine results. More...
PoolQueryResult | operator+ (const PoolQuery &query_r) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
PoolQueryResult | operator+ (sat::Solvable result_r) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
PoolQueryResult | operator- (const PoolQueryResult &query_r) const
| Intersect results. More...
PoolQueryResult | operator- (const PoolQuery &query_r) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
PoolQueryResult | operator- (sat::Solvable result_r) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
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_iterator > | solvable () const
PoolItem_iterator | poolItemBegin () const
PoolItem_iterator | poolItemEnd () const
Iterable< PoolItem_iterator > | poolItem () const
Selectable_iterator | selectableBegin () const
Selectable_iterator | selectableEnd () const
Iterable< Selectable_iterator > | selectable () const

## Private Attributes
ResultSet | _result

## Related Functions
(Note that these are not member functions.)
std::ostream & | operator<< (std::ostream &str, const PoolQueryResult &obj)
| Stream output. More...

## 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:

- a single sat::Solvable
- a single PoolItem
- a PoolQuery
- an other PoolQueryResult
- any iterator pair with `value_type` sat::Solvable or PoolItem or PoolQuery or any type that fits `operator+=`.

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;
MIL
#define MIL
Definition: Logger.h:91
zypp::PoolQueryResult::PoolQueryResult
PoolQueryResult()
Default ctor (empty result)
Definition: PoolQueryResult.h:84
zypp::sat::SolvAttr::name
static const SolvAttr name
Definition: SolvAttr.h:52

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:

- zypp/PoolQueryResult.h