#include <flow_graph.h>
Classes | |
| class | run_and_put_task |
| class | run_task |
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. | |
| void | increment_wait_count () |
| Used to register that an external entity may still interact with the graph. | |
| void | decrement_wait_count () |
| Deregisters an external entity that may have interacted with the graph. | |
| 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. | |
| template<typename Body > | |
| void | run (Body body) |
| Spawns a task that runs a function object. | |
| void | wait_for_all () |
| Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. | |
| 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 |
| class | graph_iterator |
The graph class.
This class serves as a handle to the graph
| tbb::flow::interface6::graph::~graph | ( | ) | [inline] |
Destroys the graph.
Calls wait_for_all, then destroys the root task and context.
References tbb::task::destroy(), tbb::task::set_ref_count(), and wait_for_all().
| void tbb::flow::interface6::graph::decrement_wait_count | ( | ) | [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.
References tbb::task::decrement_ref_count().
| void tbb::flow::interface6::graph::increment_wait_count | ( | ) | [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.
References tbb::task::increment_ref_count().
| void tbb::flow::interface6::graph::run | ( | Body | body | ) | [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.
References tbb::task::enqueue().
| void tbb::flow::interface6::graph::run | ( | Receiver & | r, | |
| Body | body | |||
| ) | [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.
References tbb::task::enqueue().
| void tbb::flow::interface6::graph::wait_for_all | ( | ) | [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.
References tbb::task_group_context::is_group_execution_cancelled(), tbb::task_group_context::reset(), tbb::task::set_ref_count(), and tbb::task::wait_for_all().
Referenced by ~graph().