12 #ifndef ZYPP_SAT_LOOKUPATTR_H 13 #define ZYPP_SAT_LOOKUPATTR_H 17 #include <zypp/base/PtrTypes.h> 29 struct MatchException;
147 iterator
begin()
const;
150 iterator
end()
const;
161 template<
class TResult,
class TAttr = TResult>
301 const std::string & mstring_r = std::string(),
int flags_r = 0 );
304 const char * mstring_r,
int flags_r = 0 );
319 DIWrap( rhs ).swap( *
this );
323 {
DIWrap().swap( *
this ); }
352 , detail::CDataiterator *
354 , boost::forward_traversal_tag
502 const char *
c_str()
const;
528 template<
class Tp> Tp
asType()
const {
return Tp(
id()); }
553 template <
class OtherDerived,
class OtherIterator,
class V,
class C,
class R,
class D>
554 bool equal(
const boost::iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> & rhs )
const 556 return (
bool(base()) ==
bool(rhs.base()) )
557 && ( ! base() ||
dip_equal( *base(), *rhs.base() ) );
582 template<>
inline int LookupAttr::iterator::asType<int>()
const {
return asInt(); }
583 template<>
inline unsigned LookupAttr::iterator::asType<unsigned>()
const {
return asUnsigned(); }
584 template<>
inline unsigned long long LookupAttr::iterator::asType<unsigned long long>()
const {
return asUnsignedLL(); }
585 template<>
inline bool LookupAttr::iterator::asType<bool>()
const {
return asBool(); }
586 template<>
inline const char * LookupAttr::iterator::asType<const char *>()
const {
return c_str(); }
587 template<>
inline std::string LookupAttr::iterator::asType<std::string>()
const {
return asString(); }
588 template<>
inline IdString LookupAttr::iterator::asType<IdString>()
const {
return idStr(); }
589 template<>
CheckSum LookupAttr::iterator::asType<CheckSum>()
const;
591 template<
class TResult,
class TAttr>
607 {
return str << &obj; }
609 #endif // ZYPP_SAT_LOOKUPATTR_H void stayInThisRepo()
Stop after all matches in the current Repository are processed.
DIWrap()
NULL detail::CDataiterator
SolvAttr parent() const
Whether to search within a sub-structure (SolvAttr::noAttr if not)
void skipSolvAttr()
Immediately advance to the next SolvAttr.
int IdType
Generic Id type.
A Solvable object within the sat Pool.
bool subEmpty() const
Whether the sub-structure is empty.
IdString idStr() const
As IdStr.
void setPool(Location=SOLV_ATTR)
Set search in Pool (all repositories).
Solvable solvable() const
Whether to search in one Solvable.
iterator subEnd() const
Iterator behind the end of a sub-structure.
void setAttr(SolvAttr attr_r)
Set the SolvAttr to search.
std::string asString(const DefaultIntegral< Tp, TInitial > &obj)
detail::IdType solvAttrType() const
The current SolvAttr type.
String matching (STRING|SUBSTRING|GLOB|REGEX).
bool solvAttrCheckSum() const
Whether this is a CheckSum attribute.
const StrMatcher & strMatcher() const
The pattern to match.
bool solvAttrString() const
Whether this is a string attribute.
Lightweight attribute value lookup.
void resetStrMatcher()
Reset the pattern to match.
IdType id() const
Expert backdoor.
std::ostream & operator<<(std::ostream &str, const FileConflicts &obj)
void setParent(SolvAttr attr_r)
Set search within a sub-structure (SolvAttr::noAttr for none)
void setSolvable(Solvable solv_r)
Set search in one Solvable.
bool equal(const boost::iterator_adaptor< OtherDerived, OtherIterator, V, C, R, D > &rhs) const
String related utilities and Regular expression matching.
unsigned SolvableIdType
Id type to connect Solvable and sat-solvable.
detail::CDataiterator * get() const
void nextSkipSolvAttr()
On the next call to operator++ advance to the next SolvAttr.
CRepo * RepoIdType
Id type to connect Repo and sat-repo.
Access to the sat-pools string space.
RWCOW_pointer< Impl > _pimpl
Search for solvable attributes (default)
const std::string & getstr() const
detail::IdType dereference() const
LookupAttr::TransformIterator based container to retrieve list attributes.
Exceptions thrown from attribute matching.
void skipRepo()
Immediately advance to the next Repository.
bool dip_equal(const detail::CDataiterator &lhs, const detail::CDataiterator &rhs) const
LookupAttr()
Default ctor finds nothing.
LookupAttr implememtation.
void skipSolvable()
Immediately advance to the next Solvable.
void setRepo(Repository repo_r)
Set search in one Repository.
iterator & operator=(const iterator &rhs)
bool solvAttrNumeric() const
Whether this is a numeric attribute (incl.
iterator end() const
Iterator behind the end of query results.
detail::IdType id() const
DIWrap & operator=(const DIWrap &rhs)
void setRepo(Repository repo_r, Location=SOLV_ATTR)
Set search in one Repository.
Tp asType() const
Templated return type.
Lightweight repository attribute value lookup.
SolvAttr inSolvAttr() const
The current SolvAttr.
Convenience char* constructible from std::string and char*, it maps (char*)0 to an empty string...
std::ostream & operator<<(std::ostream &str, const Arch::CompatEntry &obj)
LookupRepoAttr(SolvAttr attr_r)
Wrapper around sat detail::CDataiterator.
void stayInThisSolvable()
Stop after all matches in the current Solvable are processed.
unsigned asUnsigned() const
void setStrMatcher(const StrMatcher &matcher_r)
Set the pattern to match.
void nextSkipSolvable()
On the next call to operator++ advance to the next Solvable.
std::ostream & operator<<(std::ostream &str, const DIWrap &obj)
std::ostream & dumpOn(std::ostream &str, const LocaleSupport &obj)
int asInt() const
Conversion to numeric types.
LookupRepoAttr()
Default ctor finds nothing.
bool pool() const
Whether to search in Pool.
size_type subSize() const
Ammount of attributes in the sub-structure.
SolvAttr attr() const
The SolvAttr to search.
Repository repo() const
Whether to search in one Repository.
detail::CDataiterator * operator->() const
void setPool()
Set search in Pool (all repositories).
iterator subFind(SolvAttr attr_r) const
Iterator pointing to the first occurance of SolvAttr attr_r in sub-structure.
::s_Dataiterator CDataiterator
Wrapped libsolv C data type exposed as backdoor.
Solvable inSolvable() const
The current Solvable.
void nextSkipRepo()
On the next call to operator++ advance to the next Repository.
detail::CDataiterator * _dip
friend class boost::iterator_core_access
bool solvAttrIdString() const
Whether this string attribute is available as IdString.
CheckSum asCheckSum() const
As CheckSum.
size_type size() const
Ammount of results.
std::string asString() const
This is an overloaded member function, provided for convenience. It differs from the above function o...
bool atEnd() const
Whether this points to the end of a query (Iterator is invalid).
Easy-to use interface to the ZYPP dependency resolver.
iterator subBegin() const
Iterator to the begin of a sub-structure.
Repository inRepo() const
The current Repository.
bool solvAttrSubEntry() const
Whether this is the entry to a sub-structure (flexarray).
Location
Specify the where to look for the attribule.
unsigned long long asUnsignedLL() const
bool empty() const
Whether the query is empty.
iterator begin() const
Iterator to the begin of query results.
const char * c_str() const
Conversion to string types.
Search for repository attributes.