flow_graph.h File Reference

The graph related classes and functions. More...


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::tasktbb::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


Detailed Description

The graph related classes and functions.

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.


Copyright © 2005-2013 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.