The graph class. More...
#include <flow_graph.h>
  
 Public Types | |
| 
typedef graph_iterator< graph,  graph_node >  | iterator | 
| 
typedef graph_iterator< const  graph, const graph_node >  | const_iterator | 
Public Member Functions | |
| graph () | |
| Constructs a graph with isolated task_group_context.  | |
| graph (task_group_context &use_this_context) | |
| Constructs a graph with use_this_context as context.  | |
| ~graph () | |
| Destroys the graph.  More... | |
| void | set_name (const char *name) | 
| void | increment_wait_count () | 
| Used to register that an external entity may still interact with the graph.  More... | |
| void | decrement_wait_count () | 
| Deregisters an external entity that may have interacted with the graph.  More... | |
| template<typename Receiver , typename Body > | |
| void | run (Receiver &r, Body body) | 
| Spawns a task that runs a body and puts its output to a specific receiver.  More... | |
| template<typename Body > | |
| void | run (Body body) | 
| Spawns a task that runs a function object.  More... | |
| void | wait_for_all () | 
| Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls.  More... | |
| task * | root_task () | 
| Returns the root task of the graph.  | |
| iterator | begin () | 
| start iterator  | |
| iterator | end () | 
| end iterator  | |
| const_iterator | begin () const | 
| start const iterator  | |
| const_iterator | end () const | 
| end const iterator  | |
| const_iterator | cbegin () const | 
| start const iterator  | |
| const_iterator | cend () const | 
| end const iterator  | |
| bool | is_cancelled () | 
| return status of graph execution  | |
| bool | exception_thrown () | 
| void | reset () | 
Friends | |
| class | graph_node | 
| template<typename C , typename N > | |
| class | graph_iterator | 
The graph class.
This class serves as a handle to the graph
      
  | 
  inline | 
Destroys the graph.
Calls wait_for_all, then destroys the root task and context.
      
  | 
  inline | 
Deregisters an external entity that may have interacted with the graph.
The graph will not return from wait_for_all until all the number of decrement_wait_count calls matches the number of increment_wait_count calls.
      
  | 
  inline | 
Used to register that an external entity may still interact with the graph.
The graph will not return from wait_for_all until a matching number of decrement_wait_count calls is made.
      
  | 
  inline | 
Spawns a task that runs a body and puts its output to a specific receiver.
The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.
      
  | 
  inline | 
Spawns a task that runs a function object.
The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.
      
  | 
  inline | 
Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls.
The waiting thread will go off and steal work while it is block in the wait_for_all.