evio  6.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
evio::nodeBreadthIterator< R > Class Template Reference

Breadth first iterator. More...

#include <BaseStructure.h>

Public Member Functions

 nodeBreadthIterator (R &node, bool isEnd)
 Constructor that copies shared pointer arg. More...
 
operator* () const
 Dereference operator. More...
 
bool operator== (const nodeBreadthIterator &other) const
 Equal operator. More...
 
bool operator!= (const nodeBreadthIterator &other) const
 Not equal operator. More...
 
bool isEndIter ()
 Is this the end of the iterator? More...
 
nodeBreadthIterator operator++ (int)
 Post increment operator gets ignored arg of 0 to distinguish from pre, A++. More...
 
nodeBreadthIterator operator++ ()
 Pre increment operator, ++A. More...
 

Protected Types

typedef std::vector< R >::iterator KidIter
 iterator of vector contained shared pointers to node's children. More...
 

Protected Attributes

std::queue< std::pair< KidIter, KidIter > > que
 Queue of iterators over node's children. More...
 
currentNode
 Where we are now in the tree. More...
 
bool isEnd
 Is this the end iterator? More...
 

Detailed Description

template<typename R>
class evio::nodeBreadthIterator< R >

Breadth first iterator.

Member Typedef Documentation

◆ KidIter

template<typename R >
typedef std::vector<R>::iterator evio::nodeBreadthIterator< R >::KidIter
protected

iterator of vector contained shared pointers to node's children.

Constructor & Destructor Documentation

◆ nodeBreadthIterator()

template<typename R >
evio::nodeBreadthIterator< R >::nodeBreadthIterator ( R &  node,
bool  isEnd 
)
inline

Constructor that copies shared pointer arg.

References evio::nodeBreadthIterator< R >::que.

Member Function Documentation

◆ isEndIter()

template<typename R >
bool evio::nodeBreadthIterator< R >::isEndIter ( )
inline

Is this the end of the iterator?

Returns
true if end of iterator.

References evio::nodeBreadthIterator< R >::isEnd.

◆ operator!=()

template<typename R >
bool evio::nodeBreadthIterator< R >::operator!= ( const nodeBreadthIterator< R > &  other) const
inline

Not equal operator.

References evio::nodeBreadthIterator< R >::isEnd.

◆ operator*()

template<typename R >
R evio::nodeBreadthIterator< R >::operator* ( ) const
inline

Dereference operator.

References evio::nodeBreadthIterator< R >::currentNode.

◆ operator++() [1/2]

◆ operator++() [2/2]

template<typename R >
nodeBreadthIterator evio::nodeBreadthIterator< R >::operator++ ( int  )
inline

Post increment operator gets ignored arg of 0 to distinguish from pre, A++.

References evio::nodeBreadthIterator< R >::currentNode, evio::nodeBreadthIterator< R >::isEnd, and evio::nodeBreadthIterator< R >::que.

◆ operator==()

template<typename R >
bool evio::nodeBreadthIterator< R >::operator== ( const nodeBreadthIterator< R > &  other) const
inline

Equal operator.

References evio::nodeBreadthIterator< R >::isEnd.

Member Data Documentation

◆ currentNode

template<typename R >
R evio::nodeBreadthIterator< R >::currentNode
protected

◆ isEnd

◆ que

template<typename R >
std::queue<std::pair<KidIter, KidIter> > evio::nodeBreadthIterator< R >::que
protected

Queue of iterators over node's children.

In each pair, first is current iterator, second is end.

Referenced by evio::nodeBreadthIterator< R >::nodeBreadthIterator(), and evio::nodeBreadthIterator< R >::operator++().


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