CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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
 
virtual void clear ()
 
virtual RefVectorHolder< REFV > * clone () const
 
virtual RefVectorHolder< REFV > * cloneEmpty () const
 
virtual bool empty () const
 
const_iterator end () const
 
virtual ProductID id () const
 
virtual bool isAvailable () const
 
virtual size_t keyForIndex (size_t idx) const
 
RefVectorHolderoperator= (RefVectorHolder const &rhs)
 
virtual void const * product () const
 
virtual EDProductGetter const * productGetter () const
 
virtual void push_back (RefHolderBase const *r)
 
virtual void reallyFillView (void const *, ProductID const &, std::vector< void const * > &)
 
 RefVectorHolder ()
 
 RefVectorHolder (REFV const &refs)
 
 RefVectorHolder (ProductID const &iId)
 
virtual void reserve (size_type n)
 
void setRefs (REFV const &refs)
 
virtual size_type size () const
 
void swap (RefVectorHolder &other)
 
virtual ~RefVectorHolder ()
 
- 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

virtual boost::shared_ptr
< reftobase::RefHolderBase
refBase (size_t idx) const
 

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 77 of file RefVectorHolder.h.

Definition at line 43 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>
virtual edm::reftobase::RefVectorHolder< REFV >::~RefVectorHolder ( )
inlinevirtual

Definition at line 23 of file RefVectorHolder.h.

23 { }

Member Function Documentation

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

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 79 of file RefVectorHolder.h.

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

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

Definition at line 40 of file RefVectorHolder.h.

42 :
43  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  )
inlinevirtual
template<typename REFV >
RefVectorHolder< REFV > * edm::reftobase::RefVectorHolder< REFV >::clone ( void  ) const
inlinevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 156 of file RefVectorHolder.h.

156  {
157  return new RefVectorHolder<REFV>(*this);
158  }
template<typename REFV >
RefVectorHolder< REFV > * edm::reftobase::RefVectorHolder< REFV >::cloneEmpty ( ) const
inlinevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 162 of file RefVectorHolder.h.

References errorMatrix2Lands_multiChannel::id.

162  {
163  return new RefVectorHolder<REFV>(id());
164  }
virtual ProductID id() const
template<typename REFV >
bool edm::reftobase::RefVectorHolder< REFV >::empty ( ) const
inlinevirtual
template<typename REFV>
const_iterator edm::reftobase::RefVectorHolder< REFV >::end ( void  ) const
inlinevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 82 of file RefVectorHolder.h.

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

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

82  {
83  return const_iterator(new const_iterator_imp_specific(refs_.end()));
84  }
RefVectorHolderBase::const_iterator const_iterator
template<typename REFV >
ProductID edm::reftobase::RefVectorHolder< REFV >::id ( void  ) const
inlinevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 144 of file RefVectorHolder.h.

References edm::ProductID::id().

144  {
145  return refs_.id();
146  }
template<typename REFV>
virtual bool edm::reftobase::RefVectorHolder< REFV >::isAvailable ( ) const
inlinevirtual

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

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 91 of file RefVectorHolder.h.

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

91 { return refs_.isAvailable(); }
template<typename REFV >
size_t edm::reftobase::RefVectorHolder< REFV >::keyForIndex ( size_t  idx) const
inlinevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 174 of file RefVectorHolder.h.

174  {
175  return refs_[idx].key();
176  }
template<typename REFV >
RefVectorHolder< REFV > & edm::reftobase::RefVectorHolder< REFV >::operator= ( RefVectorHolder< REFV > const &  rhs)
inline

Definition at line 111 of file RefVectorHolder.h.

References edm::reftobase::swap(), and groupFilesInBlocks::temp.

111  {
112  RefVectorHolder<REFV> temp(rhs);
113  this->swap(temp);
114  return *this;
115  }
void swap(RefVectorHolder &other)
template<typename REFV>
virtual void const* edm::reftobase::RefVectorHolder< REFV >::product ( ) const
inlinevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 85 of file RefVectorHolder.h.

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

85  {
86  return refs_.product();
87  }
template<typename REFV >
EDProductGetter const * edm::reftobase::RefVectorHolder< REFV >::productGetter ( ) const
inlinevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 150 of file RefVectorHolder.h.

150  {
151  return refs_.productGetter();
152  }
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::push_back ( RefHolderBase const *  r)
virtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 194 of file RefVectorHolder.h.

References compareJSON::const, edm::reftobase::RefHolder< REF >::getRef(), h, edm::errors::InvalidReference, mergeVDriftHistosByStation::name, and edm::Exception::throwThis().

194  {
195  typedef typename REFV::value_type REF;
196  RefHolder<REF> const* rh = dynamic_cast<RefHolder<REF> const*>(h);
197  if(rh == 0) {
199  "RefVectorHolder: attempting to cast a RefHolderBase "
200  "to an invalid type.\nExpected: ",
201  typeid(REF).name(),
202  "\n");
203  }
204  refs_.push_back(rh->getRef());
205  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Container::value_type value_type
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
string const
Definition: compareJSON.py:14
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::reallyFillView ( void const *  iProd,
ProductID const &  iId,
std::vector< void const * > &  oPointers 
)
virtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 247 of file RefVectorHolder.h.

References edm::detail::reallyFillView(), and relativeConstraints::value.

247  {
248  typedef
250  RefVectorHolderDoFillView<REFV>,
251  RefVectorHolderNoFillView<REFV> >::type maybe_filler;
252  maybe_filler::reallyFillView(*this, iProd, iId, oPointers);
253  }
type
Definition: HCALResponse.h:22
void reallyFillView(COLLECTION const &coll, ProductID const &id, std::vector< void const * > &ptrs, helper_vector &helpers)
Definition: FillView.h:49
template<typename REFV >
boost::shared_ptr< RefHolderBase > edm::reftobase::RefVectorHolder< REFV >::refBase ( size_t  idx) const
privatevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 209 of file RefVectorHolder.h.

209  {
210  return boost::shared_ptr<RefHolderBase>(new RefHolder<typename REFV::value_type>(refs_[idx]));
211  }
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::reserve ( size_type  n)
inlinevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 137 of file RefVectorHolder.h.

References n, and alignCSCRings::s.

137  {
138  typename REFV::size_type s = n;
139  refs_.reserve(s);
140  }
uint16_t size_type
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::setRefs ( REFV const &  refs)
inline

Definition at line 168 of file RefVectorHolder.h.

168  {
169  refs_ = refs;
170  }
template<typename REFV >
RefVectorHolder< REFV >::size_type edm::reftobase::RefVectorHolder< REFV >::size ( void  ) const
inlinevirtual

Implements edm::reftobase::RefVectorHolderBase.

Definition at line 125 of file RefVectorHolder.h.

125  {
126  return refs_.size();
127  }
template<typename REFV >
void edm::reftobase::RefVectorHolder< REFV >::swap ( RefVectorHolder< REFV > &  other)
inline

Definition at line 104 of file RefVectorHolder.h.

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

Referenced by edm::reftobase::swap().

104  {
105  this->RefVectorHolderBase::swap(other);
106  refs_.swap(other.refs_);
107  }
void swap(RefVectorHolderBase &)

Member Data Documentation

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