1 #ifndef DataFormats_Common_RefVectorHolderBase_h
2 #define DataFormats_Common_RefVectorHolderBase_h
5 #include "boost/shared_ptr.hpp"
16 virtual bool empty()
const = 0;
18 virtual void clear() = 0;
40 virtual boost::shared_ptr<RefHolderBase>
deref()
const = 0;
44 struct const_iterator :
public std::iterator <std::random_access_iterator_tag, void *>{
59 "Trying to increment an inavlid RefToBaseVector<T>::const_iterator\n");
66 "Trying to postincrement an inavlid RefToBaseVector<T>::const_iterator\n");
74 "Trying to decrement an inavlid RefToBaseVector<T>::const_iterator\n");
81 "Trying to postdecrement an inavlid RefToBaseVector<T>::const_iterator\n");
90 "Trying to compute difference with an inavlid RefToBaseVector<T>::const_iterator\n");
96 "Trying to compute sum with an inavlid RefToBaseVector<T>::const_iterator\n");
104 "Trying to compute difference with an inavlid RefToBaseVector<T>::const_iterator\n");
113 "Trying to compute < operator with an inavlid RefToBaseVector<T>::const_iterator\n");
129 "Trying to dereference an inavlid RefToBaseVector<T>::const_iterator\n");
135 "Trying to decrement an inavlid RefToBaseVector<T>::const_iterator\n");
142 "Trying to increment an inavlid RefToBaseVector<T>::const_iterator\n");
156 virtual const void *
product()
const = 0;
165 virtual boost::shared_ptr<reftobase::RefHolderBase>
refBase(
size_t idx)
const = 0;
170 boost::shared_ptr<reftobase::RefHolderBase> rb =
refBase(idx);
bool operator==(const const_iterator &ci) const
virtual difference_type difference(const const_iterator_imp *) const =0
const_iterator & operator=(const const_iterator &it)
virtual void reallyFillView(const void *, const ProductID &, std::vector< void const * > &)=0
const_iterator(const_iterator_imp *it)
ptrdiff_t difference_type
virtual const_iterator_imp * clone() const =0
bool operator<(const const_iterator &o) const
virtual RefVectorHolderBase * clone() const =0
const_iterator & operator++()
const_iterator operator--(int)
const_iterator operator++(int)
const_iterator operator-(difference_type n) const
virtual bool empty() const =0
virtual RefVectorHolderBase * cloneEmpty() const =0
bool operator!=(const const_iterator &ci) const
virtual boost::shared_ptr< RefHolderBase > deref() const =0
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
virtual size_t keyForIndex(size_t idx) const =0
const_iterator(const const_iterator &it)
virtual size_type size() const =0
virtual void assign(const const_iterator_imp *)=0
virtual EDProductGetter const * productGetter() const =0
virtual bool equal_to(const const_iterator_imp *) const =0
difference_type operator-(const const_iterator &o) const
void swap(RefVectorHolderBase &other)
virtual const void * product() const =0
const_iterator operator+(difference_type n) const
virtual ~const_iterator_imp()
virtual void decrease()=0
const_iterator & operator-=(difference_type d)
virtual const_iterator begin() const =0
virtual void push_back(const RefHolderBase *r)=0
const_iterator & operator--()
virtual void reserve(size_type n)=0
virtual ~RefVectorHolderBase()
virtual const_iterator end() const =0
virtual ProductID id() const =0
std::ptrdiff_t difference_type
virtual bool isAvailable() const =0
RefToBase< T > getRef(size_t idx) const
virtual bool less_than(const const_iterator_imp *) const =0
value_type operator*() const
virtual void increase()=0
const_iterator & operator+=(difference_type d)
virtual boost::shared_ptr< reftobase::RefHolderBase > refBase(size_t idx) const =0
void swap(BaseHolder< T > &lhs, BaseHolder< T > &rhs)
boost::shared_ptr< RefHolderBase > value_type