Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference

#include <_flow_graph_impl.h>

Collaboration diagram for tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >:

Public Types

typedef size_t size_type
 
typedef GraphNodeType value_type
 
typedef GraphNodeType * pointer
 
typedef GraphNodeType & reference
 
typedef const GraphNodeType & const_reference
 
typedef std::forward_iterator_tag iterator_category
 

Public Member Functions

 graph_iterator ()
 Default constructor. More...
 
 graph_iterator (const graph_iterator &other)
 Copy constructor. More...
 
graph_iteratoroperator= (const graph_iterator &other)
 Assignment. More...
 
reference operator* () const
 Dereference. More...
 
pointer operator-> () const
 Dereference. More...
 
bool operator== (const graph_iterator &other) const
 Equality. More...
 
bool operator!= (const graph_iterator &other) const
 Inequality. More...
 
graph_iteratoroperator++ ()
 Pre-increment. More...
 
graph_iterator operator++ (int)
 Post-increment. More...
 

Private Member Functions

 graph_iterator (GraphContainerType *g, bool begin)
 Private initializing constructor for begin() and end() iterators. More...
 
void internal_forward ()
 

Private Attributes

GraphContainerType * my_graph
 
pointer current_node
 

Friends

class graph
 
class graph_node
 

Detailed Description

template<typename GraphContainerType, typename GraphNodeType>
class tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >

Definition at line 89 of file _flow_graph_impl.h.

Member Typedef Documentation

◆ const_reference

template<typename GraphContainerType, typename GraphNodeType>
typedef const GraphNodeType& tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::const_reference

Definition at line 97 of file _flow_graph_impl.h.

◆ iterator_category

template<typename GraphContainerType, typename GraphNodeType>
typedef std::forward_iterator_tag tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::iterator_category

Definition at line 98 of file _flow_graph_impl.h.

◆ pointer

template<typename GraphContainerType, typename GraphNodeType>
typedef GraphNodeType* tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::pointer

Definition at line 95 of file _flow_graph_impl.h.

◆ reference

template<typename GraphContainerType, typename GraphNodeType>
typedef GraphNodeType& tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::reference

Definition at line 96 of file _flow_graph_impl.h.

◆ size_type

template<typename GraphContainerType, typename GraphNodeType>
typedef size_t tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::size_type

Definition at line 93 of file _flow_graph_impl.h.

◆ value_type

template<typename GraphContainerType, typename GraphNodeType>
typedef GraphNodeType tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::value_type

Definition at line 94 of file _flow_graph_impl.h.

Constructor & Destructor Documentation

◆ graph_iterator() [1/3]

template<typename GraphContainerType, typename GraphNodeType>
tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::graph_iterator ( )
inline

Default constructor.

Definition at line 101 of file _flow_graph_impl.h.

◆ graph_iterator() [2/3]

template<typename GraphContainerType, typename GraphNodeType>
tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::graph_iterator ( const graph_iterator< GraphContainerType, GraphNodeType > &  other)
inline

Copy constructor.

Definition at line 104 of file _flow_graph_impl.h.

104  :
105  my_graph(other.my_graph), current_node(other.current_node)
106  {}

◆ graph_iterator() [3/3]

template<typename GraphContainerType, typename GraphNodeType>
tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::graph_iterator ( GraphContainerType *  g,
bool  begin 
)
private

Private initializing constructor for begin() and end() iterators.

Member Function Documentation

◆ internal_forward()

template<typename C , typename N >
void tbb::flow::interface10::graph_iterator< C, N >::internal_forward ( )
private

Definition at line 738 of file flow_graph.h.

◆ operator!=()

template<typename GraphContainerType, typename GraphNodeType>
bool tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::operator!= ( const graph_iterator< GraphContainerType, GraphNodeType > &  other) const
inline

Inequality.

Definition at line 129 of file _flow_graph_impl.h.

References tbb::operator==().

129 { return !(operator==(other)); }
bool operator==(const graph_iterator &other) const
Equality.
Here is the call graph for this function:

◆ operator*()

template<typename C , typename N >
graph_iterator< C, N >::reference tbb::flow::interface10::graph_iterator< C, N >::operator* ( ) const

Dereference.

Definition at line 727 of file flow_graph.h.

References __TBB_ASSERT.

727  {
728  __TBB_ASSERT(current_node, "graph_iterator at end");
729  return *operator->();
730 }
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165
pointer operator->() const
Dereference.
Definition: flow_graph.h:733

◆ operator++() [1/2]

template<typename GraphContainerType, typename GraphNodeType>
graph_iterator& tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::operator++ ( )
inline

Pre-increment.

Definition at line 132 of file _flow_graph_impl.h.

132  {
134  return *this;
135  }

◆ operator++() [2/2]

template<typename GraphContainerType, typename GraphNodeType>
graph_iterator tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::operator++ ( int  )
inline

Post-increment.

Definition at line 138 of file _flow_graph_impl.h.

138  {
139  graph_iterator result = *this;
140  operator++();
141  return result;
142  }
graph_iterator & operator++()
Pre-increment.

◆ operator->()

template<typename C , typename N >
graph_iterator< C, N >::pointer tbb::flow::interface10::graph_iterator< C, N >::operator-> ( ) const

Dereference.

Definition at line 733 of file flow_graph.h.

733  {
734  return current_node;
735 }

◆ operator=()

template<typename GraphContainerType, typename GraphNodeType>
graph_iterator& tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::operator= ( const graph_iterator< GraphContainerType, GraphNodeType > &  other)
inline

Assignment.

Definition at line 109 of file _flow_graph_impl.h.

References tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::current_node, and tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::my_graph.

109  {
110  if (this != &other) {
111  my_graph = other.my_graph;
112  current_node = other.current_node;
113  }
114  return *this;
115  }

◆ operator==()

template<typename GraphContainerType, typename GraphNodeType>
bool tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::operator== ( const graph_iterator< GraphContainerType, GraphNodeType > &  other) const
inline

Friends And Related Function Documentation

◆ graph

template<typename GraphContainerType, typename GraphNodeType>
friend class graph
friend

Definition at line 90 of file _flow_graph_impl.h.

◆ graph_node

template<typename GraphContainerType, typename GraphNodeType>
friend class graph_node
friend

Definition at line 91 of file _flow_graph_impl.h.

Member Data Documentation

◆ current_node

template<typename GraphContainerType, typename GraphNodeType>
pointer tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::current_node
private

◆ my_graph

template<typename GraphContainerType, typename GraphNodeType>
GraphContainerType* tbb::flow::interface10::graph_iterator< GraphContainerType, GraphNodeType >::my_graph
private

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

Copyright © 2005-2019 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.