CMS 3D CMS Logo

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

#include <IndirectHolder.h>

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

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 Types inherited from edm::reftobase::BaseVectorHolder< T >
typedef RefToBase< Tbase_ref_type
 
typedef T element_type
 
typedef size_t 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 (const IndirectVectorHolder &other)
 
 IndirectVectorHolder (boost::shared_ptr< RefVectorHolderBase > p)
 
 IndirectVectorHolder (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 ()
 
- Public Member Functions inherited from edm::reftobase::BaseVectorHolder< T >
 BaseVectorHolder ()
 
void swap (BaseVectorHolder &)
 
virtual ~BaseVectorHolder ()
 

Static Public Member Functions

static short Class_Version ()
 
- Static Public Member Functions inherited from edm::reftobase::BaseVectorHolder< T >
static short Class_Version ()
 

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 16 of file IndirectHolder.h.

Member Typedef Documentation

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.

Definition at line 17 of file IndirectVectorHolder.h.

Definition at line 16 of file IndirectVectorHolder.h.

Constructor & Destructor Documentation

Definition at line 105 of file IndirectVectorHolder.h.

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

Definition at line 116 of file IndirectVectorHolder.h.

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

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

Definition at line 112 of file IndirectVectorHolder.h.

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

Definition at line 120 of file IndirectVectorHolder.h.

120  {
121  delete helper_;
122  }

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.

177  {
178  return helper_ ? helper_->template getRef<T>( idx ) : typename IndirectVectorHolder<T>::base_ref_type();
179  }
template<typename T>
const_iterator edm::reftobase::IndirectVectorHolder< T >::begin ( void  ) const
inlinevirtual

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

Definition at line 96 of file IndirectVectorHolder.h.

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

96  {
97  return const_iterator( new const_iterator_imp_specific( helper_->begin() ) );
98  }
base_type::const_iterator const_iterator
virtual const_iterator begin() const =0
template<typename T>
static short edm::reftobase::IndirectVectorHolder< T >::Class_Version ( )
inlinestatic

Definition at line 56 of file IndirectVectorHolder.h.

58 :
59  typedef typename base_type::const_iterator_imp const_iterator_imp;
base_type::const_iterator_imp const_iterator_imp
template<typename T >
void edm::reftobase::IndirectVectorHolder< T >::clear ( void  )
virtual
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.

140  {
141  return new IndirectVectorHolder<T>(*this);
142  }
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.

146  {
147  return new IndirectVectorHolder<T>( helper_->cloneEmpty() );
148  }
virtual RefVectorHolderBase * cloneEmpty() const =0
template<typename T >
bool edm::reftobase::IndirectVectorHolder< T >::empty ( ) const
virtual
template<typename T>
const_iterator edm::reftobase::IndirectVectorHolder< T >::end ( void  ) const
inlinevirtual

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

Definition at line 99 of file IndirectVectorHolder.h.

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

Referenced by Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().

99  {
100  return const_iterator( new const_iterator_imp_specific( helper_->end() ) );
101  }
base_type::const_iterator const_iterator
virtual const_iterator end() const =0
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().

152  {
153  return helper_->id();
154  }
virtual ProductID id() const =0
template<typename T>
virtual bool edm::reftobase::IndirectVectorHolder< T >::isAvailable ( ) const
inlinevirtual

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().

53 { return helper_->isAvailable(); }
virtual bool isAvailable() const =0
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 groupFilesInBlocks::temp.

132  {
134  swap(temp);
135  return *this;
136  }
void swap(IndirectVectorHolder &other)
template<typename T>
virtual const void* edm::reftobase::IndirectVectorHolder< T >::product ( ) const
inlinevirtual
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.

157  {
158  return helper_->productGetter();
159  }
virtual EDProductGetter const * productGetter() const =0
template<typename T>
virtual void edm::reftobase::IndirectVectorHolder< T >::push_back ( const BaseHolder< T > *  r)
inlinevirtual

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(), alignCSCRings::r, and edm::Exception::throwThis().

39  {
40  typedef IndirectHolder<T> holder_type;
41  const holder_type * h = dynamic_cast<const holder_type *>( r );
42  if( h == 0 )
44  "In IndirectHolder<T> trying to push_back wrong reference type");
45  helper_->push_back( h->helper_ );
46  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
virtual void push_back(RefHolderBase const *r)=0
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.

167  {
168  return helper_->size();
169  }
virtual size_type size() const =0
template<typename T >
void edm::reftobase::IndirectVectorHolder< T >::swap ( IndirectVectorHolder< T > &  other)
inline

Definition at line 125 of file IndirectVectorHolder.h.

References edm::reftobase::BaseVectorHolder< T >::swap(), and std::swap().

125  {
126  this->BaseVectorHolder<T>::swap(other);
127  std::swap(helper_, other.helper_);
128  }
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
void swap(BaseVectorHolder &)
template<typename T>
virtual std::auto_ptr<reftobase::RefVectorHolderBase> edm::reftobase::IndirectVectorHolder< T >::vectorHolder ( ) const
inlinevirtual

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

Definition at line 36 of file IndirectVectorHolder.h.

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

36  {
37  return std::auto_ptr<reftobase::RefVectorHolderBase>( helper_->clone() );
38  }
virtual RefVectorHolderBase * clone() const =0

Member Data Documentation

template<typename T>
RefVectorHolderBase* edm::reftobase::IndirectVectorHolder< T >::helper_
private