CMS 3D CMS Logo

Public Member Functions | Private Attributes | Friends

edm::reftobase::IndirectHolder< T > Class Template Reference

#include <IndirectHolder.h>

Inheritance diagram for edm::reftobase::IndirectHolder< T >:
edm::reftobase::BaseHolder< T >

List of all members.

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
IndirectHolderoperator= (IndirectHolder const &rhs)
virtual void const * product () const
virtual EDProductGetter const * productGetter () const
void swap (IndirectHolder &other)
virtual ~IndirectHolder ()

Private Attributes

RefHolderBasehelper_

Friends

class IndirectVectorHolder< T >
class RefToBase< T >

Detailed Description

template<typename T>
class edm::reftobase::IndirectHolder< T >

Definition at line 25 of file IndirectHolder.h.


Constructor & Destructor Documentation

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

Definition at line 30 of file IndirectHolder.h.

: 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.

                                                                      :
      BaseHolder<T>(), helper_(p->clone()) 
    { }
template<typename T >
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()) 
    { }
template<typename T >
edm::reftobase::IndirectHolder< T >::~IndirectHolder ( ) [virtual]

Definition at line 100 of file IndirectHolder.h.

    {
      delete helper_;
    }

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.

    {
      return new IndirectHolder<T>(*this);
    }
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.

    {
      return helper_->fillRefIfMyTypeMatches(fillme, msg);
    }
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.

    {
     return helper_-> template getPtr<T>();
    }
template<typename 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();
    }
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.

                                                               { 
      return std::auto_ptr<RefHolderBase>( helper_->clone() ); 
    }
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().

    {
      return helper_->id();
    }
template<typename T>
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(); }
template<typename T >
bool edm::reftobase::IndirectHolder< T >::isEqualTo ( BaseHolder< T > const &  rhs) const [virtual]
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.

    {
      return helper_->key();
    }
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().

                                                                                   {
      return helper_->makeVectorHolder();
    }
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().

                                                                                {
      std::auto_ptr<RefVectorHolderBase> p = helper_->makeVectorHolder();
      boost::shared_ptr<RefVectorHolderBase> sp( p );
      return std::auto_ptr<BaseVectorHolder<T> >( new IndirectVectorHolder<T>( sp ) );
    }
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.

    {
      IndirectHolder temp(rhs);
      swap(temp);
      return *this;
    }
template<typename T >
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();
    }
template<typename T >
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();
    }
template<typename T >
void edm::reftobase::IndirectHolder< T >::swap ( IndirectHolder< T > &  other) [inline]

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]