OpenDDS  Snapshot(2023/04/07-19:43)
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits > Struct Template Reference

#include <SequenceIterator.h>

Public Types

typedef std::random_access_iterator_tag iterator_category
 
typedef int difference_type
 
typedef IterTraits::value_type value_type
 
typedef IterTraits::pointer pointer
 
typedef IterTraits::reference reference
 

Public Member Functions

Derived & as_derived ()
 
const Derived & as_derived () const
 
 SequenceIteratorBase ()
 
 SequenceIteratorBase (typename IterTraits::Sequence &sequence)
 
 operator difference_type () const
 
reference operator* () const
 
pointer operator-> () const
 
Derived & operator++ ()
 
Derived operator++ (int)
 
bool operator== (const Derived &rhs) const
 
bool operator!= (const Derived &rhs) const
 
Derived & operator-- ()
 
Derived operator-- (int)
 
reference operator[] (difference_type n) const
 
Derived & operator+= (difference_type n)
 
Derived operator+ (difference_type n) const
 
Derived & operator-= (difference_type n)
 
Derived operator- (difference_type n) const
 
Derived & operator+= (const Derived &rhs)
 
Derived operator+ (const Derived &rhs) const
 
Derived & operator-= (const Derived &rhs)
 
Derived operator- (const Derived &rhs) const
 
bool operator< (const Derived &rhs) const
 
bool operator> (const Derived &rhs) const
 
bool operator<= (const Derived &rhs) const
 
bool operator>= (const Derived &rhs) const
 

Static Public Member Functions

static Derived begin (typename IterTraits::Sequence &sequence)
 
static Derived end (typename IterTraits::Sequence &sequence)
 

Protected Attributes

IterTraits::Sequence * seq_
 
difference_type current_
 

Detailed Description

template<typename Derived, typename IterTraits>
struct OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >

Definition at line 73 of file SequenceIterator.h.

Member Typedef Documentation

◆ difference_type

template<typename Derived, typename IterTraits>
typedef int OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::difference_type

Definition at line 76 of file SequenceIterator.h.

◆ iterator_category

template<typename Derived, typename IterTraits>
typedef std::random_access_iterator_tag OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::iterator_category

Definition at line 75 of file SequenceIterator.h.

◆ pointer

template<typename Derived, typename IterTraits>
typedef IterTraits::pointer OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::pointer

Definition at line 78 of file SequenceIterator.h.

◆ reference

template<typename Derived, typename IterTraits>
typedef IterTraits::reference OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::reference

Definition at line 79 of file SequenceIterator.h.

◆ value_type

template<typename Derived, typename IterTraits>
typedef IterTraits::value_type OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::value_type

Definition at line 77 of file SequenceIterator.h.

Constructor & Destructor Documentation

◆ SequenceIteratorBase() [1/2]

template<typename Derived, typename IterTraits>
OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::SequenceIteratorBase ( )
inline

Definition at line 85 of file SequenceIterator.h.

◆ SequenceIteratorBase() [2/2]

template<typename Derived, typename IterTraits>
OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::SequenceIteratorBase ( typename IterTraits::Sequence &  sequence)
inlineexplicit

Definition at line 87 of file SequenceIterator.h.

87 : seq_(&sequence), current_(0) {}

Member Function Documentation

◆ as_derived() [1/2]

template<typename Derived, typename IterTraits>
Derived& OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::as_derived ( )
inline

Definition at line 81 of file SequenceIterator.h.

81 { return *static_cast<Derived*>(this); }

◆ as_derived() [2/2]

template<typename Derived, typename IterTraits>
const Derived& OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::as_derived ( ) const
inline

Definition at line 83 of file SequenceIterator.h.

83 { return *static_cast<const Derived*>(this); }

◆ begin()

template<typename Derived, typename IterTraits>
static Derived OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::begin ( typename IterTraits::Sequence &  sequence)
inlinestatic

Definition at line 208 of file SequenceIterator.h.

209  {
210  Derived iter(sequence);
211  iter.current_ = 0;
212  return iter;
213  }

◆ end()

template<typename Derived, typename IterTraits>
static Derived OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::end ( typename IterTraits::Sequence &  sequence)
inlinestatic

Definition at line 215 of file SequenceIterator.h.

216  {
217  Derived iter(sequence);
218  iter.current_ = sequence.length();
219  return iter;
220  }

◆ operator difference_type()

template<typename Derived, typename IterTraits>
OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator difference_type ( ) const
inline

Definition at line 89 of file SequenceIterator.h.

89 { return current_; }

◆ operator!=()

template<typename Derived, typename IterTraits>
bool OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator!= ( const Derived &  rhs) const
inline

Definition at line 115 of file SequenceIterator.h.

115 { return !(*this == rhs); }

◆ operator*()

template<typename Derived, typename IterTraits>
reference OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator* ( void  ) const
inline

Definition at line 93 of file SequenceIterator.h.

93 { return (*seq_)[current_]; }

◆ operator+() [1/2]

template<typename Derived, typename IterTraits>
Derived OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator+ ( difference_type  n) const
inline

Definition at line 142 of file SequenceIterator.h.

143  {
144  Derived iter(as_derived());
145  iter.current_ += n;
146  return iter;
147  }

◆ operator+() [2/2]

template<typename Derived, typename IterTraits>
Derived OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator+ ( const Derived &  rhs) const
inline

Definition at line 168 of file SequenceIterator.h.

169  {
170  Derived iter(*this);
171  iter.current_ += rhs.current_;
172  return iter;
173  }

◆ operator++() [1/2]

template<typename Derived, typename IterTraits>
Derived& OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator++ ( void  )
inline

Definition at line 97 of file SequenceIterator.h.

98  {
99  ++current_;
100  return as_derived();
101  }

◆ operator++() [2/2]

template<typename Derived, typename IterTraits>
Derived OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator++ ( int  )
inline

Definition at line 103 of file SequenceIterator.h.

104  {
105  Derived iter(as_derived());
106  ++current_;
107  return iter;
108  }

◆ operator+=() [1/2]

template<typename Derived, typename IterTraits>
Derived& OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator+= ( difference_type  n)
inline

Definition at line 136 of file SequenceIterator.h.

137  {
138  current_ += n;
139  return as_derived();
140  }

◆ operator+=() [2/2]

template<typename Derived, typename IterTraits>
Derived& OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator+= ( const Derived &  rhs)
inline

Definition at line 162 of file SequenceIterator.h.

163  {
164  current_ += rhs.current_;
165  return *this;
166  }

◆ operator-() [1/2]

template<typename Derived, typename IterTraits>
Derived OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator- ( difference_type  n) const
inline

Definition at line 155 of file SequenceIterator.h.

156  {
157  Derived iter(as_derived());
158  iter.current_ -= n;
159  return iter;
160  }

◆ operator-() [2/2]

template<typename Derived, typename IterTraits>
Derived OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator- ( const Derived &  rhs) const
inline

Definition at line 181 of file SequenceIterator.h.

182  {
183  Derived iter(as_derived());
184  iter.current_ -= rhs.current_;
185  return iter;
186  }

◆ operator--() [1/2]

template<typename Derived, typename IterTraits>
Derived& OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator-- ( void  )
inline

Definition at line 119 of file SequenceIterator.h.

120  {
121  --current_;
122  return as_derived();
123  }

◆ operator--() [2/2]

template<typename Derived, typename IterTraits>
Derived OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator-- ( int  )
inline

Definition at line 125 of file SequenceIterator.h.

126  {
127  Derived iter(as_derived());
128  --current_;
129  return iter;
130  }

◆ operator-=() [1/2]

template<typename Derived, typename IterTraits>
Derived& OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator-= ( difference_type  n)
inline

Definition at line 149 of file SequenceIterator.h.

150  {
151  current_ -= n;
152  return as_derived();
153  }

◆ operator-=() [2/2]

template<typename Derived, typename IterTraits>
Derived& OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator-= ( const Derived &  rhs)
inline

Definition at line 175 of file SequenceIterator.h.

176  {
177  current_ -= rhs.current_;
178  return as_derived();
179  }

◆ operator->()

template<typename Derived, typename IterTraits>
pointer OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator-> ( void  ) const
inline

Definition at line 95 of file SequenceIterator.h.

95 { return &(*seq_)[current_]; }

◆ operator<()

template<typename Derived, typename IterTraits>
bool OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator< ( const Derived &  rhs) const
inline

Definition at line 188 of file SequenceIterator.h.

189  {
190  return current_ < rhs.current_;
191  }

◆ operator<=()

template<typename Derived, typename IterTraits>
bool OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator<= ( const Derived &  rhs) const
inline

Definition at line 198 of file SequenceIterator.h.

199  {
200  return current_ <= rhs.current_;
201  }

◆ operator==()

template<typename Derived, typename IterTraits>
bool OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator== ( const Derived &  rhs) const
inline

Definition at line 110 of file SequenceIterator.h.

111  {
112  return (seq_ == rhs.seq_) && (current_ == rhs.current_);
113  }

◆ operator>()

template<typename Derived, typename IterTraits>
bool OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator> ( const Derived &  rhs) const
inline

Definition at line 193 of file SequenceIterator.h.

194  {
195  return current_ > rhs.current_;
196  }

◆ operator>=()

template<typename Derived, typename IterTraits>
bool OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator>= ( const Derived &  rhs) const
inline

Definition at line 203 of file SequenceIterator.h.

204  {
205  return current_ >= rhs.current_;
206  }

◆ operator[]()

template<typename Derived, typename IterTraits>
reference OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::operator[] ( difference_type  n) const
inline

Definition at line 134 of file SequenceIterator.h.

134 { return (*seq_)[n]; }

Member Data Documentation

◆ current_

template<typename Derived, typename IterTraits>
difference_type OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::current_
protected

Definition at line 224 of file SequenceIterator.h.

◆ seq_

template<typename Derived, typename IterTraits>
IterTraits::Sequence* OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::seq_
protected

Definition at line 223 of file SequenceIterator.h.


The documentation for this struct was generated from the following file: