CMS 3D CMS Logo

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

#include <EDProductfwd.h>

Inheritance diagram for edm::reftobase::VectorHolder< T, REFV >:
edm::reftobase::BaseVectorHolder< T >

Classes

struct  const_iterator_imp_specific
 

Public Types

typedef base_type::base_ref_type base_ref_type
 
typedef BaseVectorHolder< Tbase_type
 
typedef base_type::const_iterator const_iterator
 
typedef base_type::element_type element_type
 
typedef REFV ref_vector_type
 
typedef base_type::size_type size_type
 
- Public Types inherited from edm::reftobase::BaseVectorHolder< T >
typedef RefToBase< Tbase_ref_type
 
typedef T element_type
 
typedef size_t size_type
 

Public Member Functions

base_ref_type const at (size_type idx) const override
 
const_iterator begin () const override
 
void clear () override
 
base_typeclone () const override
 
base_typecloneEmpty () const override
 
bool empty () const override
 
const_iterator end () const override
 
ProductID id () const override
 
bool isAvailable () const override
 
VectorHolderoperator= (VectorHolder const &rhs)
 
EDProductGetter const * productGetter () const override
 
void push_back (const BaseHolder< T > *r) override
 
size_type size () const override
 
void swap (VectorHolder &other)
 
 VectorHolder ()
 
 VectorHolder (VectorHolder const &rh)
 
 VectorHolder (const ref_vector_type &iRefVector)
 
 VectorHolder (const ProductID &iId)
 
std::unique_ptr< RefVectorHolderBasevectorHolder () const override
 
 ~VectorHolder () override
 
- Public Member Functions inherited from edm::reftobase::BaseVectorHolder< T >
 BaseVectorHolder ()
 
virtual void push_back (BaseHolder< T > const *)=0
 
void swap (BaseVectorHolder &)
 
virtual ~BaseVectorHolder ()
 

Static Public Member Functions

static short Class_Version ()
 
- Static Public Member Functions inherited from edm::reftobase::BaseVectorHolder< T >
static short Class_Version ()
 

Private Types

typedef base_type::const_iterator_imp const_iterator_imp
 

Private Attributes

ref_vector_type refVector_
 

Detailed Description

template<class T, class REFV>
class edm::reftobase::VectorHolder< T, REFV >

Definition at line 40 of file EDProductfwd.h.

Member Typedef Documentation

template<class T , class REFV >
typedef base_type::base_ref_type edm::reftobase::VectorHolder< T, REFV >::base_ref_type

Definition at line 20 of file VectorHolder.h.

template<class T , class REFV >
typedef BaseVectorHolder<T> edm::reftobase::VectorHolder< T, REFV >::base_type

Definition at line 17 of file VectorHolder.h.

template<class T , class REFV >
typedef base_type::const_iterator edm::reftobase::VectorHolder< T, REFV >::const_iterator

Definition at line 21 of file VectorHolder.h.

template<class T , class REFV >
typedef base_type::const_iterator_imp edm::reftobase::VectorHolder< T, REFV >::const_iterator_imp
private

Definition at line 86 of file VectorHolder.h.

template<class T , class REFV >
typedef base_type::element_type edm::reftobase::VectorHolder< T, REFV >::element_type

Definition at line 19 of file VectorHolder.h.

template<class T , class REFV >
typedef REFV edm::reftobase::VectorHolder< T, REFV >::ref_vector_type

Definition at line 22 of file VectorHolder.h.

template<class T , class REFV >
typedef base_type::size_type edm::reftobase::VectorHolder< T, REFV >::size_type

Definition at line 18 of file VectorHolder.h.

Constructor & Destructor Documentation

template<class T , class REFV >
edm::reftobase::VectorHolder< T, REFV >::VectorHolder ( )
inline
template<class T , class REFV >
edm::reftobase::VectorHolder< T, REFV >::VectorHolder ( VectorHolder< T, REFV > const &  rh)
inline
template<class T , class REFV >
edm::reftobase::VectorHolder< T, REFV >::VectorHolder ( const ref_vector_type iRefVector)
inlineexplicit

Definition at line 30 of file VectorHolder.h.

30 : base_type(), refVector_(iRefVector) {}
BaseVectorHolder< T > base_type
Definition: VectorHolder.h:17
ref_vector_type refVector_
Definition: VectorHolder.h:88
template<class T , class REFV >
edm::reftobase::VectorHolder< T, REFV >::VectorHolder ( const ProductID iId)
inlineexplicit

Definition at line 31 of file VectorHolder.h.

31 : base_type(), refVector_(iId) {}
BaseVectorHolder< T > base_type
Definition: VectorHolder.h:17
ref_vector_type refVector_
Definition: VectorHolder.h:88
template<class T , class REFV >
edm::reftobase::VectorHolder< T, REFV >::~VectorHolder ( )
inlineoverride

Definition at line 32 of file VectorHolder.h.

32 {}

Member Function Documentation

template<class T , class REFV >
base_ref_type const edm::reftobase::VectorHolder< T, REFV >::at ( size_type  idx) const
inlineoverridevirtual
template<class T , class REFV >
const_iterator edm::reftobase::VectorHolder< T, REFV >::begin ( void  ) const
inlineoverridevirtual

Implements edm::reftobase::BaseVectorHolder< T >.

Definition at line 60 of file VectorHolder.h.

References edm::reftobase::VectorHolder< T, REFV >::refVector_.

60  {
61  return const_iterator( new const_iterator_imp_specific( refVector_.begin() ) );
62  }
base_type::const_iterator const_iterator
Definition: VectorHolder.h:21
ref_vector_type refVector_
Definition: VectorHolder.h:88
template<class T , class REFV >
static short edm::reftobase::VectorHolder< T, REFV >::Class_Version ( )
inlinestatic

Definition at line 83 of file VectorHolder.h.

85 :
86  typedef typename base_type::const_iterator_imp const_iterator_imp;
base_type::const_iterator_imp const_iterator_imp
Definition: VectorHolder.h:86
template<class T , class REFV >
void edm::reftobase::VectorHolder< T, REFV >::clear ( void  )
inlineoverridevirtual
template<class T , class REFV >
base_type* edm::reftobase::VectorHolder< T, REFV >::clone ( void  ) const
inlineoverridevirtual
template<class T , class REFV >
base_type* edm::reftobase::VectorHolder< T, REFV >::cloneEmpty ( ) const
inlineoverridevirtual
template<class T , class REFV >
bool edm::reftobase::VectorHolder< T, REFV >::empty ( ) const
inlineoverridevirtual
template<class T , class REFV >
const_iterator edm::reftobase::VectorHolder< T, REFV >::end ( void  ) const
inlineoverridevirtual

Implements edm::reftobase::BaseVectorHolder< T >.

Definition at line 63 of file VectorHolder.h.

References edm::reftobase::VectorHolder< T, REFV >::refVector_.

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

63  {
64  return const_iterator( new const_iterator_imp_specific( refVector_.end() ) );
65  }
base_type::const_iterator const_iterator
Definition: VectorHolder.h:21
ref_vector_type refVector_
Definition: VectorHolder.h:88
template<class T , class REFV >
ProductID edm::reftobase::VectorHolder< T, REFV >::id ( ) const
inlineoverridevirtual

Implements edm::reftobase::BaseVectorHolder< T >.

Definition at line 41 of file VectorHolder.h.

References edm::reftobase::VectorHolder< T, REFV >::refVector_.

41 { return refVector_.id(); }
ref_vector_type refVector_
Definition: VectorHolder.h:88
template<class T , class REFV >
bool edm::reftobase::VectorHolder< T, REFV >::isAvailable ( ) const
inlineoverridevirtual

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

Implements edm::reftobase::BaseVectorHolder< T >.

Definition at line 80 of file VectorHolder.h.

References edm::reftobase::VectorHolder< T, REFV >::refVector_.

80 { return refVector_.isAvailable(); }
ref_vector_type refVector_
Definition: VectorHolder.h:88
template<class T , class REFV >
VectorHolder& edm::reftobase::VectorHolder< T, REFV >::operator= ( VectorHolder< T, REFV > const &  rhs)
inline
template<class T , class REFV >
EDProductGetter const* edm::reftobase::VectorHolder< T, REFV >::productGetter ( ) const
inlineoverridevirtual

Implements edm::reftobase::BaseVectorHolder< T >.

Definition at line 42 of file VectorHolder.h.

References edm::reftobase::VectorHolder< T, REFV >::refVector_.

42 { return refVector_.productGetter(); }
ref_vector_type refVector_
Definition: VectorHolder.h:88
template<class T , class REFV >
void edm::reftobase::VectorHolder< T, REFV >::push_back ( const BaseHolder< T > *  r)
inlineoverride

Definition at line 66 of file VectorHolder.h.

References h, edm::errors::InvalidReference, alignCSCRings::r, edm::reftobase::VectorHolder< T, REFV >::refVector_, and edm::Exception::throwThis().

66  {
67  typedef Holder<T, typename REFV::value_type > holder_type;
68  const holder_type * h = dynamic_cast<const holder_type *>( r );
69  if( h == nullptr )
71  "In VectorHolder<T, REFV> trying to push_back wrong reference type");
72  refVector_.push_back( h->getRef() );
73  }
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
ref_vector_type refVector_
Definition: VectorHolder.h:88
template<class T , class REFV >
size_type edm::reftobase::VectorHolder< T, REFV >::size ( void  ) const
inlineoverridevirtual
template<class T , class REFV >
void edm::reftobase::VectorHolder< T, REFV >::swap ( VectorHolder< T, REFV > &  other)
inline
template<class T , class REFV >
std::unique_ptr<RefVectorHolderBase> edm::reftobase::VectorHolder< T, REFV >::vectorHolder ( ) const
inlineoverridevirtual

Implements edm::reftobase::BaseVectorHolder< T >.

Definition at line 74 of file VectorHolder.h.

References edm::reftobase::VectorHolder< T, REFV >::refVector_.

74  {
75  return std::unique_ptr<RefVectorHolderBase>( new RefVectorHolder<REFV>( refVector_ ) );
76  }
ref_vector_type refVector_
Definition: VectorHolder.h:88

Member Data Documentation

template<class T , class REFV >
ref_vector_type edm::reftobase::VectorHolder< T, REFV >::refVector_
private