Public Types | Public Member Functions | Public Attributes
ash::hashgraph::navigator Struct Reference

The hashgraph's navigator. More...

#include <ash/impl/hashgraph.h>

Inherits ash::graph_navigator< Graph, Itr, Mod >.

List of all members.

Public Types

typedef Mod< typename
Graph::node_type * >::type 
node_ptr
typedef Graph container_type
typedef Mod< Graph * >::type container_ptr
Iterator Traits
typedef Graph::value_type value_type
typedef Mod< value_type * >::type pointer
typedef Mod< value_type & >::type reference
typedef Graph::size_type size_type
typedef Graph::difference_type difference_type
typedef void iterator_category

Public Member Functions

 operator Itr () const
 Cast to an iterator.
bool valid () const
 Test if the current graph location is valid.
bool valid (uint8 n) const
 Test if an adjacent graph location is valid.
Constructors/Destructors

We use the default copy constructor.

We use the default destructor.

 navigator ()
 Default constructor.
 navigator (navigator_base const &nav)
 Conversion constructor - base class.
 navigator (iterator_base const &itr)
 Conversion constructor - iterator.
Increment Operator Equivalents
graph_navigator & go_pre (uint8 n)
 Pre-increment equivalent.
graph_navigator go_post (uint8 n)
 Post-increment equivalent.
Dereference Operators
reference operator* () const
pointer operator-> () const
Comparison Operators
template<class I , template< class > class M>
bool operator== (graph_navigator< Graph, I, M > const &nav) const
 Equality operator.
template<class I , template< class > class M>
bool operator== (graph_iterator< Graph, I, M > const &itr) const
 Equality operator - iterator.
template<class I , template< class > class M>
bool operator!= (graph_navigator< Graph, I, M > const &nav) const
 Inequality operator.
template<class I , template< class > class M>
bool operator!= (graph_iterator< Graph, I, M > const &itr) const
 Inequality operator - iterator.

Public Attributes

node_ptr _node
container_ptr _container

Detailed Description

The hashgraph's navigator.

Concepts:
ash::basic_navigator

Allows you to move around the graph in an arbitrary manner. Castable to and from hashgraph::iterator.

Remarks:
Not very useful by itself, but easily wrapped for things that are.

Member Typedef Documentation

template<class Graph , class Itr , template< typename > class Mod>
typedef void ash::graph_navigator< Graph, Itr, Mod >::iterator_category [inherited]
Note:
: This should be std::trivial_iterator_tag, which does not exist...

Constructor & Destructor Documentation

Default constructor.

ash::hashgraph::navigator::navigator ( navigator_base const &  nav) [inline]

Conversion constructor - base class.

ash::hashgraph::navigator::navigator ( iterator_base const &  itr) [inline]

Conversion constructor - iterator.


Member Function Documentation

template<class Graph , class Itr , template< typename > class Mod>
graph_navigator ash::graph_navigator< Graph, Itr, Mod >::go_post ( uint8  n) [inline, inherited]

Post-increment equivalent.

template<class Graph , class Itr , template< typename > class Mod>
graph_navigator& ash::graph_navigator< Graph, Itr, Mod >::go_pre ( uint8  n) [inline, inherited]

Pre-increment equivalent.

template<class Graph , class Itr , template< typename > class Mod>
ash::graph_navigator< Graph, Itr, Mod >::operator Itr ( ) const [inline, inherited]

Cast to an iterator.

template<class Graph , class Itr , template< typename > class Mod>
template<class I , template< class > class M>
bool ash::graph_navigator< Graph, Itr, Mod >::operator!= ( graph_navigator< Graph, I, M > const &  nav) const [inline, inherited]

Inequality operator.

Note:
Templated so we can compare const and mutable versions.
template<class Graph , class Itr , template< typename > class Mod>
template<class I , template< class > class M>
bool ash::graph_navigator< Graph, Itr, Mod >::operator!= ( graph_iterator< Graph, I, M > const &  itr) const [inline, inherited]

Inequality operator - iterator.

Note:
Templated so we can compare const and mutable versions.
template<class Graph , class Itr , template< typename > class Mod>
template<class I , template< class > class M>
bool ash::graph_navigator< Graph, Itr, Mod >::operator== ( graph_navigator< Graph, I, M > const &  nav) const [inline, inherited]

Equality operator.

Note:
Templated so we can compare const and mutable versions.
template<class Graph , class Itr , template< typename > class Mod>
template<class I , template< class > class M>
bool ash::graph_navigator< Graph, Itr, Mod >::operator== ( graph_iterator< Graph, I, M > const &  itr) const [inline, inherited]

Equality operator - iterator.

Note:
Templated so we can compare const and mutable versions.
template<class Graph , class Itr , template< typename > class Mod>
bool ash::graph_navigator< Graph, Itr, Mod >::valid ( ) const [inline, inherited]

Test if the current graph location is valid.

template<class Graph , class Itr , template< typename > class Mod>
bool ash::graph_navigator< Graph, Itr, Mod >::valid ( uint8  n) const [inline, inherited]

Test if an adjacent graph location is valid.


Member Data Documentation

template<class Graph , class Itr , template< typename > class Mod>
container_ptr ash::graph_navigator< Graph, Itr, Mod >::_container [inherited]
Todo:
Loki: Make protected + friend.
template<class Graph , class Itr , template< typename > class Mod>
node_ptr ash::graph_navigator< Graph, Itr, Mod >::_node [inherited]
Todo:
Loki: Make protected + friend.

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


© 2012   AshTL
Licensed under  AGPLv3
Hosted by  Get AshTL at SourceForge.net. Fast, secure and Free Open Source software downloads
Generated by  doxygen 1.7.4