libzypp 17.31.23
zypp::sat::LookupAttr Class Reference

Lightweight attribute value lookup. More...

#include <sat/LookupAttr.h>

Inheritance diagram for zypp::sat::LookupAttr:

Classes

class  Impl
 LookupAttr implememtation. More...
 
class  iterator
 Result iterator. More...
 
class  TransformIterator
 TransformIterator returning an iterator vaue of type TResult. More...
 

Public Types

enum  Location { SOLV_ATTR = 0 , REPO_ATTR = -1 }
 Specify the where to look for the attribule. More...
 
typedef MatchException Exception
 
typedef unsigned size_type
 

Public Member Functions

 LookupAttr ()
 Default ctor finds nothing.
 
 LookupAttr (SolvAttr attr_r, Location=SOLV_ATTR)
 Lookup SolvAttr in Pool (all repositories).
 
 LookupAttr (SolvAttr attr_r, SolvAttr parent_r, Location=SOLV_ATTR)
 
 LookupAttr (SolvAttr attr_r, Repository repo_r, Location=SOLV_ATTR)
 Lookup SolvAttr in oneRepository.
 
 LookupAttr (SolvAttr attr_r, SolvAttr parent_r, Repository repo_r, Location=SOLV_ATTR)
 
 LookupAttr (SolvAttr attr_r, Solvable solv_r)
 Lookup SolvAttr in one Solvable.
 
 LookupAttr (SolvAttr attr_r, SolvAttr parent_r, Solvable solv_r)
 
Search result.
iterator begin () const
 Iterator to the begin of query results.
 
iterator end () const
 Iterator behind the end of query results.
 
bool empty () const
 Whether the query is empty.
 
size_type size () const
 Ammount of results.
 
What to search.
SolvAttr attr () const
 The SolvAttr to search.
 
void setAttr (SolvAttr attr_r)
 Set the SolvAttr to search.
 
Restrict attributes to match a pattern.
const StrMatcherstrMatcher () const
 The pattern to match.
 
void setStrMatcher (const StrMatcher &matcher_r)
 Set the pattern to match.
 
void resetStrMatcher ()
 Reset the pattern to match.
 

Related Functions

(Note that these are not member functions.)

std::ostream & operator<< (std::ostream &str, const LookupAttr &obj)
 Stream output.
 
std::ostream & dumpOn (std::ostream &str, const LookupAttr &obj)
 Verbose stream output including the query result.
 

Where to search.

RWCOW_pointer< Impl_pimpl
 
bool pool () const
 Whether to search in Pool.
 
void setPool (Location=SOLV_ATTR)
 Set search in Pool (all repositories).
 
Repository repo () const
 Whether to search in one Repository.
 
void setRepo (Repository repo_r, Location=SOLV_ATTR)
 Set search in one Repository.
 
Solvable solvable () const
 Whether to search in one Solvable.
 
void setSolvable (Solvable solv_r)
 Set search in one Solvable.
 
SolvAttr parent () const
 Whether to search within a sub-structure (SolvAttr::noAttr if not)
 
void setParent (SolvAttr attr_r)
 Set search within a sub-structure (SolvAttr::noAttr for none)
 

Detailed Description

Lightweight attribute value lookup.

Search for an attribute in Pool, one Repository or one Solvable. LookupAttr builds the query, LookupAttr::iterator iterates over the result.

Per default LookupAttr looks for attributes associated with a Solvable. But you may also pass REPO_ATTR as Location argument, to lookup attributes associated with the Repository (e.g. DeltaRpm information).

For convenience

See also
LookupRepoAttr.

Modifying the query will not affect any running iterator.

Use SolvAttr::allAttr to search all attributes.

To search for attributes located in a sub-structure (flexarray) you also have to pass the sub-structures attribute as parent. Passing SolvAttr::allAttr a parent will lookup the attribute in any sub-structure. Few attributes are known to have a parent (

See also
SolvAttr::parent). Setting those attributes will automatically initialize their parent value.
// Lookup all 'name' attributes:
// Lookup all 'name' attributes within a sub-structure 'data':
sat::LookupAttr q( sat::SolvAttr::name, sat::SolvAttr::data );
// Lookup all 'name' attributes within any sub-structure:
Lightweight attribute value lookup.
Definition: LookupAttr.h:108
static const SolvAttr name
Definition: SolvAttr.h:52
static const SolvAttr allAttr
Value to request searching all Attributes (0).
Definition: SolvAttr.h:46
// look for all attributes of one solvable
void ditest( sat::Solvable slv_r )
{
MIL << q << ": " << endl;
for_( it, q.begin(), q.end() )
{
MIL << " " << it.inSolvAttr() << " = " << it.asString() << endl;
}
}
A Solvable object within the sat Pool.
Definition: Solvable.h:54
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Definition: Easy.h:28
#define MIL
Definition: Logger.h:96
// look for an attribute in the pool.
sat::LookupAttr q( sat::SolvAttr("susetags:datadir") );
MIL << q << ": " << endl;
for_( it, q.begin(), q.end() )
{
MIL << " " << it << endl;
}
Solvable attribute keys.
Definition: SolvAttr.h:41
// look for a repo attribute in the pool.
MIL << q << ": " << endl;
for_( it, q.begin(), q.end() )
{
MIL << " " << it << endl;
}
Lightweight repository attribute value lookup.
Definition: LookupAttr.h:258
static const SolvAttr repositoryAddedFileProvides
Definition: SolvAttr.h:170

Definition at line 107 of file LookupAttr.h.

Member Typedef Documentation

◆ Exception

Definition at line 110 of file LookupAttr.h.

◆ size_type

Definition at line 113 of file LookupAttr.h.

Member Enumeration Documentation

◆ Location

Specify the where to look for the attribule.

Enumerator
SOLV_ATTR 

Search for solvable attributes (default)

REPO_ATTR 

Search for repository attributes.

Definition at line 116 of file LookupAttr.h.

Constructor & Destructor Documentation

◆ LookupAttr() [1/7]

zypp::sat::LookupAttr::LookupAttr ( )

Default ctor finds nothing.

Definition at line 168 of file LookupAttr.cc.

◆ LookupAttr() [2/7]

zypp::sat::LookupAttr::LookupAttr ( SolvAttr  attr_r,
Location  loc_r = SOLV_ATTR 
)
explicit

Lookup SolvAttr in Pool (all repositories).

Definition at line 172 of file LookupAttr.cc.

◆ LookupAttr() [3/7]

zypp::sat::LookupAttr::LookupAttr ( SolvAttr  attr_r,
SolvAttr  parent_r,
Location  loc_r = SOLV_ATTR 
)

Definition at line 175 of file LookupAttr.cc.

◆ LookupAttr() [4/7]

zypp::sat::LookupAttr::LookupAttr ( SolvAttr  attr_r,
Repository  repo_r,
Location  loc_r = SOLV_ATTR 
)

Lookup SolvAttr in oneRepository.

Definition at line 179 of file LookupAttr.cc.

◆ LookupAttr() [5/7]

zypp::sat::LookupAttr::LookupAttr ( SolvAttr  attr_r,
SolvAttr  parent_r,
Repository  repo_r,
Location  loc_r = SOLV_ATTR 
)

Definition at line 182 of file LookupAttr.cc.

◆ LookupAttr() [6/7]

zypp::sat::LookupAttr::LookupAttr ( SolvAttr  attr_r,
Solvable  solv_r 
)

Lookup SolvAttr in one Solvable.

Definition at line 186 of file LookupAttr.cc.

◆ LookupAttr() [7/7]

zypp::sat::LookupAttr::LookupAttr ( SolvAttr  attr_r,
SolvAttr  parent_r,
Solvable  solv_r 
)

Definition at line 189 of file LookupAttr.cc.

Member Function Documentation

◆ begin()

LookupAttr::iterator zypp::sat::LookupAttr::begin ( ) const

Iterator to the begin of query results.

Definition at line 236 of file LookupAttr.cc.

◆ end()

LookupAttr::iterator zypp::sat::LookupAttr::end ( ) const

Iterator behind the end of query results.

Definition at line 239 of file LookupAttr.cc.

◆ empty()

bool zypp::sat::LookupAttr::empty ( ) const

Whether the query is empty.

Definition at line 242 of file LookupAttr.cc.

◆ size()

LookupAttr::size_type zypp::sat::LookupAttr::size ( ) const

Ammount of results.

Note
This is not a cheap call. It runs the query.

Definition at line 245 of file LookupAttr.cc.

◆ attr()

SolvAttr zypp::sat::LookupAttr::attr ( ) const

The SolvAttr to search.

Definition at line 196 of file LookupAttr.cc.

◆ setAttr()

void zypp::sat::LookupAttr::setAttr ( SolvAttr  attr_r)

Set the SolvAttr to search.

Definition at line 199 of file LookupAttr.cc.

◆ strMatcher()

const StrMatcher & zypp::sat::LookupAttr::strMatcher ( ) const

The pattern to match.

You can also evaluate StrMatcher in a boolean context, in order to test whether an StrMatcher is set:

if ( q.strMatcher() )
...; // an StrMatcher is set
const StrMatcher & strMatcher() const
The pattern to match.
Definition: LookupAttr.cc:202

Definition at line 202 of file LookupAttr.cc.

◆ setStrMatcher()

void zypp::sat::LookupAttr::setStrMatcher ( const StrMatcher matcher_r)

Set the pattern to match.

Exceptions
MatchExceptionAny of the exceptions thrown by StrMatcher::compile.

Definition at line 205 of file LookupAttr.cc.

◆ resetStrMatcher()

void zypp::sat::LookupAttr::resetStrMatcher ( )

Reset the pattern to match.

◆ pool()

bool zypp::sat::LookupAttr::pool ( ) const

Whether to search in Pool.

Definition at line 210 of file LookupAttr.cc.

◆ setPool()

void zypp::sat::LookupAttr::setPool ( Location  loc_r = SOLV_ATTR)

Set search in Pool (all repositories).

Definition at line 213 of file LookupAttr.cc.

◆ repo()

Repository zypp::sat::LookupAttr::repo ( ) const

Whether to search in one Repository.

Definition at line 216 of file LookupAttr.cc.

◆ setRepo()

void zypp::sat::LookupAttr::setRepo ( Repository  repo_r,
Location  loc_r = SOLV_ATTR 
)

Set search in one Repository.

Definition at line 219 of file LookupAttr.cc.

◆ solvable()

Solvable zypp::sat::LookupAttr::solvable ( ) const

Whether to search in one Solvable.

Definition at line 222 of file LookupAttr.cc.

◆ setSolvable()

void zypp::sat::LookupAttr::setSolvable ( Solvable  solv_r)

Set search in one Solvable.

Definition at line 225 of file LookupAttr.cc.

◆ parent()

SolvAttr zypp::sat::LookupAttr::parent ( ) const

Whether to search within a sub-structure (SolvAttr::noAttr if not)

Definition at line 228 of file LookupAttr.cc.

◆ setParent()

void zypp::sat::LookupAttr::setParent ( SolvAttr  attr_r)

Set search within a sub-structure (SolvAttr::noAttr for none)

Definition at line 231 of file LookupAttr.cc.

Friends And Related Function Documentation

◆ operator<<()

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

Stream output.

Definition at line 255 of file LookupAttr.cc.

◆ dumpOn()

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

Verbose stream output including the query result.

Definition at line 272 of file LookupAttr.cc.

Member Data Documentation

◆ _pimpl

RWCOW_pointer<Impl> zypp::sat::LookupAttr::_pimpl
private

Definition at line 227 of file LookupAttr.h.


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