You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
16 KiB
159 lines
16 KiB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
|
<title>flow_graph.h File Reference</title>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
|
</head><body>
|
|
<!-- Generated by Doxygen 1.4.7 -->
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
|
</ul></div>
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="files.html"><span>File List</span></a></li>
|
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
|
</ul></div>
|
|
<h1>flow_graph.h File Reference</h1>The graph related classes and functions. <a href="#_details">More...</a>
|
|
<p>
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><td></td></tr>
|
|
<tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="a00428.html">tbb</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><b>tbb::flow</b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6</b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::internal</b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><b>internal::graph_policy_namespace</b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><b>interface6::internal::graph_policy_namespace</b></td></tr>
|
|
|
|
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00289.html">tbb::flow::interface6::continue_msg</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">An empty class used for messages that mean "I'm done". <a href="a00289.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00339.html">tbb::flow::interface6::sender< T ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual template class that defines a sender of messages of type T. <a href="a00339.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00333.html">tbb::flow::interface6::receiver< T ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual template class that defines a receiver of messages of type T. <a href="a00333.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00291.html">tbb::flow::interface6::continue_receiver</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Base class for receivers of completion messages. <a href="a00291.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::graph_iterator< GraphContainerType, GraphNodeType ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00300.html">tbb::flow::interface6::graph</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The graph class. <a href="a00300.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::graph::run_task< Body ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::graph::run_and_put_task< Receiver, Body ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html">tbb::flow::interface6::graph_node</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The base of all graph nodes. <a href="a00301.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00342.html">tbb::flow::interface6::source_node< Output ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">An executable node that acts as a source, i.e. it has no predecessors. <a href="a00342.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00298.html">tbb::flow::interface6::function_node< Input, Output,, Allocator ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Implements a function node that supports Input -> Output. <a href="a00298.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00299.html">tbb::flow::interface6::function_node< Input, Output, queueing, Allocator ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Implements a function node that supports Input -> Output. <a href="a00299.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00312.html">tbb::flow::interface6::multifunction_node< Input, Output,, Allocator ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">implements a function node that supports Input -> (set of outputs) <a href="a00312.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::multifunction_node< Input, Output, queueing, Allocator ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00348.html">tbb::flow::interface6::split_node< TupleType, Allocator ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="a00348.html">split_node</a>: accepts a tuple as input, forwards each element of the tuple to its <a href="a00348.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::split_node< TupleType, Allocator >::splitting_body</b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html">tbb::flow::interface6::continue_node< Output ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Implements an executable node that supports <a class="el" href="a00289.html">continue_msg</a> -> Output. <a href="a00290.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::overwrite_node< T ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::write_once_node< T ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00274.html">tbb::flow::interface6::broadcast_node< T ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages of type T to all successors. <a href="a00274.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html">tbb::flow::interface6::buffer_node< T, A ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages in arbitrary order. <a href="a00275.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::buffer_node< T, A >::buffer_operation</b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00325.html">tbb::flow::interface6::queue_node< T, A ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages in FIFO order. <a href="a00325.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00340.html">tbb::flow::interface6::sequencer_node< T, A ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages in sequence order. <a href="a00340.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00324.html">tbb::flow::interface6::priority_queue_node< T, Compare, A ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages in priority order. <a href="a00324.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html">tbb::flow::interface6::limiter_node< T ></a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages only if the threshold has not been reached. <a href="a00304.html#_details">More...</a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::join_node< OutputTuple, reserving ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::join_node< OutputTuple, queueing ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::join_node< OutputTuple, tag_matching ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::or_node< InputTuple ></b></td></tr>
|
|
|
|
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><b>concurrency</b> { <b>unlimited</b> = 0,
|
|
<b>serial</b> = 1
|
|
}</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">An enumeration the provides the two most common concurrency levels: unlimited and serial. <br></td></tr>
|
|
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="85817bf15a96ff32fac6240629ef3f84"></a><!-- doxytag: member="flow_graph.h::combine_tasks" ref="85817bf15a96ff32fac6240629ef3f84" args="(tbb::task *left, tbb::task *right)" -->
|
|
static <a class="el" href="a00349.html">tbb::task</a> * </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::combine_tasks</b> (<a class="el" href="a00349.html">tbb::task</a> *left, <a class="el" href="a00349.html">tbb::task</a> *right)</td></tr>
|
|
|
|
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="511941e0793451ab18c6ccf489a67e47"></a><!-- doxytag: member="flow_graph.h::make_edge" ref="511941e0793451ab18c6ccf489a67e47" args="(sender< T > &p, receiver< T > &s)" -->
|
|
template<typename T> </td></tr>
|
|
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00431.html#511941e0793451ab18c6ccf489a67e47">tbb::flow::interface6::make_edge</a> (sender< T > &p, receiver< T > &s)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Makes an edge between a single predecessor and a single successor. <br></td></tr>
|
|
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="15f0356fd7bcade4868d3b083ea671c2"></a><!-- doxytag: member="flow_graph.h::remove_edge" ref="15f0356fd7bcade4868d3b083ea671c2" args="(sender< T > &p, receiver< T > &s)" -->
|
|
template<typename T> </td></tr>
|
|
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00431.html#15f0356fd7bcade4868d3b083ea671c2">tbb::flow::interface6::remove_edge</a> (sender< T > &p, receiver< T > &s)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Makes an edge between a single predecessor and a single successor. <br></td></tr>
|
|
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="c8a3ee78426f0aa4df0c5a5e4bcd53e1"></a><!-- doxytag: member="flow_graph.h::copy_body" ref="c8a3ee78426f0aa4df0c5a5e4bcd53e1" args="(Node &n)" -->
|
|
template<typename Body, typename Node> </td></tr>
|
|
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Body </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00431.html#c8a3ee78426f0aa4df0c5a5e4bcd53e1">tbb::flow::interface6::copy_body</a> (Node &n)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a copy of the body from a function or continue node. <br></td></tr>
|
|
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dadcbaae98368798c745eb0d16e0760e"></a><!-- doxytag: member="flow_graph.h::SUCCESSFULLY_ENQUEUED" ref="dadcbaae98368798c745eb0d16e0760e" args="" -->
|
|
static <a class="el" href="a00349.html">tbb::task</a> *const </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface6::SUCCESSFULLY_ENQUEUED</b> = (task *)-1</td></tr>
|
|
|
|
</table>
|
|
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
|
The graph related classes and functions.
|
|
<p>
|
|
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. <hr>
|
|
<p></p>
|
|
Copyright © 2005-2013 Intel Corporation. All Rights Reserved.
|
|
<p></p>
|
|
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.
|
|
<p></p>
|
|
* Other names and brands may be claimed as the property of others.
|