faudes::TBaseSet< T, Cmp >::Iterator Class Reference

Iterator class for high-level api to TBaseSet. More...

#include <cfl_baseset.h>

List of all members.

Public Member Functions

 Iterator ()
 Default constructor, container unknown.
 Iterator (const TBaseSet< T, Cmp > *pBaseSet, const typename std::set< T, Cmp >::const_iterator &sit, bool att=false)
 Construct by members (used by TBaseSet to create temporary iterators).
 Iterator (const Iterator &fit)
 Copy constructor, copies container reference, incl attach.
 ~Iterator (void)
 Destructor.
std::string DStr (void) const
 report (debugging)
const Iteratoroperator= (const Iterator &rSrc)
 Assigment, tracks container.
void StlIterator (const typename std::set< T, Cmp >::const_iterator &sit)
 Assign STL iterator only.
const std::set< T, Cmp >
::const_iterator
StlIterator (void) const
 Get STL iterator only.
void Invalidate (void)
 Invalidate.
void Detach (void)
 Detach.
void DValid (void) const
 Check validity (provoke abort error).
const T * operator-> (void) const
 Reimplement dereference.
const T & operator* (void) const
 Reimplement derefernce.
bool operator== (const Iterator &rOther) const
 Reimplement ==.
bool operator!= (const Iterator &rOther) const
 Reimplement !=.
Iterator operator++ (int step)
 Reimplement postfix ++.
const Iteratoroperator++ (void)
 Reimplement prefix ++.
Iterator operator-- (int step)
 Reimplement postfix --.
const Iteratoroperator-- (void)
 Reimplement prefix --.

Public Attributes

const TBaseSet< T, Cmp > * pBaseSet
 Order by reference for containers of Iterators <.
bool mAttached
 Indicate that this iterator is attached to some baseset.

Detailed Description

template<class T, class Cmp = std::less<T>>
class faudes::TBaseSet< T, Cmp >::Iterator

Iterator class for high-level api to TBaseSet.

This class is derived from STL iterators to additionally provide a reference of the container to iterate on. This feature is used to adjust iterators when the actual set gets reallocated due to a Detach() operation. Inheritance is private to ensure that all high-level api functions maintain iteretor refernces consistently. Currently, high-level api iterators support the operators -> ,*, =, ++, --, ==, !=.

Technical detail: the private inheritance prohibits the direct use of stl algorithms on faudes Iterators. If you need direct access to stl algorithms from outside the faudes set class, you may turn to public inheritance. Make sure to Lock the relevant sets befor applying any stl algorithms.

Definition at line 404 of file cfl_baseset.h.


Constructor & Destructor Documentation

template<class T, class Cmp = std::less<T>>
faudes::TBaseSet< T, Cmp >::Iterator::Iterator (  )  [inline]

Default constructor, container unknown.

Definition at line 407 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
faudes::TBaseSet< T, Cmp >::Iterator::Iterator ( const TBaseSet< T, Cmp > *  pBaseSet,
const typename std::set< T, Cmp >::const_iterator sit,
bool  att = false 
) [inline]

Construct by members (used by TBaseSet to create temporary iterators).

Definition at line 414 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
faudes::TBaseSet< T, Cmp >::Iterator::Iterator ( const Iterator fit  )  [inline]

Copy constructor, copies container reference, incl attach.

Definition at line 429 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
faudes::TBaseSet< T, Cmp >::Iterator::~Iterator ( void   )  [inline]

Destructor.

Definition at line 441 of file cfl_baseset.h.


Member Function Documentation

template<class T, class Cmp = std::less<T>>
void faudes::TBaseSet< T, Cmp >::Iterator::Detach ( void   )  [inline]

Detach.

Definition at line 497 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
std::string faudes::TBaseSet< T, Cmp >::Iterator::DStr ( void   )  const [inline]

report (debugging)

Definition at line 446 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
void faudes::TBaseSet< T, Cmp >::Iterator::DValid ( void   )  const [inline]

Check validity (provoke abort error).

Definition at line 503 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
void faudes::TBaseSet< T, Cmp >::Iterator::Invalidate ( void   )  [inline]

Invalidate.

Definition at line 491 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
bool faudes::TBaseSet< T, Cmp >::Iterator::operator!= ( const Iterator rOther  )  const [inline]

Reimplement !=.

Definition at line 545 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
const T& faudes::TBaseSet< T, Cmp >::Iterator::operator* ( void   )  const [inline]

Reimplement derefernce.

Definition at line 523 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
const Iterator& faudes::TBaseSet< T, Cmp >::Iterator::operator++ ( void   )  [inline]

Reimplement prefix ++.

Definition at line 569 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
Iterator faudes::TBaseSet< T, Cmp >::Iterator::operator++ ( int  step  )  [inline]

Reimplement postfix ++.

Definition at line 556 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
const Iterator& faudes::TBaseSet< T, Cmp >::Iterator::operator-- ( void   )  [inline]

Reimplement prefix --.

Definition at line 594 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
Iterator faudes::TBaseSet< T, Cmp >::Iterator::operator-- ( int  step  )  [inline]

Reimplement postfix --.

Definition at line 581 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
const T* faudes::TBaseSet< T, Cmp >::Iterator::operator-> ( void   )  const [inline]

Reimplement dereference.

Definition at line 512 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
const Iterator& faudes::TBaseSet< T, Cmp >::Iterator::operator= ( const Iterator rSrc  )  [inline]

Assigment, tracks container.

Definition at line 455 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
bool faudes::TBaseSet< T, Cmp >::Iterator::operator== ( const Iterator rOther  )  const [inline]

Reimplement ==.

Definition at line 534 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
const std::set<T,Cmp>::const_iterator& faudes::TBaseSet< T, Cmp >::Iterator::StlIterator ( void   )  const [inline]

Get STL iterator only.

Definition at line 486 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
void faudes::TBaseSet< T, Cmp >::Iterator::StlIterator ( const typename std::set< T, Cmp >::const_iterator sit  )  [inline]

Assign STL iterator only.

Definition at line 481 of file cfl_baseset.h.


Member Data Documentation

template<class T, class Cmp = std::less<T>>
bool faudes::TBaseSet< T, Cmp >::Iterator::mAttached

Indicate that this iterator is attached to some baseset.

Definition at line 617 of file cfl_baseset.h.

template<class T, class Cmp = std::less<T>>
const TBaseSet<T,Cmp>* faudes::TBaseSet< T, Cmp >::Iterator::pBaseSet

Order by reference for containers of Iterators <.

Maintaine container reference

Definition at line 603 of file cfl_baseset.h.


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

libFAUDES 2.23h --- 2014.04.03 --- c++ api documentaion by doxygen