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 | Friends
edm::reftobase::IndirectHolder< T > Class Template Reference

#include <EDProductfwd.h>

Inheritance diagram for edm::reftobase::IndirectHolder< T >:
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
 
virtual bool hasProductCache () const
 
virtual std::auto_ptr
< RefHolderBase
holder () const
 
virtual ProductID id () const
 
 IndirectHolder ()
 
 IndirectHolder (boost::shared_ptr< RefHolderBase > p)
 
 IndirectHolder (IndirectHolder const &other)
 
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
 
IndirectHolderoperator= (IndirectHolder const &rhs)
 
virtual void const * product () const
 
virtual EDProductGetter const * productGetter () const
 
void swap (IndirectHolder &other)
 
virtual ~IndirectHolder ()
 
- Public Member Functions inherited from edm::reftobase::BaseHolder< T >
 BaseHolder ()
 
void swap (BaseHolder &)
 
virtual ~BaseHolder ()
 

Private Attributes

RefHolderBasehelper_
 

Friends

class IndirectVectorHolder< T >
 
class RefToBase< T >
 

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 edm::reftobase::IndirectHolder< T >

Definition at line 38 of file EDProductfwd.h.

Constructor & Destructor Documentation

template<typename T>
edm::reftobase::IndirectHolder< T >::IndirectHolder ( )
inline

Definition at line 30 of file IndirectHolder.h.

30 : BaseHolder<T>(), helper_( 0 ) { }
template<typename T >
edm::reftobase::IndirectHolder< T >::IndirectHolder ( boost::shared_ptr< RefHolderBase p)
inline

Definition at line 70 of file IndirectHolder.h.

70  :
71  BaseHolder<T>(), helper_(p->clone())
72  { }
template<typename T >
edm::reftobase::IndirectHolder< T >::IndirectHolder ( IndirectHolder< T > const &  other)
inline

Definition at line 76 of file IndirectHolder.h.

76  :
77  BaseHolder<T>(other), helper_(other.helper_->clone())
78  { }
template<typename T >
edm::reftobase::IndirectHolder< T >::~IndirectHolder ( )
virtual

Definition at line 100 of file IndirectHolder.h.

101  {
102  delete helper_;
103  }

Member Function Documentation

template<typename T >
BaseHolder< T > * edm::reftobase::IndirectHolder< T >::clone ( void  ) const
virtual

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

Definition at line 107 of file IndirectHolder.h.

108  {
109  return new IndirectHolder<T>(*this);
110  }
template<typename T >
bool edm::reftobase::IndirectHolder< T >::fillRefIfMyTypeMatches ( RefHolderBase fillme,
std::string &  msg 
) const
virtual

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

Definition at line 161 of file IndirectHolder.h.

163  {
164  return helper_->fillRefIfMyTypeMatches(fillme, msg);
165  }
virtual bool fillRefIfMyTypeMatches(RefHolderBase &ref, std::string &msg) const =0
template<typename T >
T const * edm::reftobase::IndirectHolder< T >::getPtr ( ) const
virtual

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

Definition at line 114 of file IndirectHolder.h.

115  {
116  return helper_-> template getPtr<T>();
117  }
template<typename T >
bool edm::reftobase::IndirectHolder< T >::hasProductCache ( ) const
inlinevirtual

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

Definition at line 141 of file IndirectHolder.h.

141  {
142  return helper_->hasProductCache();
143  }
virtual bool hasProductCache() const =0
template<typename T >
std::auto_ptr< RefHolderBase > edm::reftobase::IndirectHolder< T >::holder ( ) const
virtual

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

Definition at line 168 of file IndirectHolder.h.

168  {
169  return std::auto_ptr<RefHolderBase>( helper_->clone() );
170  }
virtual RefHolderBase * clone() const =0
template<typename T >
ProductID edm::reftobase::IndirectHolder< T >::id ( void  ) const
virtual

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

Definition at line 121 of file IndirectHolder.h.

References edm::ProductID::id().

122  {
123  return helper_->id();
124  }
virtual ProductID id() const =0
template<typename T>
virtual bool edm::reftobase::IndirectHolder< T >::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 54 of file IndirectHolder.h.

54 { return helper_->isAvailable(); }
virtual bool isAvailable() const =0
template<typename T>
bool edm::reftobase::IndirectHolder< T >::isEqualTo ( BaseHolder< T > const &  rhs) const
virtual

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

Definition at line 153 of file IndirectHolder.h.

References compareJSON::const, h, edm::reftobase::IndirectHolder< T >::helper_, and edm::reftobase::IndirectHolder< T >::isEqualTo().

Referenced by edm::reftobase::IndirectHolder< T >::isEqualTo().

154  {
155  IndirectHolder const* h = dynamic_cast<IndirectHolder const*>(&rhs);
156  return h && helper_->isEqualTo(*h->helper_);
157  }
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
virtual bool isEqualTo(RefHolderBase const &rhs) const =0
template<typename T >
size_t edm::reftobase::IndirectHolder< T >::key ( ) const
virtual

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

Definition at line 128 of file IndirectHolder.h.

129  {
130  return helper_->key();
131  }
virtual size_t key() const =0
template<typename T >
std::auto_ptr< RefVectorHolderBase > edm::reftobase::IndirectHolder< T >::makeVectorBaseHolder ( ) const
virtual

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

Definition at line 196 of file IndirectHolder.h.

References edm::reftobase::IndirectHolder< T >::makeVectorHolder().

196  {
197  return helper_->makeVectorHolder();
198  }
virtual std::auto_ptr< RefVectorHolderBase > makeVectorHolder() const =0
template<typename T >
std::auto_ptr< BaseVectorHolder< T > > edm::reftobase::IndirectHolder< T >::makeVectorHolder ( ) const
virtual

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

Definition at line 189 of file IndirectHolder.h.

References AlCaHLTBitMon_ParallelJobs::p.

Referenced by edm::reftobase::IndirectHolder< T >::makeVectorBaseHolder().

189  {
190  std::auto_ptr<RefVectorHolderBase> p = helper_->makeVectorHolder();
191  boost::shared_ptr<RefVectorHolderBase> sp( p );
192  return std::auto_ptr<BaseVectorHolder<T> >( new IndirectVectorHolder<T>( sp ) );
193  }
virtual std::auto_ptr< RefVectorHolderBase > makeVectorHolder() const =0
template<typename T >
IndirectHolder< T > & edm::reftobase::IndirectHolder< T >::operator= ( IndirectHolder< T > const &  rhs)
inline

Definition at line 92 of file IndirectHolder.h.

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

93  {
94  IndirectHolder temp(rhs);
95  swap(temp);
96  return *this;
97  }
void swap(IndirectHolder &other)
template<typename T >
void const * edm::reftobase::IndirectHolder< T >::product ( ) const
inlinevirtual

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

Definition at line 147 of file IndirectHolder.h.

147  {
148  return helper_->product();
149  }
virtual void const * product() const =0
template<typename T >
EDProductGetter const * edm::reftobase::IndirectHolder< T >::productGetter ( ) const
inlinevirtual

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

Definition at line 135 of file IndirectHolder.h.

135  {
136  return helper_->productGetter();
137  }
virtual EDProductGetter const * productGetter() const =0
template<typename T >
void edm::reftobase::IndirectHolder< T >::swap ( IndirectHolder< T > &  other)
inline

Definition at line 83 of file IndirectHolder.h.

References edm::reftobase::IndirectHolder< T >::helper_, edm::reftobase::BaseHolder< T >::swap(), and std::swap().

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

84  {
85  this->BaseHolder<T>::swap(other);
86  std::swap(helper_, other.helper_);
87  }
void swap(BaseHolder &)
Definition: BaseHolder.h:109
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)

Friends And Related Function Documentation

template<typename T>
friend class IndirectVectorHolder< T >
friend

Definition at line 61 of file IndirectHolder.h.

template<typename T>
friend class RefToBase< T >
friend

Definition at line 60 of file IndirectHolder.h.

Member Data Documentation

template<typename T>
RefHolderBase* edm::reftobase::IndirectHolder< T >::helper_
private