CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes
edm::reftobase::RefVectorHolder< REFV > Class Template Reference

#include <RefVectorHolder.h>

Inheritance diagram for edm::reftobase::RefVectorHolder< REFV >:
edm::reftobase::RefVectorHolderBase

Classes

struct  const_iterator_imp_specific
 

Public Types

typedef RefVectorHolderBase::const_iterator const_iterator
 
- Public Types inherited from edm::reftobase::RefVectorHolderBase
typedef size_t size_type
 
typedef RefHolderBase value_type
 

Public Member Functions

const_iterator begin () const override
 
void clear () override
 
RefVectorHolder< REFV > * clone () const override
 
RefVectorHolder< REFV > * cloneEmpty () const override
 
bool empty () const override
 
const_iterator end () const override
 
ProductID id () const override
 
bool isAvailable () const override
 
size_t keyForIndex (size_t idx) const override
 
RefVectorHolderoperator= (RefVectorHolder const &rhs)
 
EDProductGetter const * productGetter () const override
 
void push_back (RefHolderBase const *r) override
 
 RefVectorHolder ()
 
 RefVectorHolder (REFV const &refs)
 
 RefVectorHolder (ProductID const &iId)
 
void reserve (size_type n) override
 
void setRefs (REFV const &refs)
 
size_type size () const override
 
void swap (RefVectorHolder &other)
 
 ~RefVectorHolder () override
 
- Public Member Functions inherited from edm::reftobase::RefVectorHolderBase
template<typename T >
RefToBase< TgetRef (size_t idx) const
 
void swap (RefVectorHolderBase &)
 
virtual ~RefVectorHolderBase ()
 

Static Public Member Functions

static short Class_Version ()
 

Private Types

typedef RefVectorHolderBase::const_iterator_imp const_iterator_imp
 

Private Member Functions

std::shared_ptr< reftobase::RefHolderBaserefBase (size_t idx) const override
 

Private Attributes

REFV refs_
 

Detailed Description

template<typename REFV>
class edm::reftobase::RefVectorHolder< REFV >

Definition at line 15 of file RefVectorHolder.h.

Member Typedef Documentation

Definition at line 76 of file RefVectorHolder.h.

Definition at line 42 of file RefVectorHolder.h.

Constructor & Destructor Documentation

template<typename REFV>
edm::reftobase::RefVectorHolder< REFV >::RefVectorHolder ( )
inline

Definition at line 17 of file RefVectorHolder.h.

17  : RefVectorHolderBase() {
18  }
template<typename REFV>
edm::reftobase::RefVectorHolder< REFV >::RefVectorHolder ( REFV const &  refs)
inline

Definition at line 19 of file RefVectorHolder.h.

19  : RefVectorHolderBase(), refs_(refs) {
20  }
template<typename REFV>
edm::reftobase::RefVectorHolder< REFV >::RefVectorHolder ( ProductID const &  iId)
inlineexplicit

Definition at line 21 of file RefVectorHolder.h.

21  : RefVectorHolderBase(), refs_(iId) {
22  }
template<typename REFV>
edm::reftobase::RefVectorHolder< REFV >::~RefVectorHolder ( )
inlineoverride

Member Function Documentation

template<typename REFV>
const_iterator edm::reftobase::RefVectorHolder< REFV >::begin ( void  ) const
inlineoverridevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 78 of file RefVectorHolder.h.

References edm::reftobase::RefVectorHolder< REFV >::refs_.

78  {
79  return const_iterator(new const_iterator_imp_specific(refs_.begin()));
80  }
RefVectorHolderBase::const_iterator const_iterator
template<typename REFV>
static short edm::reftobase::RefVectorHolder< REFV >::Class_Version ( )
inlinestatic

Definition at line 39 of file RefVectorHolder.h.

41 :
42  typedef typename RefVectorHolderBase::const_iterator_imp const_iterator_imp;
RefVectorHolderBase::const_iterator_imp const_iterator_imp
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::clear ( void  )
inlineoverridevirtual
template<typename REFV >
RefVectorHolder< REFV > * edm::reftobase::RefVectorHolder< REFV >::clone ( void  ) const
inlineoverridevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 152 of file RefVectorHolder.h.

Referenced by edm::reftobase::RefVectorHolder< REFV >::~RefVectorHolder().

152  {
153  return new RefVectorHolder<REFV>(*this);
154  }
template<typename REFV >
RefVectorHolder< REFV > * edm::reftobase::RefVectorHolder< REFV >::cloneEmpty ( ) const
inlineoverridevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 158 of file RefVectorHolder.h.

References edm::reftobase::RefVectorHolder< REFV >::id().

Referenced by edm::reftobase::RefVectorHolder< REFV >::~RefVectorHolder().

158  {
159  return new RefVectorHolder<REFV>(id());
160  }
ProductID id() const override
template<typename REFV >
bool edm::reftobase::RefVectorHolder< REFV >::empty ( ) const
inlineoverridevirtual
template<typename REFV>
const_iterator edm::reftobase::RefVectorHolder< REFV >::end ( void  ) const
inlineoverridevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 81 of file RefVectorHolder.h.

References edm::reftobase::RefVectorHolder< REFV >::refs_.

Referenced by Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().

81  {
82  return const_iterator(new const_iterator_imp_specific(refs_.end()));
83  }
RefVectorHolderBase::const_iterator const_iterator
template<typename REFV >
ProductID edm::reftobase::RefVectorHolder< REFV >::id ( ) const
inlineoverridevirtual
template<typename REFV>
bool edm::reftobase::RefVectorHolder< REFV >::isAvailable ( ) const
inlineoverridevirtual

Checks if product collection is in memory or available in the Event. No type checking is done.

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 87 of file RefVectorHolder.h.

References edm::reftobase::RefVectorHolder< REFV >::refBase(), and edm::reftobase::RefVectorHolder< REFV >::refs_.

87 { return refs_.isAvailable(); }
template<typename REFV >
size_t edm::reftobase::RefVectorHolder< REFV >::keyForIndex ( size_t  idx) const
inlineoverridevirtual
template<typename REFV >
RefVectorHolder< REFV > & edm::reftobase::RefVectorHolder< REFV >::operator= ( RefVectorHolder< REFV > const &  rhs)
inline

Definition at line 107 of file RefVectorHolder.h.

References edm::reftobase::RefVectorHolder< REFV >::swap(), and groupFilesInBlocks::temp.

Referenced by edm::reftobase::RefVectorHolder< REFV >::~RefVectorHolder().

107  {
108  RefVectorHolder<REFV> temp(rhs);
109  this->swap(temp);
110  return *this;
111  }
void swap(RefVectorHolder &other)
template<typename REFV >
EDProductGetter const * edm::reftobase::RefVectorHolder< REFV >::productGetter ( ) const
inlineoverridevirtual
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::push_back ( RefHolderBase const *  r)
overridevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 190 of file RefVectorHolder.h.

References edm::reftobase::RefHolder< REF >::getRef(), h, edm::errors::InvalidReference, dataset::name, edm::reftobase::RefVectorHolder< REFV >::refs_, and edm::Exception::throwThis().

Referenced by edm::reftobase::RefVectorHolder< REFV >::~RefVectorHolder().

190  {
191  typedef typename REFV::value_type REF;
192  RefHolder<REF> const* rh = dynamic_cast<RefHolder<REF> const*>(h);
193  if(rh == nullptr) {
195  "RefVectorHolder: attempting to cast a RefHolderBase "
196  "to an invalid type.\nExpected: ",
197  typeid(REF).name(),
198  "\n");
199  }
200  refs_.push_back(rh->getRef());
201  }
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Definition: EDMException.cc:83
template<typename REFV >
std::shared_ptr< RefHolderBase > edm::reftobase::RefVectorHolder< REFV >::refBase ( size_t  idx) const
overrideprivatevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 205 of file RefVectorHolder.h.

References training_settings::idx, and edm::reftobase::RefVectorHolder< REFV >::refs_.

Referenced by edm::reftobase::RefVectorHolder< REFV >::isAvailable().

205  {
206  return std::shared_ptr<RefHolderBase>(std::make_shared<RefHolder<typename REFV::value_type> >(refs_[idx]));
207  }
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::reserve ( size_type  n)
inlineoverridevirtual
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::setRefs ( REFV const &  refs)
inline
template<typename REFV >
RefVectorHolder< REFV >::size_type edm::reftobase::RefVectorHolder< REFV >::size ( void  ) const
inlineoverridevirtual
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::swap ( RefVectorHolder< REFV > &  other)
inline

Member Data Documentation

template<typename REFV>
REFV edm::reftobase::RefVectorHolder< REFV >::refs_
private