52 Impl(
const std::tr1::unordered_set<detail::IdType> & ids_r )
56 _pdata.reserve( ids_r.size()+1 );
57 _pdata.insert(
_pdata.begin(), ids_r.begin(), ids_r.end() );
68 std::vector<sat::detail::IdType>
_pdata;
77 template <
class Iterator>
78 void collectProviders( Iterator begin_r, Iterator end_r, std::tr1::unordered_set<detail::IdType> & collect_r )
80 for_( it, begin_r, end_r )
85 collect_r.insert( prv->id() );
99 unsigned res(
myPool().whatProvides( cap_r ) );
100 if (
myPool().whatProvidesData( res ) )
109 std::tr1::unordered_set<detail::IdType> ids;
110 collectProviders( caps_r.
begin(), caps_r.
end(), ids );
120 std::tr1::unordered_set<detail::IdType> ids;
121 collectProviders( caps_r.begin(), caps_r.end(), ids );
174 str <<
str::form(
"<%p(%p)>", obj.base_reference(), &obj.base_reference() );
const detail::IdType *const * _baseRef
int IdType
Generic Id type.
Container of Solvable providing a Capability (read only).
Container of Capability (currently read only).
std::vector< sat::detail::IdType > _pdata
std::ostream & operator<<(std::ostream &str, const LocaleSupport &obj)
detail::WhatProvidesIterator const_iterator
bool empty() const
Whether the container is empty.
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
std::tr1::unordered_set< Capability > CapabilitySet
std::ostream & dumpRange(std::ostream &str, _Iterator begin, _Iterator end, const std::string &intro="{", const std::string &pfx="\n ", const std::string &sep="\n ", const std::string &sfx="\n", const std::string &extro="}")
Print range defined by iterators (multiline style).
Backlink to the associated PoolImpl.
const_iterator begin() const
Iterator pointing to the first Solvable.
const_iterator end() const
Iterator pointing behind the last Solvable.
std::ostream & operator<<(std::ostream &str, const DIWrap &obj)
static PoolImpl & myPool()
WhatProvides implementation date.
WhatProvides()
Default ctor.
std::string form(const char *format,...)
Printf style construction of std::string.
const_iterator end() const
Iterator pointing behind the last Capability.
size_type size() const
Number of solvables inside.
static const IdType noId(0)
Impl(const std::tr1::unordered_set< detail::IdType > &ids_r)
const_iterator begin() const
Iterator pointing to the first Capability.
RW_pointer< Impl > _pimpl
const detail::IdType * _private