CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Attributes
edm::RefVectorIterator< C, T, F > Class Template Reference

#include <EDProductfwd.h>

Inheritance diagram for edm::RefVectorIterator< C, T, F >:

Classes

class  RefProxy
 

Public Types

typedef Ref< C, T, F > const const_reference
 
typedef std::ptrdiff_t difference
 
typedef RefVectorIterator< C, T, Fiterator
 
typedef value_type::key_type key_type
 
typedef std::vector< key_type >::const_iterator keyIter
 
typedef std::vector< void const * >::const_iterator MemberIter
 
typedef const_reference reference
 
typedef Ref< C, T, Fvalue_type
 

Public Member Functions

key_type key () const
 
bool operator!= (iterator const &rhs) const
 
reference operator* () const
 
iterator operator+ (difference n) const
 
iteratoroperator++ ()
 
iterator operator++ (int)
 
iteratoroperator+= (difference n)
 
iterator operator- (difference n) const
 
difference operator- (iterator const &rhs) const
 
iteratoroperator-- ()
 
iterator operator-- (int)
 
iteratoroperator-= (difference n)
 
RefProxy operator-> () const
 
bool operator< (iterator const &rhs) const
 
bool operator<= (iterator const &rhs) const
 
bool operator== (iterator const &rhs) const
 
bool operator> (iterator const &rhs) const
 
bool operator>= (iterator const &rhs) const
 
reference operator[] (difference n) const
 
 RefVectorIterator ()
 
 RefVectorIterator (RefVector< C, T, F > const *refVector, typename RefVector< C, T, F >::size_type iter)
 
 RefVectorIterator (RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const *refVector, typename RefVector< C, T, F >::size_type iter)
 

Private Attributes

RefVector< C, T, F >::size_type iter_
 
RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const * nestedRefVector_
 
RefVector< C, T, F > const * refVector_
 

Detailed Description

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
class edm::RefVectorIterator< C, T, F >

Definition at line 26 of file EDProductfwd.h.

Member Typedef Documentation

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
typedef Ref<C, T, F> const edm::RefVectorIterator< C, T, F >::const_reference

Definition at line 23 of file RefVectorIterator.h.

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
typedef std::ptrdiff_t edm::RefVectorIterator< C, T, F >::difference

Definition at line 29 of file RefVectorIterator.h.

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
typedef RefVectorIterator<C, T, F> edm::RefVectorIterator< C, T, F >::iterator

Definition at line 28 of file RefVectorIterator.h.

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
typedef value_type::key_type edm::RefVectorIterator< C, T, F >::key_type

Definition at line 26 of file RefVectorIterator.h.

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
typedef std::vector<key_type>::const_iterator edm::RefVectorIterator< C, T, F >::keyIter

Definition at line 30 of file RefVectorIterator.h.

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
typedef std::vector<void const*>::const_iterator edm::RefVectorIterator< C, T, F >::MemberIter

Definition at line 31 of file RefVectorIterator.h.

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
typedef const_reference edm::RefVectorIterator< C, T, F >::reference

Definition at line 24 of file RefVectorIterator.h.

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
typedef Ref<C, T, F> edm::RefVectorIterator< C, T, F >::value_type

Definition at line 22 of file RefVectorIterator.h.

Constructor & Destructor Documentation

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
edm::RefVectorIterator< C, T, F >::RefVectorIterator ( )
inline

Definition at line 33 of file RefVectorIterator.h.

33 : refVector_(nullptr), nestedRefVector_(nullptr), iter_(0) {}
RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const * nestedRefVector_
RefVector< C, T, F > const * refVector_
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
edm::RefVectorIterator< C, T, F >::RefVectorIterator ( RefVector< C, T, F > const *  refVector,
typename RefVector< C, T, F >::size_type  iter 
)
inlineexplicit

Definition at line 35 of file RefVectorIterator.h.

36  :
37  refVector_(refVector), nestedRefVector_(nullptr), iter_(iter) {}
RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const * nestedRefVector_
RefVector< C, T, F > const * refVector_
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
edm::RefVectorIterator< C, T, F >::RefVectorIterator ( RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const *  refVector,
typename RefVector< C, T, F >::size_type  iter 
)
inlineexplicit

Definition at line 39 of file RefVectorIterator.h.

40  :
41  refVector_(nullptr), nestedRefVector_(refVector), iter_(iter) {}
RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const * nestedRefVector_
RefVector< C, T, F > const * refVector_
RefVector< C, T, F >::size_type iter_

Member Function Documentation

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
key_type edm::RefVectorIterator< C, T, F >::key ( ) const
inline

Definition at line 84 of file RefVectorIterator.h.

84  {
85  if(refVector_) return (*refVector_)[iter_].key();
86  return (*nestedRefVector_)[iter_].key();
87  }
RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const * nestedRefVector_
RefVector< C, T, F > const * refVector_
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
bool edm::RefVectorIterator< C, T, F >::operator!= ( iterator const &  rhs) const
inline

Definition at line 78 of file RefVectorIterator.h.

78 {return this->iter_ != rhs.iter_;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
reference edm::RefVectorIterator< C, T, F >::operator* ( ) const
inline

Definition at line 43 of file RefVectorIterator.h.

43  {
44  if(refVector_) return (*refVector_)[iter_];
45  return (*nestedRefVector_)[iter_];
46  }
RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const * nestedRefVector_
RefVector< C, T, F > const * refVector_
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
iterator edm::RefVectorIterator< C, T, F >::operator+ ( difference  n) const
inline

Definition at line 72 of file RefVectorIterator.h.

72 {iterator it(*this); it.iter_+=n; return it;}
RefVectorIterator< C, T, F > iterator
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
iterator& edm::RefVectorIterator< C, T, F >::operator++ ( )
inline

Definition at line 65 of file RefVectorIterator.h.

65 {++iter_; return *this;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
iterator edm::RefVectorIterator< C, T, F >::operator++ ( int  )
inline

Definition at line 70 of file RefVectorIterator.h.

70 {iterator it(*this); ++iter_; return it;}
RefVectorIterator< C, T, F > iterator
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
iterator& edm::RefVectorIterator< C, T, F >::operator+= ( difference  n)
inline

Definition at line 67 of file RefVectorIterator.h.

67 {iter_ += n; return *this;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
iterator edm::RefVectorIterator< C, T, F >::operator- ( difference  n) const
inline

Definition at line 73 of file RefVectorIterator.h.

73 {iterator it(*this); it.iter_-=n; return it;}
RefVectorIterator< C, T, F > iterator
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
difference edm::RefVectorIterator< C, T, F >::operator- ( iterator const &  rhs) const
inline

Definition at line 75 of file RefVectorIterator.h.

75 {return this->iter_ - rhs.iter_;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
iterator& edm::RefVectorIterator< C, T, F >::operator-- ( )
inline

Definition at line 66 of file RefVectorIterator.h.

66 {--iter_; return *this;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
iterator edm::RefVectorIterator< C, T, F >::operator-- ( int  )
inline

Definition at line 71 of file RefVectorIterator.h.

71 {iterator it(*this); --iter_; return it;}
RefVectorIterator< C, T, F > iterator
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
iterator& edm::RefVectorIterator< C, T, F >::operator-= ( difference  n)
inline

Definition at line 68 of file RefVectorIterator.h.

68 {iter_ -= n; return *this;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
RefProxy edm::RefVectorIterator< C, T, F >::operator-> ( ) const
inline

Definition at line 61 of file RefVectorIterator.h.

61  {
62  if(refVector_) return RefProxy(value_type((*refVector_)[iter_]));
63  return RefProxy(value_type((*nestedRefVector_)[iter_]));
64  }
RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const * nestedRefVector_
RefVector< C, T, F > const * refVector_
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
bool edm::RefVectorIterator< C, T, F >::operator< ( iterator const &  rhs) const
inline

Definition at line 79 of file RefVectorIterator.h.

79 {return this->iter_ < rhs.iter_;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
bool edm::RefVectorIterator< C, T, F >::operator<= ( iterator const &  rhs) const
inline

Definition at line 81 of file RefVectorIterator.h.

81 {return this->iter_ <= rhs.iter_;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
bool edm::RefVectorIterator< C, T, F >::operator== ( iterator const &  rhs) const
inline

Definition at line 77 of file RefVectorIterator.h.

77 {return this->iter_ == rhs.iter_;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
bool edm::RefVectorIterator< C, T, F >::operator> ( iterator const &  rhs) const
inline

Definition at line 80 of file RefVectorIterator.h.

80 {return this->iter_ > rhs.iter_;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
bool edm::RefVectorIterator< C, T, F >::operator>= ( iterator const &  rhs) const
inline

Definition at line 82 of file RefVectorIterator.h.

82 {return this->iter_ >= rhs.iter_;}
RefVector< C, T, F >::size_type iter_
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
reference edm::RefVectorIterator< C, T, F >::operator[] ( difference  n) const
inline

Definition at line 47 of file RefVectorIterator.h.

47  {
48  typename RefVector<C, T, F>::size_type j = iter_ + n;
49  if(refVector_) return (*refVector_)[j];
50  return (*nestedRefVector_)[j];
51  }
RefVector< RefVector< C, T, F >, T, typename refhelper::FindTrait< RefVector< C, T, F >, T >::value > const * nestedRefVector_
KeyVec::size_type size_type
Definition: RefVector.h:48
RefVector< C, T, F > const * refVector_
RefVector< C, T, F >::size_type iter_

Member Data Documentation

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
RefVector<C, T, F>::size_type edm::RefVectorIterator< C, T, F >::iter_
private
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
RefVector<RefVector<C, T, F>, T, typename refhelper::FindTrait<RefVector<C, T, F>, T>::value > const* edm::RefVectorIterator< C, T, F >::nestedRefVector_
private
template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
RefVector<C, T, F> const* edm::RefVectorIterator< C, T, F >::refVector_
private