Namespaces | |
namespace | tbb |
namespace | tbb::flow |
namespace | tbb::flow::interface6 |
namespace | tbb::flow::interface6::internal |
namespace | internal::graph_policy_namespace |
namespace | interface6::internal::graph_policy_namespace |
Classes | |
class | tbb::flow::interface6::continue_msg |
An empty class used for messages that mean "I'm done". More... | |
class | tbb::flow::interface6::sender< T > |
Pure virtual template class that defines a sender of messages of type T. More... | |
class | tbb::flow::interface6::receiver< T > |
Pure virtual template class that defines a receiver of messages of type T. More... | |
class | tbb::flow::interface6::continue_receiver |
Base class for receivers of completion messages. More... | |
class | tbb::flow::interface6::graph_iterator< GraphContainerType, GraphNodeType > |
class | tbb::flow::interface6::graph |
The graph class. More... | |
class | tbb::flow::interface6::graph::run_task< Body > |
class | tbb::flow::interface6::graph::run_and_put_task< Receiver, Body > |
class | tbb::flow::interface6::graph_node |
The base of all graph nodes. More... | |
class | tbb::flow::interface6::source_node< Output > |
An executable node that acts as a source, i.e. it has no predecessors. More... | |
class | tbb::flow::interface6::function_node< Input, Output,, Allocator > |
Implements a function node that supports Input -> Output. More... | |
class | tbb::flow::interface6::function_node< Input, Output, queueing, Allocator > |
Implements a function node that supports Input -> Output. More... | |
class | tbb::flow::interface6::multifunction_node< Input, Output,, Allocator > |
implements a function node that supports Input -> (set of outputs) More... | |
class | tbb::flow::interface6::multifunction_node< Input, Output, queueing, Allocator > |
class | tbb::flow::interface6::split_node< TupleType, Allocator > |
split_node: accepts a tuple as input, forwards each element of the tuple to its More... | |
struct | tbb::flow::interface6::split_node< TupleType, Allocator >::splitting_body |
class | tbb::flow::interface6::continue_node< Output > |
Implements an executable node that supports continue_msg -> Output. More... | |
class | tbb::flow::interface6::overwrite_node< T > |
class | tbb::flow::interface6::write_once_node< T > |
class | tbb::flow::interface6::broadcast_node< T > |
Forwards messages of type T to all successors. More... | |
class | tbb::flow::interface6::buffer_node< T, A > |
Forwards messages in arbitrary order. More... | |
class | tbb::flow::interface6::buffer_node< T, A >::buffer_operation |
class | tbb::flow::interface6::queue_node< T, A > |
Forwards messages in FIFO order. More... | |
class | tbb::flow::interface6::sequencer_node< T, A > |
Forwards messages in sequence order. More... | |
class | tbb::flow::interface6::priority_queue_node< T, Compare, A > |
Forwards messages in priority order. More... | |
class | tbb::flow::interface6::limiter_node< T > |
Forwards messages only if the threshold has not been reached. More... | |
class | tbb::flow::interface6::join_node< OutputTuple, reserving > |
class | tbb::flow::interface6::join_node< OutputTuple, queueing > |
class | tbb::flow::interface6::join_node< OutputTuple, tag_matching > |
class | tbb::flow::interface6::or_node< InputTuple > |
Enumerations | |
enum | concurrency { unlimited = 0, serial = 1 } |
An enumeration the provides the two most common concurrency levels: unlimited and serial. | |
Functions | |
static tbb::task * | tbb::flow::interface6::combine_tasks (tbb::task *left, tbb::task *right) |
template<typename T> | |
void | tbb::flow::interface6::make_edge (sender< T > &p, receiver< T > &s) |
Makes an edge between a single predecessor and a single successor. | |
template<typename T> | |
void | tbb::flow::interface6::remove_edge (sender< T > &p, receiver< T > &s) |
Makes an edge between a single predecessor and a single successor. | |
template<typename Body, typename Node> | |
Body | tbb::flow::interface6::copy_body (Node &n) |
Returns a copy of the body from a function or continue node. | |
Variables | |
static tbb::task *const | tbb::flow::interface6::SUCCESSFULLY_ENQUEUED = (task *)-1 |
There are some applications that best express dependencies as messages passed between nodes in a graph. These messages may contain data or simply act as signals that a predecessors has completed. The graph class and its associated node classes can be used to express such applcations.