CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
edm::reftobase::Holder< T, REF > Class Template Reference

#include <EDProductfwd.h>

Inheritance diagram for edm::reftobase::Holder< T, REF >:
edm::reftobase::BaseHolder< T >

Public Member Functions

virtual BaseHolder< T > * clone () const
 
virtual bool fillRefIfMyTypeMatches (RefHolderBase &fillme, std::string &msg) const
 
virtual T const * getPtr () const
 
REF const & getRef () const
 
virtual bool hasProductCache () const
 
 Holder ()
 
 Holder (Holder const &other)
 
 Holder (REF const &iRef)
 
virtual std::auto_ptr
< RefHolderBase
holder () const
 
virtual ProductID id () const
 
virtual bool isAvailable () const
 
virtual bool isEqualTo (BaseHolder< T > const &rhs) const
 
virtual size_t key () const
 
virtual std::auto_ptr
< RefVectorHolderBase
makeVectorBaseHolder () const
 
virtual std::auto_ptr
< BaseVectorHolder< T > > 
makeVectorHolder () const
 
Holderoperator= (Holder const &rhs)
 
virtual void const * product () const
 
virtual EDProductGetter const * productGetter () const
 
void swap (Holder &other)
 
virtual ~Holder ()
 
- Public Member Functions inherited from edm::reftobase::BaseHolder< T >
 BaseHolder ()
 
void swap (BaseHolder &)
 
virtual ~BaseHolder ()
 

Private Attributes

REF ref_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::reftobase::BaseHolder< T >
 BaseHolder (BaseHolder const &other)
 
BaseHolderoperator= (BaseHolder const &rhs)
 

Detailed Description

template<typename T, class REF>
class edm::reftobase::Holder< T, REF >

Definition at line 36 of file EDProductfwd.h.

Constructor & Destructor Documentation

template<class T , class REF >
edm::reftobase::Holder< T, REF >::Holder ( )
inline

Definition at line 57 of file Holder.h.

57  : BaseHolder<T>(),
58  ref_()
59  { }
template<class T , class REF >
edm::reftobase::Holder< T, REF >::Holder ( Holder< T, REF > const &  other)
inline

Definition at line 63 of file Holder.h.

63  : BaseHolder<T>(other),
64  ref_(other.ref_)
65  { }
template<class T , class REF >
edm::reftobase::Holder< T, REF >::Holder ( REF const &  iRef)
inlineexplicit

Definition at line 69 of file Holder.h.

69  : BaseHolder<T>(),
70  ref_(r)
71  { }
template<class T , class REF >
edm::reftobase::Holder< T, REF >::~Holder ( )
inlinevirtual

Definition at line 93 of file Holder.h.

94  { }

Member Function Documentation

template<class T , class REF >
BaseHolder< T > * edm::reftobase::Holder< T, REF >::clone ( void  ) const
inlinevirtual

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

Definition at line 99 of file Holder.h.

100  {
101  return new Holder(*this);
102  }
template<class T , class REF >
bool edm::reftobase::Holder< T, REF >::fillRefIfMyTypeMatches ( RefHolderBase fillme,
std::string &  msg 
) const
virtual

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

Definition at line 159 of file Holder.h.

References h, AlCaRecoCosmics_cfg::name, and edm::reftobase::RefHolder< REF >::setRef().

161  {
162  RefHolder<REF>* h = dynamic_cast<RefHolder<REF>*>(&fillme);
163  bool conversion_worked = (h != 0);
164 
165  if (conversion_worked)
166  h->setRef(ref_);
167  else
168  msg = typeid(REF).name();
169 
170  return conversion_worked;
171  }
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
template<class T , class REF >
T const * edm::reftobase::Holder< T, REF >::getPtr ( ) const
inlinevirtual

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

Definition at line 107 of file Holder.h.

108  {
109  return ref_.operator->();
110  }
template<class T , class REF >
REF const & edm::reftobase::Holder< T, REF >::getRef ( ) const
inline

Definition at line 134 of file Holder.h.

135  {
136  return ref_;
137  }
template<class T , class REF >
bool edm::reftobase::Holder< T, REF >::hasProductCache ( ) const
inlinevirtual

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

Definition at line 147 of file Holder.h.

147  {
148  return ref_.hasProductCache();
149  }
template<typename T , class REF >
virtual std::auto_ptr<RefHolderBase> edm::reftobase::Holder< T, REF >::holder ( ) const
inlinevirtual

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

Definition at line 34 of file Holder.h.

References edm::reftobase::Holder< T, REF >::ref_.

34  {
35  return std::auto_ptr<RefHolderBase>( new RefHolder<REF>( ref_ ) );
36  }
template<class T , class REF >
ProductID edm::reftobase::Holder< T, REF >::id ( void  ) const
inlinevirtual

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

Definition at line 115 of file Holder.h.

References edm::ProductID::id().

116  {
117  return ref_.id();
118  }
template<typename T , class REF >
virtual bool edm::reftobase::Holder< T, REF >::isAvailable ( ) const
inlinevirtual

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

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

Definition at line 45 of file Holder.h.

References edm::reftobase::Holder< T, REF >::ref_.

45 { return ref_.isAvailable(); }
template<class T , class REF >
bool edm::reftobase::Holder< T, REF >::isEqualTo ( BaseHolder< T > const &  rhs) const
inlinevirtual

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

Definition at line 123 of file Holder.h.

References compareJSON::const, edm::getRef(), and h.

124  {
125  Holder const* h = dynamic_cast<Holder const*>(&rhs);
126  return h && (getRef() == h->getRef());
127  // if (h == 0) return false;
128  // return getRef() == h->getRef();
129  }
REF const & getRef() const
Definition: Holder.h:134
string const
Definition: compareJSON.py:14
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
template<class T , class REF >
size_t edm::reftobase::Holder< T, REF >::key ( ) const
inlinevirtual

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

Definition at line 205 of file Holder.h.

References combine::key.

206  {
207  typedef typename RefKeyTrait<REF>::type helper;
208  return helper::key( ref_ );
209  }
type
Definition: HCALResponse.h:22
list key
Definition: combine.py:13
template<typename T , typename REF >
std::auto_ptr< RefVectorHolderBase > edm::reftobase::Holder< T, REF >::makeVectorBaseHolder ( ) const
virtual

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

Definition at line 189 of file Holder.h.

189  {
190  typedef typename HolderToVectorTrait<T, REF>::type helper;
191  return helper::makeVectorBaseHolder();
192  }
type
Definition: HCALResponse.h:22
template<typename T , typename REF >
std::auto_ptr< BaseVectorHolder< T > > edm::reftobase::Holder< T, REF >::makeVectorHolder ( ) const
virtual

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

Definition at line 183 of file Holder.h.

183  {
184  typedef typename HolderToVectorTrait<T, REF>::type helper;
185  return helper::makeVectorHolder();
186  }
type
Definition: HCALResponse.h:22
template<class T , class REF >
Holder< T, REF > & edm::reftobase::Holder< T, REF >::operator= ( Holder< T, REF > const &  rhs)
inline

Definition at line 76 of file Holder.h.

References edm::reftobase::swap(), and cond::rpcobtemp::temp.

77  {
78  Holder temp(rhs);
79  swap(temp);
80  return *this;
81  }
void swap(Holder &other)
Definition: Holder.h:86
template<class T , class REF >
void const * edm::reftobase::Holder< T, REF >::product ( ) const
inlinevirtual

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

Definition at line 153 of file Holder.h.

153  {
154  return ref_.product();
155  }
template<class T , class REF >
EDProductGetter const * edm::reftobase::Holder< T, REF >::productGetter ( ) const
inlinevirtual

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

Definition at line 141 of file Holder.h.

141  {
142  return ref_.productGetter();
143  }
template<class T , class REF >
void edm::reftobase::Holder< T, REF >::swap ( Holder< T, REF > &  other)
inline

Definition at line 86 of file Holder.h.

References std::swap().

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

Member Data Documentation

template<typename T , class REF >
REF edm::reftobase::Holder< T, REF >::ref_
private