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>

Classes

class  RefProxy
 

Public Types

using const_reference = Ref< C, T, F > const
 
using difference = std::ptrdiff_t
 
using difference_type = difference
 
using iterator = RefVectorIterator< C, T, F >
 
using iterator_category = std::random_access_iterator_tag
 
using key_type = typename value_type::key_type
 
using keyIter = typename std::vector< key_type >::const_iterator
 
using MemberIter = typename std::vector< void const * >::const_iterator
 
using pointer = Ref< C, T, F > const *
 
using reference = const_reference
 
using value_type = Ref< C, T, F >
 

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 33 of file EDProductfwd.h.

Member Typedef Documentation

◆ const_reference

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

Definition at line 24 of file RefVectorIterator.h.

◆ difference

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

Definition at line 31 of file RefVectorIterator.h.

◆ difference_type

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
using edm::RefVectorIterator< C, T, F >::difference_type = difference

Definition at line 32 of file RefVectorIterator.h.

◆ iterator

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

Definition at line 30 of file RefVectorIterator.h.

◆ iterator_category

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
using edm::RefVectorIterator< C, T, F >::iterator_category = std::random_access_iterator_tag

Definition at line 22 of file RefVectorIterator.h.

◆ key_type

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

Definition at line 28 of file RefVectorIterator.h.

◆ keyIter

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

Definition at line 33 of file RefVectorIterator.h.

◆ MemberIter

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

Definition at line 34 of file RefVectorIterator.h.

◆ pointer

template<typename C, typename T = typename Ref<C>::value_type, typename F = typename Ref<C>::finder_type>
using edm::RefVectorIterator< C, T, F >::pointer = Ref<C, T, F> const*

Definition at line 27 of file RefVectorIterator.h.

◆ reference

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

Definition at line 25 of file RefVectorIterator.h.

◆ value_type

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

Definition at line 23 of file RefVectorIterator.h.

Constructor & Destructor Documentation

◆ RefVectorIterator() [1/3]

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 36 of file RefVectorIterator.h.

36 : 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_

◆ RefVectorIterator() [2/3]

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 38 of file RefVectorIterator.h.

39  : 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_

◆ RefVectorIterator() [3/3]

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 41 of file RefVectorIterator.h.

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

◆ key()

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 119 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_, edm::RefVectorIterator< C, T, F >::nestedRefVector_, and edm::RefVectorIterator< C, T, F >::refVector_.

119  {
120  if (refVector_)
121  return (*refVector_)[iter_].key();
122  return (*nestedRefVector_)[iter_].key();
123  }
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_

◆ operator!=()

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 113 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_.

113 { return this->iter_ != rhs.iter_; }
RefVector< C, T, F >::size_type iter_

◆ operator*()

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 46 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_, edm::RefVectorIterator< C, T, F >::nestedRefVector_, and edm::RefVectorIterator< C, T, F >::refVector_.

46  {
47  if (refVector_)
48  return (*refVector_)[iter_];
49  return (*nestedRefVector_)[iter_];
50  }
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_

◆ operator+()

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 99 of file RefVectorIterator.h.

References ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, and dqmiodumpmetadata::n.

99  {
100  iterator it(*this);
101  it.iter_ += n;
102  return it;
103  }
RefVectorIterator< C, T, F > iterator

◆ operator++() [1/2]

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 72 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_.

72  {
73  ++iter_;
74  return *this;
75  }
RefVector< C, T, F >::size_type iter_

◆ operator++() [2/2]

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 89 of file RefVectorIterator.h.

References ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, and edm::RefVectorIterator< C, T, F >::iter_.

89  {
90  iterator it(*this);
91  ++iter_;
92  return it;
93  }
RefVectorIterator< C, T, F > iterator
RefVector< C, T, F >::size_type iter_

◆ operator+=()

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 80 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_, and dqmiodumpmetadata::n.

80  {
81  iter_ += n;
82  return *this;
83  }
RefVector< C, T, F >::size_type iter_

◆ operator-() [1/2]

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 104 of file RefVectorIterator.h.

References ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, and dqmiodumpmetadata::n.

104  {
105  iterator it(*this);
106  it.iter_ -= n;
107  return it;
108  }
RefVectorIterator< C, T, F > iterator

◆ operator-() [2/2]

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 110 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_.

110 { return this->iter_ - rhs.iter_; }
RefVector< C, T, F >::size_type iter_

◆ operator--() [1/2]

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 76 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_.

76  {
77  --iter_;
78  return *this;
79  }
RefVector< C, T, F >::size_type iter_

◆ operator--() [2/2]

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 94 of file RefVectorIterator.h.

References ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, and edm::RefVectorIterator< C, T, F >::iter_.

94  {
95  iterator it(*this);
96  --iter_;
97  return it;
98  }
RefVectorIterator< C, T, F > iterator
RefVector< C, T, F >::size_type iter_

◆ operator-=()

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 84 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_, and dqmiodumpmetadata::n.

84  {
85  iter_ -= n;
86  return *this;
87  }
RefVector< C, T, F >::size_type iter_

◆ operator->()

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 67 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_, edm::RefVectorIterator< C, T, F >::nestedRefVector_, and edm::RefVectorIterator< C, T, F >::refVector_.

67  {
68  if (refVector_)
69  return RefProxy(value_type((*refVector_)[iter_]));
70  return RefProxy(value_type((*nestedRefVector_)[iter_]));
71  }
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_

◆ operator<()

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 114 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_.

114 { return this->iter_ < rhs.iter_; }
RefVector< C, T, F >::size_type iter_

◆ operator<=()

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 116 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_.

116 { return this->iter_ <= rhs.iter_; }
RefVector< C, T, F >::size_type iter_

◆ operator==()

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 112 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_.

112 { return this->iter_ == rhs.iter_; }
RefVector< C, T, F >::size_type iter_

◆ operator>()

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 115 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_.

115 { return this->iter_ > rhs.iter_; }
RefVector< C, T, F >::size_type iter_

◆ operator>=()

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 117 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_.

117 { return this->iter_ >= rhs.iter_; }
RefVector< C, T, F >::size_type iter_

◆ operator[]()

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 51 of file RefVectorIterator.h.

References edm::RefVectorIterator< C, T, F >::iter_, dqmiolumiharvest::j, dqmiodumpmetadata::n, edm::RefVectorIterator< C, T, F >::nestedRefVector_, and edm::RefVectorIterator< C, T, F >::refVector_.

51  {
53  if (refVector_)
54  return (*refVector_)[j];
55  return (*nestedRefVector_)[j];
56  }
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

◆ iter_

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

◆ nestedRefVector_

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

◆ refVector_

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