CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
edm::reftobase::RefHolder< REF > Class Template Reference

#include <EDProductfwd.h>

Inheritance diagram for edm::reftobase::RefHolder< REF >:
edm::reftobase::RefHolderBase

Public Member Functions

RefHolderBaseclone () const override
 
REF const & getRef () const
 
ProductID id () const override
 
bool isAvailable () const override
 
bool isEqualTo (RefHolderBase const &rhs) const override
 
bool isTransient () const override
 
size_t key () const override
 
std::unique_ptr< RefVectorHolderBasemakeVectorHolder () const override
 
EDProductGetter const * productGetter () const override
 
 RefHolder ()
 
 RefHolder (REF const &ref)
 
void setRef (REF const &r)
 
void swap (RefHolder &other)
 
 ~RefHolder () override
 
- Public Member Functions inherited from edm::reftobase::RefHolderBase
template<class T >
T const * getPtr () const
 
 RefHolderBase ()
 
virtual ~RefHolderBase ()
 

Static Public Member Functions

static short Class_Version ()
 

Private Member Functions

void const * pointerToType (std::type_info const &iToType) const override
 

Private Attributes

REF ref_
 

Detailed Description

template<class REF>
class edm::reftobase::RefHolder< REF >

Definition at line 50 of file EDProductfwd.h.

Constructor & Destructor Documentation

◆ RefHolder() [1/2]

template<class REF >
edm::reftobase::RefHolder< REF >::RefHolder ( )

Definition at line 53 of file RefHolder_.h.

◆ RefHolder() [2/2]

template<class REF >
edm::reftobase::RefHolder< REF >::RefHolder ( REF const &  ref)
explicit

Definition at line 56 of file RefHolder_.h.

◆ ~RefHolder()

template<class REF >
edm::reftobase::RefHolder< REF >::~RefHolder ( )
override

Definition at line 59 of file RefHolder_.h.

59 {}

Member Function Documentation

◆ Class_Version()

template<class REF>
static short edm::reftobase::RefHolder< REF >::Class_Version ( )
inlinestatic

Definition at line 42 of file RefHolder_.h.

43 :
44  void const* pointerToType(std::type_info const& iToType) const override;
void const * pointerToType(std::type_info const &iToType) const override
Definition: RefHolder_.h:98

◆ clone()

template<class REF >
RefHolderBase * edm::reftobase::RefHolder< REF >::clone ( void  ) const
overridevirtual

Implements edm::reftobase::RefHolderBase.

Definition at line 62 of file RefHolder_.h.

62  {
63  return new RefHolder(ref_);
64  }

◆ getRef()

template<class REF >
REF const & edm::reftobase::RefHolder< REF >::getRef ( ) const
inline

Definition at line 78 of file RefHolder_.h.

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

78  {
79  return ref_;
80  }

◆ id()

template<class REF >
ProductID edm::reftobase::RefHolder< REF >::id ( ) const
overridevirtual

Implements edm::reftobase::RefHolderBase.

Definition at line 67 of file RefHolder_.h.

References edm::ProductID::id().

67  {
68  return ref_.id();
69  }

◆ isAvailable()

template<class REF>
bool edm::reftobase::RefHolder< REF >::isAvailable ( ) const
inlineoverridevirtual

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

Implements edm::reftobase::RefHolderBase.

Definition at line 37 of file RefHolder_.h.

References edm::reftobase::RefHolder< REF >::ref_.

37 { return ref_.isAvailable(); }

◆ isEqualTo()

template<class REF >
bool edm::reftobase::RefHolder< REF >::isEqualTo ( RefHolderBase const &  rhs) const
overridevirtual

Implements edm::reftobase::RefHolderBase.

Definition at line 72 of file RefHolder_.h.

References edm::getRef(), and h.

72  {
73  RefHolder const* h(dynamic_cast<RefHolder const*>(&rhs));
74  return h && (getRef() == h->getRef());
75  }
REF const & getRef() const
Definition: RefHolder_.h:78
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4

◆ isTransient()

template<class REF>
bool edm::reftobase::RefHolder< REF >::isTransient ( ) const
inlineoverridevirtual

Implements edm::reftobase::RefHolderBase.

Definition at line 39 of file RefHolder_.h.

References edm::reftobase::RefHolder< REF >::ref_.

39 { return ref_.isTransient(); }

◆ key()

template<class REF >
size_t edm::reftobase::RefHolder< REF >::key ( ) const
overridevirtual

Implements edm::reftobase::RefHolderBase.

Definition at line 26 of file RefHolder.h.

References crabWrapper::key.

26  {
27  typedef typename RefKeyTrait<REF>::type helper;
28  return helper::key(ref_);
29  }
Definition: helper.py:1

◆ makeVectorHolder()

template<class REF >
std::unique_ptr< RefVectorHolderBase > edm::reftobase::RefHolder< REF >::makeVectorHolder ( ) const
overridevirtual

Implements edm::reftobase::RefHolderBase.

Definition at line 14 of file RefHolder.h.

14  {
16  return helper::makeVectorHolder();
17  }
Definition: helper.py:1
InvalidRefHolderToRefVector< REF > type

◆ pointerToType()

template<class REF >
void const * edm::reftobase::RefHolder< REF >::pointerToType ( std::type_info const &  iToType) const
overrideprivatevirtual

Implements edm::reftobase::RefHolderBase.

Definition at line 98 of file RefHolder_.h.

References edm::pointerToBase().

98  {
99  typedef typename REF::value_type contained_type;
100  if (iToType == typeid(contained_type)) {
101  return ref_.get();
102  }
103  return pointerToBase(iToType, ref_.get());
104  }
void const * pointerToBase(std::type_info const &baseTypeInfo, T const *address)
Definition: OffsetToBase.h:47

◆ productGetter()

template<class REF >
EDProductGetter const * edm::reftobase::RefHolder< REF >::productGetter ( ) const
overridevirtual

Implements edm::reftobase::RefHolderBase.

Definition at line 83 of file RefHolder_.h.

83  {
84  return ref_.productGetter();
85  }

◆ setRef()

template<class REF >
void edm::reftobase::RefHolder< REF >::setRef ( REF const &  r)
inline

Definition at line 93 of file RefHolder_.h.

93  {
94  ref_ = r;
95  }

◆ swap()

template<class REF >
void edm::reftobase::RefHolder< REF >::swap ( RefHolder< REF > &  other)
inline

Definition at line 88 of file RefHolder_.h.

References trackingPlots::other, and std::swap().

88  {
89  std::swap(ref_, other.ref_);
90  }
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)

Member Data Documentation

◆ ref_

template<class REF>
REF edm::reftobase::RefHolder< REF >::ref_
private