CMS 3D CMS Logo

Classes | Public Types | Public Member Functions | Private Types | Private Attributes

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

#include <IndirectVectorHolder.h>

Inheritance diagram for edm::reftobase::IndirectVectorHolder< T >:
edm::reftobase::BaseVectorHolder< T >

List of all members.

Classes

struct  const_iterator_imp_specific

Public Types

typedef base_type::base_ref_type base_ref_type
typedef BaseVectorHolder< Tbase_type
typedef base_type::const_iterator const_iterator
typedef base_type::element_type element_type
typedef base_type::size_type size_type

Public Member Functions

virtual base_ref_type const at (size_type idx) const
const_iterator begin () const
virtual void clear ()
virtual BaseVectorHolder< T > * clone () const
virtual BaseVectorHolder< T > * cloneEmpty () const
virtual bool empty () const
const_iterator end () const
virtual ProductID id () const
 IndirectVectorHolder ()
 IndirectVectorHolder (RefVectorHolderBase *p)
 IndirectVectorHolder (const IndirectVectorHolder &other)
 IndirectVectorHolder (boost::shared_ptr< RefVectorHolderBase > p)
virtual bool isAvailable () const
IndirectVectorHolderoperator= (IndirectVectorHolder const &rhs)
virtual const void * product () const
virtual EDProductGetter const * productGetter () const
virtual void push_back (const BaseHolder< T > *r)
virtual size_type size () const
void swap (IndirectVectorHolder &other)
virtual std::auto_ptr
< reftobase::RefVectorHolderBase
vectorHolder () const
virtual ~IndirectVectorHolder ()

Private Types

typedef
base_type::const_iterator_imp 
const_iterator_imp

Private Attributes

RefVectorHolderBasehelper_

Detailed Description

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

Definition at line 13 of file IndirectVectorHolder.h.


Member Typedef Documentation

Reimplemented from edm::reftobase::BaseVectorHolder< T >.

Definition at line 18 of file IndirectVectorHolder.h.

Definition at line 15 of file IndirectVectorHolder.h.

Definition at line 19 of file IndirectVectorHolder.h.

Definition at line 59 of file IndirectVectorHolder.h.

Reimplemented from edm::reftobase::BaseVectorHolder< T >.

Definition at line 17 of file IndirectVectorHolder.h.

Reimplemented from edm::reftobase::BaseVectorHolder< T >.

Definition at line 16 of file IndirectVectorHolder.h.


Constructor & Destructor Documentation

Definition at line 105 of file IndirectVectorHolder.h.

: BaseVectorHolder<T>(), helper_( 0 ) { }
template<typename T >
edm::reftobase::IndirectVectorHolder< T >::IndirectVectorHolder ( const IndirectVectorHolder< T > &  other)

Definition at line 116 of file IndirectVectorHolder.h.

                                                                                      :
      BaseVectorHolder<T>(), helper_( other.helper_->clone() ) { }
template<typename T >
edm::reftobase::IndirectVectorHolder< T >::IndirectVectorHolder ( boost::shared_ptr< RefVectorHolderBase p)

Definition at line 108 of file IndirectVectorHolder.h.

                                                                                        :
      BaseVectorHolder<T>(), helper_(p->clone()) { }

Definition at line 112 of file IndirectVectorHolder.h.

                                                                         :
      BaseVectorHolder<T>(), helper_(p) { }
template<typename T >
edm::reftobase::IndirectVectorHolder< T >::~IndirectVectorHolder ( ) [virtual]

Definition at line 120 of file IndirectVectorHolder.h.

                                                   {
      delete helper_;
    }

Member Function Documentation

template<typename T >
IndirectVectorHolder< T >::base_ref_type const edm::reftobase::IndirectVectorHolder< T >::at ( size_type  idx) const [virtual]

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

Definition at line 177 of file IndirectVectorHolder.h.

                                                                                                       {
      return helper_ ? helper_->template getRef<T>( idx ) : typename IndirectVectorHolder<T>::base_ref_type();
    }
template<typename T>
const_iterator edm::reftobase::IndirectVectorHolder< T >::begin ( void  ) const [inline, virtual]

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

Definition at line 96 of file IndirectVectorHolder.h.

References edm::reftobase::RefVectorHolderBase::begin(), and edm::reftobase::IndirectVectorHolder< T >::helper_.

                                   {
        return const_iterator( new const_iterator_imp_specific( helper_->begin() ) );
      }
template<typename T >
void edm::reftobase::IndirectVectorHolder< T >::clear ( void  ) [virtual]

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

Definition at line 172 of file IndirectVectorHolder.h.

                                        {
      return helper_->clear();
    }
template<typename T >
BaseVectorHolder< T > * edm::reftobase::IndirectVectorHolder< T >::clone ( void  ) const [virtual]

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

Definition at line 140 of file IndirectVectorHolder.h.

                                         {
      return new IndirectVectorHolder<T>(*this);
    }
template<typename T >
BaseVectorHolder< T > * edm::reftobase::IndirectVectorHolder< T >::cloneEmpty ( ) const [virtual]

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

Definition at line 146 of file IndirectVectorHolder.h.

                                              {
      return new IndirectVectorHolder<T>( helper_->cloneEmpty() );
    }
template<typename T >
bool edm::reftobase::IndirectVectorHolder< T >::empty ( ) const [virtual]

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

Definition at line 162 of file IndirectVectorHolder.h.

                                              {
      return helper_->empty();
    }
template<typename T>
const_iterator edm::reftobase::IndirectVectorHolder< T >::end ( void  ) const [inline, virtual]

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

Definition at line 99 of file IndirectVectorHolder.h.

References edm::reftobase::RefVectorHolderBase::end(), and edm::reftobase::IndirectVectorHolder< T >::helper_.

                                 {
        return const_iterator( new const_iterator_imp_specific( helper_->end() ) );
      }
template<typename T >
ProductID edm::reftobase::IndirectVectorHolder< T >::id ( void  ) const [virtual]

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

Definition at line 152 of file IndirectVectorHolder.h.

References edm::ProductID::id().

                                      {
      return helper_->id();
    }
template<typename T>
virtual bool edm::reftobase::IndirectVectorHolder< 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::BaseVectorHolder< T >.

Definition at line 53 of file IndirectVectorHolder.h.

References edm::reftobase::IndirectVectorHolder< T >::helper_, and edm::reftobase::RefVectorHolderBase::isAvailable().

{ return helper_->isAvailable(); }
template<typename T >
IndirectVectorHolder< T > & edm::reftobase::IndirectVectorHolder< T >::operator= ( IndirectVectorHolder< T > const &  rhs) [inline]

Definition at line 132 of file IndirectVectorHolder.h.

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

                                                                      {
      IndirectVectorHolder temp(rhs);
      swap(temp);
      return *this;
    }
template<typename T>
virtual const void* edm::reftobase::IndirectVectorHolder< T >::product ( ) const [inline, virtual]
template<typename T >
EDProductGetter const * edm::reftobase::IndirectVectorHolder< T >::productGetter ( ) const [virtual]

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

Definition at line 157 of file IndirectVectorHolder.h.

                                                                        {
      return helper_->productGetter();
    }
template<typename T>
virtual void edm::reftobase::IndirectVectorHolder< T >::push_back ( const BaseHolder< T > *  r) [inline, virtual]

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

Definition at line 39 of file IndirectVectorHolder.h.

References h, edm::reftobase::IndirectVectorHolder< T >::helper_, edm::errors::InvalidReference, edm::reftobase::RefVectorHolderBase::push_back(), csvReporter::r, and edm::Exception::throwThis().

                                                        {
        typedef IndirectHolder<T> holder_type;
        const holder_type * h = dynamic_cast<const holder_type *>( r );
        if( h == 0 )
          Exception::throwThis( errors::InvalidReference,
            "In IndirectHolder<T> trying to push_back wrong reference type");
        helper_->push_back( h->helper_ );
      }
template<typename T >
IndirectVectorHolder< T >::size_type edm::reftobase::IndirectVectorHolder< T >::size ( void  ) const [virtual]

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

Definition at line 167 of file IndirectVectorHolder.h.

                                                                                  {
      return helper_->size();
    }
template<typename T >
void edm::reftobase::IndirectVectorHolder< T >::swap ( IndirectVectorHolder< T > &  other) [inline]
template<typename T>
virtual std::auto_ptr<reftobase::RefVectorHolderBase> edm::reftobase::IndirectVectorHolder< T >::vectorHolder ( ) const [inline, virtual]

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

Definition at line 36 of file IndirectVectorHolder.h.

References edm::reftobase::RefVectorHolderBase::clone(), and edm::reftobase::IndirectVectorHolder< T >::helper_.

                                                                             {
        return std::auto_ptr<reftobase::RefVectorHolderBase>( helper_->clone() );
      }

Member Data Documentation