flow_graph.h File Reference

The graph related classes and functions. More...

## Classes

class | tbb::flow::interface8::internal::successor_cache< T, M >
class | tbb::flow::interface8::internal::broadcast_cache< T, M >
class | tbb::flow::interface8::internal::round_robin_cache< T, M >
class | tbb::flow::interface8::internal::edge_container< C >
struct | tbb::flow::interface8::null_type
class | tbb::flow::interface8::continue_msg
| An empty class used for messages that mean "I'm done". More...
class | tbb::flow::interface8::sender< T >
| Pure virtual template class that defines a sender of messages of type T. More...
class | tbb::flow::interface8::receiver< T >
| Pure virtual template class that defines a receiver of messages of type T. More...
class | tbb::flow::interface8::sender< T >
| Pure virtual template class that defines a sender of messages of type T. More...
class | tbb::flow::interface8::limiter_node< T >
| Forwards messages only if the threshold has not been reached. More...
class | tbb::flow::interface8::run_and_put_task< R, B >
class | tbb::flow::interface8::receiver< T >
| Pure virtual template class that defines a receiver of messages of type T. More...
class | tbb::flow::interface8::internal::edge_container< C >
class | tbb::flow::interface8::continue_receiver
| Base class for receivers of completion messages. More...
class | tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
class | tbb::flow::interface8::graph
| The graph class. More...
class | tbb::flow::interface8::graph_node
| The base of all graph nodes. More...
class | tbb::flow::interface8::source_node< Output >
| An executable node that acts as a source, i.e. it has no predecessors. More...
struct | tbb::flow::interface8::allocate_buffer< T >
struct | tbb::flow::interface8::allocate_buffer< queueing >
class | tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
| Implements a function node that supports Input -> Output. More...
class | tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
| implements a function node that supports Input -> (set of outputs) More...
class | tbb::flow::interface8::split_node< TupleType, Allocator >
| split_node: accepts a tuple as input, forwards each element of the tuple to its More...
class | tbb::flow::interface8::continue_node< Output >
| Implements an executable node that supports continue_msg -> Output. More...
class | tbb::flow::interface8::overwrite_node< T >
class | tbb::flow::interface8::write_once_node< T >
class | tbb::flow::interface8::broadcast_node< T >
| Forwards messages of type T to all successors. More...
class | tbb::flow::interface8::buffer_node< T, A >
| Forwards messages in arbitrary order. More...
class | tbb::flow::interface8::buffer_node< T, A >::buffer_operation
class | tbb::flow::interface8::queue_node< T, A >
| Forwards messages in FIFO order. More...
class | tbb::flow::interface8::sequencer_node< T, A >
| Forwards messages in sequence order. More...
class | tbb::flow::interface8::priority_queue_node< T, Compare, A >
| Forwards messages in priority order. More...
class | tbb::flow::interface8::limiter_node< T >
| Forwards messages only if the threshold has not been reached. More...
class | tbb::flow::interface8::join_node< OutputTuple, JP >
class | tbb::flow::interface8::join_node< OutputTuple, reserving >
class | tbb::flow::interface8::join_node< OutputTuple, queueing >
class | tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >
class | tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
class | tbb::flow::interface8::indexer_node< T0 >
class | tbb::flow::interface8::indexer_node< T0, T1 >
class | tbb::flow::interface8::indexer_node< T0, T1, T2 >
class | tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >
class | tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >
class | tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >
class | tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >
class | tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >
class | tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
class | tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
class | tbb::flow::interface8::composite_node< InputTuple, OutputTuple >
class | tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >
class | tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >
class | tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >
class | tbb::flow::interface8::internal::async_gateway< Output >
| Pure virtual template class that defines interface for async communication. More...
class | tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >
class | tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
| Implements async node. More...
struct | tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor

## Namespaces

| tbb
| The namespace tbb contains all components of the library.

## Constant Groups

| tbb
| The namespace tbb contains all components of the library.

## Enumerations

enum | concurrency { unlimited = 0, serial = 1 }
| An enumeration the provides the two most common concurrency levels: unlimited and serial.
enum | reset_flags { rf_reset_protocol = 0, rf_reset_bodies = 1<<0, rf_clear_edges = 1<<1 }

## Functions

static tbb::task * | tbb::flow::interface8::combine_tasks (tbb::task *left, tbb::task *right)
template<typename K , typename T >
K | tbb::flow::key_from_message (const T &t)
template<typename T >
void | tbb::flow::interface8::make_edge (sender< T > &p, receiver< T > &s)
| Makes an edge between a single predecessor and a single successor.
template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
void | tbb::flow::interface8::make_edge (T &output, V &input)
template<typename T , typename R , typename = typename T::output_ports_type>
void | tbb::flow::interface8::make_edge (T &output, receiver< R > &input)
template<typename S , typename V , typename = typename V::input_ports_type>
void | tbb::flow::interface8::make_edge (sender< S > &output, V &input)
template<typename T >
void | tbb::flow::interface8::remove_edge (sender< T > &p, receiver< T > &s)
| Removes an edge between a single predecessor and a single successor.
template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
void | tbb::flow::interface8::remove_edge (T &output, V &input)
template<typename T , typename R , typename = typename T::output_ports_type>
void | tbb::flow::interface8::remove_edge (T &output, receiver< R > &input)
template<typename S , typename V , typename = typename V::input_ports_type>
void | tbb::flow::interface8::remove_edge (sender< S > &output, V &input)
template<typename Body , typename Node >
Body | tbb::flow::interface8::copy_body (Node &n)
| Returns a copy of the body from a function or continue node.

## Variables

static tbb::task *const | tbb::flow::interface8::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 applications.

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