//
/** \ref LookupAttr::transformIterator based container to retrieve list attributes.
*
+ * You may pass \ref LookupAttr::REPO_ATTR as \ref LookupAttr::Location argument,
+ * to lookup attributes associated with the \ref Repository as a whole
+ * (e.g. repository keywords).
+ *
+ * \see \ref LookupAttr for details.
+ *
* \code
* typedef ArrayAttr<PackageKeyword,IdString> Keywords;
* Keywords k( sat::SolvAttr::keywords );
ArrayAttr()
{}
- ArrayAttr( SolvAttr attr_r )
- : _q( attr_r )
+ ArrayAttr( SolvAttr attr_r, LookupAttr::Location loc_r = LookupAttr::SOLV_ATTR )
+ : _q( attr_r, loc_r )
{}
- ArrayAttr( SolvAttr attr_r, Repository repo_r )
- : _q( attr_r, repo_r )
+ ArrayAttr( SolvAttr attr_r, Repository repo_r, LookupAttr::Location loc_r = LookupAttr::SOLV_ATTR )
+ : _q( attr_r, repo_r, loc_r )
{}
ArrayAttr( SolvAttr attr_r, Solvable solv_r )
{}
public:
- typedef sat::LookupAttr::transformIterator<_ResultT,_AttrT> iterator;
+ typedef LookupAttr::transformIterator<_ResultT,_AttrT> iterator;
+ typedef LookupAttr::size_type size_type;
iterator begin() const
{ return iterator( _q.begin() ); }
bool empty() const
{ return _q.empty(); }
+ size_type size() const
+ {
+ size_type count = 0;
+ for_( it, begin(), end() )
+ ++count;
+ return count;
+ }
+
public:
iterator find( const _ResultT & key_r ) const
}
private:
- sat::LookupAttr _q;
+ LookupAttr _q;
};
///////////////////////////////////////////////////////////////////