1 #ifndef DataFormats_Common_RefVectorHolder_h 2 #define DataFormats_Common_RefVectorHolder_h 12 template <
typename REF>
15 template <
typename REFV>
22 bool empty()
const override;
24 void clear()
override;
54 std::shared_ptr<RefHolderBase> deref()
const override;
65 "In RefVectorHolder trying to cast iterator to wrong type\n");
69 typename REFV::const_iterator
i;
82 std::shared_ptr<reftobase::RefHolderBase>
refBase(
size_t idx)
const override;
90 template <
typename REFV>
93 refs_.swap(
other.refs_);
96 template <
typename REFV>
101 template <
typename REFV>
106 template <
typename REFV>
108 return refs_.clear();
111 template <
typename REFV>
117 template <
typename REFV>
122 template <
typename REFV>
124 return refs_.productGetter();
127 template <
typename REFV>
132 template <
typename REFV>
137 template <
typename REFV>
142 template <
typename REFV>
144 return refs_[
idx].key();
148 template <
typename REFV>
158 namespace reftobase {
160 template <
typename REFV>
166 "RefVectorHolder: attempting to cast a RefHolderBase " 167 "to an invalid type.\nExpected: ",
171 refs_.push_back(rh->
getRef());
174 template <
typename REFV>
176 return std::shared_ptr<RefHolderBase>(std::make_shared<RefHolder<typename REFV::value_type> >(refs_[
idx]));
179 template <
typename REFV>
181 return std::shared_ptr<RefHolderBase>(std::make_shared<RefHolder<typename REFV::value_type> >(*i));
bool less_than(const_iterator_imp const *o) const override
RefVectorHolderBase::const_iterator const_iterator
std::shared_ptr< reftobase::RefHolderBase > refBase(size_t idx) const override
EDProductGetter const * productGetter() const override
void assign(const_iterator_imp const *o) override
bool isAvailable() const override
void swap(RefVectorHolderBase &)
REF const & getRef() const
difference_type difference(const_iterator_imp const *o) const override
~const_iterator_imp_specific() override
#define CMS_CLASS_VERSION(_version_)
REFV::const_iterator const & dc(const_iterator_imp const *o) const
void reserve(size_type n) override
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
void setRefs(REFV const &refs)
Container::value_type value_type
ptrdiff_t difference_type
const_iterator begin() const override
const_iterator_imp_specific()
std::shared_ptr< RefHolderBase > deref() const override
RefVectorHolder< REFV > * clone() const override
size_t keyForIndex(size_t idx) const override
RefVectorHolder(ProductID const &iId)
size_type size() const override
bool empty() const override
RefVectorHolder(REFV const &refs)
const_iterator_imp_specific(typename REFV::const_iterator const &it)
RefVectorHolder< REFV > * cloneEmpty() const override
bool equal_to(const_iterator_imp const *o) const override
void swap(RefVectorHolder &other)
const_iterator end() const override
const_iterator_imp_specific * clone() const override
void increase(difference_type d) override
void push_back(RefHolderBase const *r) override
void decrease(difference_type d) override
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
void swap(BaseHolder< T > &lhs, BaseHolder< T > &rhs)
ProductID id() const override