Honeycomb  0.1
Component-Model Framework
Public Types | Public Member Functions | Friends | List of all members
honey::DepGraph< DepNode_ >::Iter_< Vertex_ > Class Template Reference

Depth-first pre-order iterator over vertices. More...

#include <Dep.h>

Public Types

typedef std::forward_iterator_tag iterator_category
 
typedef Vertex_ value_type
 
typedef sdt difference_type
 
typedef Vertex_ * pointer
 
typedef Vertex_ & reference
 

Public Member Functions

 Iter_ ()
 
 Iter_ (const DepGraph &graph, optional< const Key & > start, DepType type)
 
Iter_operator++ ()
 
Iter_ operator++ (int)
 
bool operator== (const Iter_ &rhs) const
 
bool operator!= (const Iter_ &rhs) const
 
reference operator* () const
 
pointer operator-> () const
 
void reset (optional< const Key & > start=optnull, DepType type=DepType::out)
 Reset iterator to begin at vertex in graph. More...
 
void skipEdges ()
 Skip the current vertex's edges on next step of this iterator. More...
 

Friends

class DepGraph
 
template<class Vertex >
class NodeIter_
 

Detailed Description

template<class DepNode_>
template<class Vertex_>
class honey::DepGraph< DepNode_ >::Iter_< Vertex_ >

Depth-first pre-order iterator over vertices.

Each iteration step visits a vertex which has a list of contained nodes.

See also
Vertex

The first iteration step returns the start vertex, then it moves along the dependency graph edges according to the DepType: out (depends on), or in (depended on by).

Member Typedef Documentation

template<class DepNode_>
template<class Vertex_ >
typedef sdt honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::difference_type
template<class DepNode_>
template<class Vertex_ >
typedef std::forward_iterator_tag honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::iterator_category
template<class DepNode_>
template<class Vertex_ >
typedef Vertex_* honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::pointer
template<class DepNode_>
template<class Vertex_ >
typedef Vertex_& honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::reference
template<class DepNode_>
template<class Vertex_ >
typedef Vertex_ honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::value_type

Constructor & Destructor Documentation

template<class DepNode_>
template<class Vertex_ >
honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::Iter_ ( )
inline
template<class DepNode_>
template<class Vertex_ >
honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::Iter_ ( const DepGraph graph,
optional< const Key & >  start,
DepType  type 
)
inline

Member Function Documentation

template<class DepNode_>
template<class Vertex_ >
bool honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::operator!= ( const Iter_< Vertex_ > &  rhs) const
inline
template<class DepNode_>
template<class Vertex_ >
reference honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::operator* ( ) const
inline
template<class DepNode_>
template<class Vertex_ >
Iter_& honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::operator++ ( )
inline
template<class DepNode_>
template<class Vertex_ >
Iter_ honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::operator++ ( int  )
inline
template<class DepNode_>
template<class Vertex_ >
pointer honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::operator-> ( ) const
inline
template<class DepNode_>
template<class Vertex_ >
bool honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::operator== ( const Iter_< Vertex_ > &  rhs) const
inline
template<class DepNode_>
template<class Vertex_ >
void honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::reset ( optional< const Key & >  start = optnull,
DepType  type = DepType::out 
)
inline

Reset iterator to begin at vertex in graph.

template<class DepNode_>
template<class Vertex_ >
void honey::DepGraph< DepNode_ >::Iter_< Vertex_ >::skipEdges ( )
inline

Skip the current vertex's edges on next step of this iterator.

Friends And Related Function Documentation

template<class DepNode_>
template<class Vertex_ >
friend class DepGraph
friend
template<class DepNode_>
template<class Vertex_ >
template<class Vertex >
friend class NodeIter_
friend

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