Version: 6.3.1
Public Member Functions | Protected Attributes

SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS > Class Template Reference

SMDS_Iterator iterating over all elements provides by other iterators. More...

#include <SMDS_IteratorOnIterators.hxx>

Inheritance diagram for SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >:
Inheritance graph
[legend]

Public Member Functions

 SMDS_IteratorOnIterators (const CONTAINER_OF_ITERATORS &iterators)
virtual bool more ()
 Return true iff there are other object in this iterator.
virtual VALUE next ()
 Return the current object and step to the next one.
virtual void remove ()
 Delete the current element and step to the next one.

Protected Attributes

CONTAINER_OF_ITERATORS _iterators
CONTAINER_OF_ITERATORS::iterator _beg
CONTAINER_OF_ITERATORS::iterator _end

Detailed Description

template<typename VALUE, typename CONTAINER_OF_ITERATORS>
class SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >

SMDS_Iterator iterating over all elements provides by other iterators.

Other iterators must implement SMDS_Iterator iterface and must be provided within a stl-like container BE CAREFUL: iterator pointed value is static_cast'ed to VALUE

Definition at line 42 of file SMDS_IteratorOnIterators.hxx.


Constructor & Destructor Documentation

template<typename VALUE , typename CONTAINER_OF_ITERATORS >
SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >.SMDS_IteratorOnIterators ( const CONTAINER_OF_ITERATORS &  iterators)

Definition at line 48 of file SMDS_IteratorOnIterators.hxx.

                                                                   :
    _iterators( iterators ), _beg( _iterators.begin()), _end(_iterators.end() ) {}

Member Function Documentation

template<typename VALUE , typename CONTAINER_OF_ITERATORS >
virtual bool SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >.more ( ) [virtual]

Return true iff there are other object in this iterator.

Implements SMDS_Iterator< VALUE >.

Definition at line 52 of file SMDS_IteratorOnIterators.hxx.

References SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >._beg, and SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >._end.

{ return _beg != _end && (*_beg)->more(); }
template<typename VALUE , typename CONTAINER_OF_ITERATORS >
virtual VALUE SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >.next ( ) [virtual]

Return the current object and step to the next one.

Implements SMDS_Iterator< VALUE >.

Definition at line 55 of file SMDS_IteratorOnIterators.hxx.

References SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >._beg, and SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >._end.

  {
    VALUE __v = (VALUE)(*_beg)->next();
    while ( _beg != _end && !(*_beg)->more())
      ++_beg;
    return __v;
  }
template<typename VALUE>
virtual void SMDS_Iterator< VALUE >.remove ( ) [virtual, inherited]

Delete the current element and step to the next one.

Definition at line 44 of file SMDS_Iterator.hxx.

{}

Field Documentation

template<typename VALUE , typename CONTAINER_OF_ITERATORS >
CONTAINER_OF_ITERATORS::iterator SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >._beg [protected]
template<typename VALUE , typename CONTAINER_OF_ITERATORS >
CONTAINER_OF_ITERATORS::iterator SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >._end [protected]
template<typename VALUE , typename CONTAINER_OF_ITERATORS >
CONTAINER_OF_ITERATORS SMDS_IteratorOnIterators< VALUE, CONTAINER_OF_ITERATORS >._iterators [protected]

Definition at line 45 of file SMDS_IteratorOnIterators.hxx.

Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS