OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits > Struct Template Reference

#include <SequenceIterator.h>

List of all members.

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

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

Definition at line 76 of file SequenceIterator.h.

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.

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

Definition at line 78 of file SequenceIterator.h.

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

Definition at line 79 of file SequenceIterator.h.

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

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

Definition at line 89 of file SequenceIterator.h.

00089 : seq_(), current_(0) {}

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

Definition at line 91 of file SequenceIterator.h.

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


Member Function Documentation

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

Definition at line 85 of file SequenceIterator.h.

00085                                       {
00086       return *static_cast<const Derived*>(this);
00087     }

template<typename Derived, typename IterTraits>
Derived& OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::as_derived (  )  [inline]
template<typename Derived, typename IterTraits>
static Derived OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::begin ( typename IterTraits::Sequence &  sequence  )  [inline, static]

Definition at line 216 of file SequenceIterator.h.

00216                                                                 {
00217       Derived iter(sequence);
00218       iter.current_ = 0;
00219       return iter;
00220     }

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

Definition at line 222 of file SequenceIterator.h.

00222                                                               {
00223       Derived iter(sequence);
00224       iter.current_ = sequence.length();
00225       return iter;
00226     }

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

Definition at line 93 of file SequenceIterator.h.

00093 { return current_; }

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

Definition at line 123 of file SequenceIterator.h.

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

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

Definition at line 97 of file SequenceIterator.h.

00097                                 {
00098       return (*seq_)[current_];
00099     }

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

Definition at line 176 of file SequenceIterator.h.

00177     {
00178       Derived iter(*this);
00179       iter.current_ += rhs.current_;
00180       return iter;
00181     }

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

Definition at line 150 of file SequenceIterator.h.

00151     {
00152       Derived iter(as_derived());
00153       iter.current_ += n;
00154       return iter;
00155     }

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

Definition at line 111 of file SequenceIterator.h.

00112     {
00113       Derived iter(as_derived());
00114       ++current_;
00115       return iter;
00116     }

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

Definition at line 105 of file SequenceIterator.h.

00106     {
00107       ++current_;
00108       return as_derived();
00109     }

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

Definition at line 170 of file SequenceIterator.h.

00171     {
00172       current_ += rhs.current_;
00173       return *this;
00174     }

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

Definition at line 144 of file SequenceIterator.h.

00145     {
00146       current_ += n;
00147       return as_derived();
00148     }

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

Definition at line 189 of file SequenceIterator.h.

00190     {
00191       Derived iter(as_derived());
00192       iter.current_ -= rhs.current_;
00193       return iter;
00194     }

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

Definition at line 163 of file SequenceIterator.h.

00164     {
00165       Derived iter(as_derived());
00166       iter.current_ -= n;
00167       return iter;
00168     }

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

Definition at line 133 of file SequenceIterator.h.

00134     {
00135       Derived iter(as_derived());
00136       --current_;
00137       return iter;
00138     }

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

Definition at line 127 of file SequenceIterator.h.

00128     {
00129       --current_;
00130       return as_derived();
00131     }

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

Definition at line 183 of file SequenceIterator.h.

00184     {
00185       current_ -= rhs.current_;
00186       return as_derived();
00187     }

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

Definition at line 157 of file SequenceIterator.h.

00158     {
00159       current_ -= n;
00160       return as_derived();
00161     }

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

Definition at line 101 of file SequenceIterator.h.

00101                                {
00102       return &(*seq_)[current_];
00103     }

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

Definition at line 196 of file SequenceIterator.h.

00197     {
00198       return current_ < rhs.current_;
00199     }

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

Definition at line 206 of file SequenceIterator.h.

00207     {
00208       return current_ <= rhs.current_;
00209     }

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

Definition at line 118 of file SequenceIterator.h.

00119     {
00120       return (seq_ == rhs.seq_) && (current_ == rhs.current_);
00121     }

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

Definition at line 201 of file SequenceIterator.h.

00202     {
00203       return current_ > rhs.current_;
00204     }

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

Definition at line 211 of file SequenceIterator.h.

00212     {
00213       return current_ >= rhs.current_;
00214     }

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

Definition at line 142 of file SequenceIterator.h.

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


Member Data Documentation

template<typename Derived, typename IterTraits>
difference_type OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::current_ [protected]
template<typename Derived, typename IterTraits>
IterTraits::Sequence* OpenDDS::DCPS::SequenceIteratorBase< Derived, IterTraits >::seq_ [protected]

The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1