12#ifndef ZYPP_SAT_LOOKUPATTR_H 
   13#define ZYPP_SAT_LOOKUPATTR_H 
   19#include <zypp-core/base/DefaultIntegral> 
  168        template<class TResult, class TAttr = TResult>
 
 
  308                  std::string  mstring_r = std::string(), 
int flags_r = 0 );
 
  311                  const char * mstring_r, 
int flags_r = 0 );
 
  319              std::swap( 
_dip, rhs._dip );
 
  320              std::swap( 
_mstring, rhs._mstring );
 
 
  326              DIWrap( rhs ).swap( *
this );
 
 
  330          { 
DIWrap().swap( *
this ); }
 
 
 
  359        , detail::CDataiterator *            
 
  361        , boost::forward_traversal_tag 
 
  390        void stayInThisSolvable();
 
  393        void stayInThisRepo();
 
  418        bool solvAttrNumeric() 
const;
 
  421        bool solvAttrString() 
const;
 
  424        bool solvAttrIdString() 
const;
 
  427        bool solvAttrCheckSum() 
const;
 
  433        bool solvAttrSubEntry() 
const;
 
  467        bool subEmpty() 
const;
 
  502        unsigned asUnsigned() 
const;
 
  506        unsigned long long asUnsignedLL() 
const;
 
  509        const char * c_str() 
const;
 
  524        { 
return idStr().id(); }
 
 
  535        template<
class Tp> Tp 
asType()
 const { 
return Tp(
id()); }
 
  558        friend class boost::iterator_core_access;
 
  560        template <
class OtherDerived, 
class OtherIterator, 
class V, 
class C, 
class R, 
class D>
 
  561        bool equal( 
const boost::iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> & rhs )
 const 
  563          return ( 
bool(
base()) == 
bool(rhs.base()) )
 
 
  576        { 
return _dip.get(); }
 
 
 
  591    template<> 
inline unsigned long long LookupAttr::iterator::asType<unsigned long long>()
     const { 
return asUnsignedLL(); }
 
  592    template<> 
inline bool         LookupAttr::iterator::asType<bool>()
         const { 
return asBool(); }
 
  593    template<> 
inline const char * LookupAttr::iterator::asType<const char *>()
 const { 
return c_str(); }
 
  595    template<> 
inline IdString     LookupAttr::iterator::asType<IdString>()
     const { 
return idStr(); }
 
  596    template<>        CheckSum     LookupAttr::iterator::asType<CheckSum>()     
const;
 
  598    template<
class TResult, 
class TAttr>
 
  614{ 
return str << &obj; }
 
std::ostream & operator<<(std::ostream &str, const zypp::sat::detail::CDataiterator *obj)
Convenience char* constructible from std::string and char*, it maps (char*)0 to an empty string.
Access to the sat-pools string space.
String matching option flags as used e.g.
String matching (STRING|SUBSTRING|GLOB|REGEX).
LookupAttr implememtation.
detail::CDataiterator * get() const
Expert backdoor.
detail::IdType id() const
Tp asType() const
Templated return type.
IdString idStr() const
As IdStr.
void nextSkipSolvable()
On the next call to operator++ advance to the next Solvable.
void nextSkipSolvAttr()
On the next call to operator++ advance to the next SolvAttr.
bool equal(const boost::iterator_adaptor< OtherDerived, OtherIterator, V, C, R, D > &rhs) const
void skipSolvable()
Immediately advance to the next Solvable.
void nextSkipRepo()
On the next call to operator++ advance to the next Repository.
bool dip_equal(const detail::CDataiterator &lhs, const detail::CDataiterator &rhs) const
bool atEnd() const
Whether this points to the end of a query (Iterator is invalid).
void skipSolvAttr()
Immediately advance to the next SolvAttr.
void skipRepo()
Immediately advance to the next Repository.
Lightweight attribute value lookup.
void resetStrMatcher()
Reset the pattern to match.
iterator end() const
Iterator behind the end of query results.
RWCOW_pointer< Impl > _pimpl
const StrMatcher & strMatcher() const
The pattern to match.
std::ostream & dumpOn(std::ostream &str, const LookupAttr &obj) ZYPP_API
Verbose stream output including the query result.
bool empty() const
Whether the query is empty.
LookupAttr(LookupAttr &&) noexcept=default
Location
Specify the where to look for the attribule.
@ REPO_ATTR
Search for repository attributes.
@ SOLV_ATTR
Search for solvable attributes (default)
void setStrMatcher(const StrMatcher &matcher_r)
Set the pattern to match.
Repository repo() const
Whether to search in one Repository.
SolvAttr attr() const
The SolvAttr to search.
SolvAttr parent() const
Whether to search within a sub-structure (SolvAttr::noAttr if not)
void setAttr(SolvAttr attr_r)
Set the SolvAttr to search.
void setRepo(Repository repo_r, Location=SOLV_ATTR)
Set search in one Repository.
bool pool() const
Whether to search in Pool.
size_type size() const
Ammount of results.
iterator begin() const
Iterator to the begin of query results.
LookupAttr & operator=(const LookupAttr &)=default
LookupAttr(const LookupAttr &)=default
void setSolvable(Solvable solv_r)
Set search in one Solvable.
Solvable solvable() const
Whether to search in one Solvable.
LookupAttr()
Default ctor finds nothing.
void setPool(Location=SOLV_ATTR)
Set search in Pool (all repositories).
void setParent(SolvAttr attr_r)
Set search within a sub-structure (SolvAttr::noAttr for none)
Lightweight repository attribute value lookup.
LookupRepoAttr(SolvAttr attr_r)
LookupRepoAttr()
Default ctor finds nothing.
void setPool()
Set search in Pool (all repositories).
A Solvable object within the sat Pool.
Wrapper around sat detail::CDataiterator.
void swap(DIWrap &rhs) noexcept
detail::CDataiterator * get() const
DIWrap & operator=(const DIWrap &rhs)
detail::CDataiterator * operator->() const
const std::string & getstr() const
DIWrap()
NULL detail::CDataiterator
detail::CDataiterator * _dip
String related utilities and Regular expression matching.
unsigned int SolvableIdType
Id type to connect Solvable and sat-solvable.
int IdType
Generic Id type.
::s_Dataiterator CDataiterator
Wrapped libsolv C data type exposed as backdoor.
CRepo * RepoIdType
Id type to connect Repo and sat-repo.
String related utilities and Regular expression matching.
Easy-to use interface to the ZYPP dependency resolver.
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
std::string asString(const Patch::Category &obj)
Exceptions thrown from attribute matching.
RW_pointer supporting 'copy on write' functionality.
Provides API related macros.