CMS 3D CMS Logo

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

#include <AssociativeIterator.h>

Inheritance diagram for edm::View< T >:
edm::ViewBase

Public Types

typedef
boost::indirect_iterator
< typename
seq_t::const_iterator > 
const_iterator
 
typedef T const * const_pointer
 
typedef T const & const_reference
 
typedef
boost::indirect_iterator
< typename
seq_t::const_reverse_iterator > 
const_reverse_iterator
 
typedef seq_t::difference_type difference_type
 
typedef T const * pointer
 
typedef T const & reference
 
typedef unsigned int size_type
 
typedef T value_type
 

Public Member Functions

const_reference at (size_type pos) const
 
const_reference back () const
 
const_iterator begin () const
 
size_type capacity () const
 
bool empty () const
 
const_iterator end () const
 
const_reference front () const
 
ProductID id () const
 
size_type max_size () const
 
Viewoperator= (View const &rhs)
 
const_reference operator[] (size_type pos) const
 
void pop_back ()
 
void const * product () const
 
EDProductGetter const * productGetter () const
 
Ptr< value_typeptrAt (size_type i) const
 
std::vector< Ptr< value_type >
> const & 
ptrs () const
 
const_reverse_iterator rbegin () const
 
RefToBase< value_typerefAt (size_type i) const
 
const_reverse_iterator rend () const
 
size_type size () const
 
void swap (View &other)
 
 View ()
 
 View (std::vector< void const * > const &pointers, helper_vector_ptr const &helpers)
 
virtual ~View ()
 
- Public Member Functions inherited from edm::ViewBase
ViewBaseclone () const
 
virtual ~ViewBase ()
 

Static Public Member Functions

static void fill_from_range (T *first, T *last, View &output)
 

Private Types

typedef std::vector< T const * > seq_t
 

Private Member Functions

ViewBasedoClone () const
 

Private Attributes

seq_t items_
 
PtrVector< Tptrs_
 
RefToBaseVector< Trefs_
 
std::vector< Ptr< value_type > > vPtrs_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::ViewBase
ViewBaseoperator= (ViewBase const &)
 
void swap (ViewBase &)
 
 ViewBase ()
 
 ViewBase (ViewBase const &)
 

Detailed Description

template<class T>
class edm::View< T >

Class template View<T>

View<T> provides a way to allow reference to the elements (of type T) of some collection in an Event, without knowing about the type of the collection itself. For example, View<int> can refer to the ints in either a vector<int> or a list<int>, without the client code knowing about which type of container manages the ints.

View<T> is not persistable.

View<T> can be used to reference objects of any type that has T as a public base.

Definition at line 46 of file AssociativeIterator.h.

Member Typedef Documentation

template<class T>
typedef boost::indirect_iterator<typename seq_t::const_iterator> edm::View< T >::const_iterator

Definition at line 81 of file View.h.

template<class T>
typedef T const* edm::View< T >::const_pointer

Definition at line 74 of file View.h.

template<class T>
typedef T const& edm::View< T >::const_reference

Definition at line 77 of file View.h.

template<class T>
typedef boost::indirect_iterator<typename seq_t::const_reverse_iterator> edm::View< T >::const_reverse_iterator

Definition at line 88 of file View.h.

template<class T>
typedef seq_t::difference_type edm::View< T >::difference_type

Definition at line 86 of file View.h.

template<class T>
typedef T const* edm::View< T >::pointer

Definition at line 73 of file View.h.

template<class T>
typedef T const& edm::View< T >::reference

Definition at line 76 of file View.h.

template<class T>
typedef std::vector<T const*> edm::View< T >::seq_t
private

Definition at line 71 of file View.h.

template<class T>
typedef unsigned int edm::View< T >::size_type

Definition at line 85 of file View.h.

template<class T>
typedef T edm::View< T >::value_type

Definition at line 79 of file View.h.

Constructor & Destructor Documentation

template<class T>
edm::View< T >::View ( )
template<class T>
edm::View< T >::View ( std::vector< void const * > const &  pointers,
helper_vector_ptr const &  helpers 
)
template<class T>
virtual edm::View< T >::~View ( )
virtual

Member Function Documentation

template<class T>
const_reference edm::View< T >::at ( size_type  pos) const
template<class T>
const_reference edm::View< T >::back ( ) const
template<class T>
const_iterator edm::View< T >::begin ( ) const
template<class T>
size_type edm::View< T >::capacity ( ) const
template<class T>
ViewBase* edm::View< T >::doClone ( ) const
privatevirtual

Implements edm::ViewBase.

template<class T>
bool edm::View< T >::empty ( ) const
template<class T>
const_iterator edm::View< T >::end ( ) const
template<class T>
static void edm::View< T >::fill_from_range ( T first,
T last,
View< T > &  output 
)
static
template<class T>
const_reference edm::View< T >::front ( ) const
template<class T>
ProductID edm::View< T >::id ( ) const
template<class T>
size_type edm::View< T >::max_size ( ) const
template<class T>
View& edm::View< T >::operator= ( View< T > const &  rhs)
template<class T>
const_reference edm::View< T >::operator[] ( size_type  pos) const
template<class T>
void edm::View< T >::pop_back ( )
template<class T>
void const* edm::View< T >::product ( ) const
inline

Definition at line 138 of file View.h.

138  {
139  return refs_.product();
140  }
RefToBaseVector< T > refs_
Definition: View.h:144
template<class T>
EDProductGetter const* edm::View< T >::productGetter ( ) const
template<class T>
Ptr<value_type> edm::View< T >::ptrAt ( size_type  i) const
template<class T>
std::vector<Ptr<value_type> > const& edm::View< T >::ptrs ( ) const
template<class T>
const_reverse_iterator edm::View< T >::rbegin ( ) const
template<class T>
RefToBase<value_type> edm::View< T >::refAt ( size_type  i) const
template<class T>
const_reverse_iterator edm::View< T >::rend ( ) const
template<class T>
size_type edm::View< T >::size ( ) const
template<class T>
void edm::View< T >::swap ( View< T > &  other)

Member Data Documentation

template<class T>
seq_t edm::View< T >::items_
private

Definition at line 143 of file View.h.

template<class T>
PtrVector<T> edm::View< T >::ptrs_
private

Definition at line 145 of file View.h.

template<class T>
RefToBaseVector<T> edm::View< T >::refs_
private

Definition at line 144 of file View.h.

Referenced by edm::View< reco::PFTau >::product().

template<class T>
std::vector<Ptr<value_type> > edm::View< T >::vPtrs_
mutableprivate

Definition at line 146 of file View.h.