#include <IndirectHolder.h>
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 (boost::shared_ptr< RefHolderBase > p) | |
IndirectHolder () | |
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 |
IndirectHolder & | operator= (IndirectHolder const &rhs) |
virtual void const * | product () const |
virtual EDProductGetter const * | productGetter () const |
void | swap (IndirectHolder &other) |
virtual | ~IndirectHolder () |
Private Attributes | |
RefHolderBase * | helper_ |
Friends | |
class | IndirectVectorHolder< T > |
class | RefToBase< T > |
Definition at line 25 of file IndirectHolder.h.
edm::reftobase::IndirectHolder< T >::IndirectHolder | ( | ) | [inline] |
Definition at line 30 of file IndirectHolder.h.
: BaseHolder<T>(), helper_( 0 ) { }
edm::reftobase::IndirectHolder< T >::IndirectHolder | ( | boost::shared_ptr< RefHolderBase > | p | ) | [inline] |
Definition at line 70 of file IndirectHolder.h.
edm::reftobase::IndirectHolder< T >::IndirectHolder | ( | IndirectHolder< T > const & | other | ) | [inline] |
Definition at line 76 of file IndirectHolder.h.
: BaseHolder<T>(other), helper_(other.helper_->clone()) { }
edm::reftobase::IndirectHolder< T >::~IndirectHolder | ( | ) | [virtual] |
Definition at line 100 of file IndirectHolder.h.
{ delete helper_; }
BaseHolder< T > * edm::reftobase::IndirectHolder< T >::clone | ( | void | ) | const [virtual] |
Implements edm::reftobase::BaseHolder< T >.
Definition at line 107 of file IndirectHolder.h.
{ return new IndirectHolder<T>(*this); }
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.
T const * edm::reftobase::IndirectHolder< T >::getPtr | ( | ) | const [virtual] |
Implements edm::reftobase::BaseHolder< T >.
Definition at line 114 of file IndirectHolder.h.
{ return helper_-> template getPtr<T>(); }
bool edm::reftobase::IndirectHolder< T >::hasProductCache | ( | ) | const [inline, virtual] |
Implements edm::reftobase::BaseHolder< T >.
Definition at line 141 of file IndirectHolder.h.
{ return helper_->hasProductCache(); }
std::auto_ptr< RefHolderBase > edm::reftobase::IndirectHolder< T >::holder | ( | ) | const [virtual] |
Implements edm::reftobase::BaseHolder< T >.
Definition at line 168 of file IndirectHolder.h.
{ return std::auto_ptr<RefHolderBase>( helper_->clone() ); }
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().
{ return helper_->id(); }
virtual bool edm::reftobase::IndirectHolder< T >::isAvailable | ( | ) | const [inline, virtual] |
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.
References edm::reftobase::IndirectHolder< T >::helper_, and edm::reftobase::RefHolderBase::isAvailable().
{ return helper_->isAvailable(); }
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().
{ IndirectHolder const* h = dynamic_cast<IndirectHolder const*>(&rhs); return h && helper_->isEqualTo(*h->helper_); }
size_t edm::reftobase::IndirectHolder< T >::key | ( | ) | const [virtual] |
Implements edm::reftobase::BaseHolder< T >.
Definition at line 128 of file IndirectHolder.h.
{ return helper_->key(); }
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().
{ return helper_->makeVectorHolder(); }
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().
{ std::auto_ptr<RefVectorHolderBase> p = helper_->makeVectorHolder(); boost::shared_ptr<RefVectorHolderBase> sp( p ); return std::auto_ptr<BaseVectorHolder<T> >( new IndirectVectorHolder<T>( sp ) ); }
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.
{ IndirectHolder temp(rhs); swap(temp); return *this; }
void const * edm::reftobase::IndirectHolder< T >::product | ( | ) | const [inline, virtual] |
Implements edm::reftobase::BaseHolder< T >.
Definition at line 147 of file IndirectHolder.h.
{ return helper_->product(); }
EDProductGetter const * edm::reftobase::IndirectHolder< T >::productGetter | ( | ) | const [inline, virtual] |
Implements edm::reftobase::BaseHolder< T >.
Definition at line 135 of file IndirectHolder.h.
{ return helper_->productGetter(); }
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 edm::reftobase::swap().
Referenced by edm::reftobase::swap().
{ this->BaseHolder<T>::swap(other); std::swap(helper_, other.helper_); }
friend class IndirectVectorHolder< T > [friend] |
Definition at line 61 of file IndirectHolder.h.
Definition at line 60 of file IndirectHolder.h.
RefHolderBase* edm::reftobase::IndirectHolder< T >::helper_ [private] |
Definition at line 62 of file IndirectHolder.h.
Referenced by edm::reftobase::IndirectHolder< T >::isAvailable(), edm::reftobase::IndirectHolder< T >::isEqualTo(), and edm::reftobase::IndirectHolder< T >::swap().