12 #ifndef ZYPP_SAT_LOOKUPATTR_H
13 #define ZYPP_SAT_LOOKUPATTR_H
151 iterator
begin()
const;
154 iterator
end()
const;
304 const std::string & mstring_r = std::string(),
int flags_r = 0 );
307 const char * mstring_r,
int flags_r = 0 );
322 DIWrap( rhs ).swap( *
this );
326 {
DIWrap().swap( *
this ); }
329 explicit operator bool()
const
334 ::_Dataiterator *
get()
const {
return _dip; }
357 , boost::forward_traversal_tag
505 const char *
c_str()
const;
531 template<
class _Tp> _Tp
asType()
const {
return _Tp(
id()); }
556 template <
class OtherDerived,
class OtherIterator,
class V,
class C,
class R,
class D>
557 bool equal(
const boost::iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> & rhs )
const
559 return (
bool(base()) ==
bool(rhs.base()) )
560 && ( ! base() ||
dip_equal( *base(), *rhs.base() ) );
563 bool dip_equal( const ::_Dataiterator & lhs, const ::_Dataiterator & rhs )
const;
571 ::_Dataiterator *
get()
const
585 template<>
inline int LookupAttr::iterator::asType<int>()
const {
return asInt(); }
586 template<>
inline unsigned LookupAttr::iterator::asType<unsigned>()
const {
return asUnsigned(); }
587 template<>
inline unsigned long long LookupAttr::iterator::asType<unsigned long long>()
const {
return asUnsignedLL(); }
588 template<>
inline bool LookupAttr::iterator::asType<bool>()
const {
return asBool(); }
589 template<>
inline const char * LookupAttr::iterator::asType<const char *>()
const {
return c_str(); }
590 template<>
inline std::string LookupAttr::iterator::asType<std::string>()
const {
return asString(); }
591 template<>
inline IdString LookupAttr::iterator::asType<IdString>()
const {
return idStr(); }
592 template<>
CheckSum LookupAttr::iterator::asType<CheckSum>()
const;
594 template<
class _ResultT,
class _AttrT>
606 std::ostream &
operator<<( std::ostream & str, const ::_Dataiterator * obj );
609 inline std::ostream &
operator<<( std::ostream & str, const ::_Dataiterator & obj )
610 {
return str << &obj; }
612 #endif // ZYPP_SAT_LOOKUPATTR_H
void stayInThisRepo()
Stop after all matches in the current Repository are processed.
DIWrap()
NULL ::_Dataiterator
void skipSolvAttr()
Immediately advance to the next SolvAttr.
int IdType
Generic Id type.
A Solvable object within the sat Pool.
void setPool(Location=SOLV_ATTR)
Set search in Pool (all repositories).
void setAttr(SolvAttr attr_r)
Set the SolvAttr to search.
std::ostream & operator<<(std::ostream &str, const LocaleSupport &obj)
bool atEnd() const
Whether this points to the end of a query (Iterator is invalid).
IdType id() const
Expert backdoor.
String matching (STRING|SUBSTRING|GLOB|REGEX).
Lightweight attribute value lookup.
::_Repo * RepoIdType
Id type to connect Repo and sat-repo.
void resetStrMatcher()
Reset the pattern to match.
bool dip_equal(const ::_Dataiterator &lhs, const ::_Dataiterator &rhs) const
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.
unsigned SolvableIdType
Id type to connect Solvable and sat-solvable.
void nextSkipSolvAttr()
On the next call to operator++ advance to the next SolvAttr.
bool solvAttrIdString() const
Whether this string attribute is available as IdString.
Access to the sat-pools string space.
RWCOW_pointer< Impl > _pimpl
unsigned asUnsigned() const
Search for solvable attributes (default)
LookupAttr::transformIterator based container to retrieve list attributes.
Exceptions thrown from attribute matching.
::_Dataiterator * get() const
void skipRepo()
Immediately advance to the next Repository.
LookupAttr()
Default ctor finds nothing.
LookupAttr implememtation.
_Tp asType() const
Templated return type.
SolvAttr parent() const
Whether to search within a sub-structure (SolvAttr::noAttr if not)
void skipSolvable()
Immediately advance to the next Solvable.
const std::string & getstr() const
iterator subBegin() const
Iterator to the begin of a sub-structure.
void setRepo(Repository repo_r)
Set search in one Repository.
iterator & operator=(const iterator &rhs)
DIWrap & operator=(const DIWrap &rhs)
bool pool() const
Whether to search in Pool.
iterator end() const
Iterator behind the end of query results.
void setRepo(Repository repo_r, Location=SOLV_ATTR)
Set search in one Repository.
Lightweight repository attribute value lookup.
Convenience char* constructible from std::string and char*, it maps (char*)0 to an empty string...
SolvAttr attr() const
The SolvAttr to search.
Solvable inSolvable() const
The current Solvable.
std::ostream & operator<<(std::ostream &str, const Arch::CompatEntry &obj)
CheckSum asCheckSum() const
As CheckSum.
LookupRepoAttr(SolvAttr attr_r)
Wrapper around sat ::_Dataiterator.
SolvAttr inSolvAttr() const
The current SolvAttr.
void stayInThisSolvable()
Stop after all matches in the current Solvable are processed.
detail::IdType dereference() 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)
const StrMatcher & strMatcher() const
The pattern to match.
std::ostream & dumpOn(std::ostream &str, const LocaleSupport &obj)
bool solvAttrString() const
Whether this is a string attribute.
LookupRepoAttr()
Default ctor finds nothing.
bool empty() const
Whether the query is empty.
std::string asString(const Patch::SeverityFlag &obj)
Repository inRepo() const
The current Repository.
void setPool()
Set search in Pool (all repositories).
detail::IdType id() const
const char * c_str() const
Conversion to string types.
size_type size() const
Ammount of results.
bool equal(const boost::iterator_adaptor< OtherDerived, OtherIterator, V, C, R, D > &rhs) const
::_Dataiterator * operator->() const
void nextSkipRepo()
On the next call to operator++ advance to the next Repository.
Solvable solvable() const
Whether to search in one Solvable.
unsigned long long asUnsignedLL() const
friend class boost::iterator_core_access
bool solvAttrSubEntry() const
Whether this is the entry to a sub-structure (flexarray).
bool solvAttrCheckSum() const
Whether this is a CheckSum attribute.
size_type subSize() const
Ammount of attributes in the sub-structure.
bool subEmpty() const
Whether the sub-structure is empty.
bool solvAttrNumeric() const
Whether this is a numeric attribute (incl.
detail::IdType solvAttrType() const
The current SolvAttr type.
IdString idStr() const
As IdStr.
std::string asString() const
This is an overloaded member function, provided for convenience. It differs from the above function o...
iterator subEnd() const
Iterator behind the end of a sub-structure.
Repository repo() const
Whether to search in one Repository.
Location
Specify the where to look for the attribule.
int asInt() const
Conversion to numeric types.
iterator subFind(SolvAttr attr_r) const
Iterator pointing to the first occurance of SolvAttr attr_r in sub-structure.
iterator begin() const
Iterator to the begin of query results.
RW_pointer supporting 'copy on write' functionality.
Search for repository attributes.