|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.4"/> <title>flow_graph.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <!-- end header part --> <!-- Generated by Doxygen 1.8.4 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</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 class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_525f2cc589630bacbdc3bb450847427e.html">tbb</a></li><li class="navelem"><a class="el" href="dir_b9976680b2be72d2d0b8fca1c31202a2.html">1.0</a></li><li class="navelem"><a class="el" href="dir_63fb2cc293d133785b96e521fa051167.html">include</a></li><li class="navelem"><a class="el" href="dir_87119f26c7695cbc270003e99bc7f49f.html">tbb</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#namespaces">Namespaces</a> | <a href="#namespaces">Constant Groups</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">flow_graph.h File Reference</div> </div> </div><!--header--> <div class="contents">
<p>The graph related classes and functions. <a href="#details">More...</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html">tbb::flow::interface7::internal::successor_cache< T, M ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html">tbb::flow::interface7::internal::broadcast_cache< T, M ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00108.html">tbb::flow::interface7::internal::round_robin_cache< T, M ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html">tbb::flow::interface7::continue_msg</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">An empty class used for messages that mean "I'm done". <a href="a00048.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html">tbb::flow::interface7::sender< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual template class that defines a sender of messages of type T. <a href="a00124.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html">tbb::flow::interface7::receiver< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual template class that defines a receiver of messages of type T. <a href="a00106.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html">tbb::flow::interface7::sender< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual template class that defines a sender of messages of type T. <a href="a00124.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00072.html">tbb::flow::interface7::limiter_node< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages only if the threshold has not been reached. <a href="a00072.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00109.html">tbb::flow::interface7::run_and_put_task< R, B ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html">tbb::flow::interface7::receiver< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual template class that defines a receiver of messages of type T. <a href="a00106.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html">tbb::flow::interface7::continue_receiver</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for receivers of completion messages. <a href="a00050.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html">tbb::flow::interface7::graph_iterator< GraphContainerType, GraphNodeType ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html">tbb::flow::interface7::graph</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The graph class. <a href="a00061.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html">tbb::flow::interface7::graph_node</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The base of all graph nodes. <a href="a00063.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00126.html">tbb::flow::interface7::source_node< Output ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">An executable node that acts as a source, i.e. it has no predecessors. <a href="a00126.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html">tbb::flow::interface7::function_node< Input, Output, graph_buffer_policy, Allocator ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Implements a function node that supports Input -> Output. <a href="a00059.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00060.html">tbb::flow::interface7::function_node< Input, Output, queueing, Allocator ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Implements a function node that supports Input -> Output. <a href="a00060.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">tbb::flow::interface7::multifunction_node< Input, Output, graph_buffer_policy, Allocator ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">implements a function node that supports Input -> (set of outputs) <a href="a00079.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html">tbb::flow::interface7::multifunction_node< Input, Output, queueing, Allocator ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00130.html">tbb::flow::interface7::split_node< TupleType, Allocator ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="a00130.html" title="split_node: accepts a tuple as input, forwards each element of the tuple to its ">split_node</a>: accepts a tuple as input, forwards each element of the tuple to its <a href="a00130.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html">tbb::flow::interface7::continue_node< Output ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Implements an executable node that supports <a class="el" href="a00048.html" title="An empty class used for messages that mean "I'm done". ">continue_msg</a> -> Output. <a href="a00049.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html">tbb::flow::interface7::overwrite_node< T ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html">tbb::flow::interface7::write_once_node< T ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html">tbb::flow::interface7::broadcast_node< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages of type T to all successors. <a href="a00025.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html">tbb::flow::interface7::buffer_node< T, A ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages in arbitrary order. <a href="a00027.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html">tbb::flow::interface7::buffer_node< T, A >::buffer_operation</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html">tbb::flow::interface7::queue_node< T, A ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages in FIFO order. <a href="a00092.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html">tbb::flow::interface7::sequencer_node< T, A ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages in sequence order. <a href="a00125.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html">tbb::flow::interface7::priority_queue_node< T, Compare, A ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages in priority order. <a href="a00091.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00072.html">tbb::flow::interface7::limiter_node< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Forwards messages only if the threshold has not been reached. <a href="a00072.html#details">More...</a><br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00068.html">tbb::flow::interface7::join_node< OutputTuple, JP ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00070.html">tbb::flow::interface7::join_node< OutputTuple, reserving ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00069.html">tbb::flow::interface7::join_node< OutputTuple, queueing ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00071.html">tbb::flow::interface7::join_node< OutputTuple, tag_matching ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html">tbb::flow::interface7::or_node< InputTuple ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a> Namespaces</h2></td></tr> <tr class="memitem:a00222"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html">tbb</a></td></tr> <tr class="memdesc:a00222"><td class="mdescLeft"> </td><td class="mdescRight">The namespace tbb contains all components of the library. <br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a> Constant Groups</h2></td></tr> <tr class="memitem:a00222"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html">tbb</a></td></tr> <tr class="memdesc:a00222"><td class="mdescLeft"> </td><td class="mdescRight">The namespace tbb contains all components of the library. <br/></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> Enumerations</h2></td></tr> <tr class="memitem:a7bec4a3445fea3cd5974119730dea98f"><td class="memItemLeft" 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 class="memdesc:a7bec4a3445fea3cd5974119730dea98f"><td class="mdescLeft"> </td><td class="mdescRight">An enumeration the provides the two most common concurrency levels: unlimited and serial. <br/></td></tr> <tr class="separator:a7bec4a3445fea3cd5974119730dea98f"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:aba7c4b74c28d9c7afcfa7b3b7f92c4a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba7c4b74c28d9c7afcfa7b3b7f92c4a2"></a> static tbb::task * </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface7::combine_tasks</b> (tbb::task *left, tbb::task *right)</td></tr> <tr class="separator:aba7c4b74c28d9c7afcfa7b3b7f92c4a2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab8165a6d22fd39f043aaf5ebe60a1ee7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab8165a6d22fd39f043aaf5ebe60a1ee7"></a> template<typename T > </td></tr> <tr class="memitem:ab8165a6d22fd39f043aaf5ebe60a1ee7"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>tbb::flow::interface7::make_edge</b> (sender< T > &p, receiver< T > &s)</td></tr> <tr class="memdesc:ab8165a6d22fd39f043aaf5ebe60a1ee7"><td class="mdescLeft"> </td><td class="mdescRight">Makes an edge between a single predecessor and a single successor. <br/></td></tr> <tr class="separator:ab8165a6d22fd39f043aaf5ebe60a1ee7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a604efbfc6e5a5889bd73b7a0924b3675"><td class="memTemplParams" colspan="2"><a class="anchor" id="a604efbfc6e5a5889bd73b7a0924b3675"></a> template<typename T > </td></tr> <tr class="memitem:a604efbfc6e5a5889bd73b7a0924b3675"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>tbb::flow::interface7::remove_edge</b> (sender< T > &p, receiver< T > &s)</td></tr> <tr class="memdesc:a604efbfc6e5a5889bd73b7a0924b3675"><td class="mdescLeft"> </td><td class="mdescRight">Makes an edge between a single predecessor and a single successor. <br/></td></tr> <tr class="separator:a604efbfc6e5a5889bd73b7a0924b3675"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afcbf2abcb561437eba15eda6df743420"><td class="memTemplParams" colspan="2"><a class="anchor" id="afcbf2abcb561437eba15eda6df743420"></a> template<typename Body , typename Node > </td></tr> <tr class="memitem:afcbf2abcb561437eba15eda6df743420"><td class="memTemplItemLeft" align="right" valign="top">Body </td><td class="memTemplItemRight" valign="bottom"><b>tbb::flow::interface7::copy_body</b> (Node &n)</td></tr> <tr class="memdesc:afcbf2abcb561437eba15eda6df743420"><td class="mdescLeft"> </td><td class="mdescRight">Returns a copy of the body from a function or continue node. <br/></td></tr> <tr class="separator:afcbf2abcb561437eba15eda6df743420"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> Variables</h2></td></tr> <tr class="memitem:ad438065c0420375007de860eb0bcd037"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad438065c0420375007de860eb0bcd037"></a> static tbb::task *const </td><td class="memItemRight" valign="bottom"><b>tbb::flow::interface7::SUCCESSFULLY_ENQUEUED</b> = (task *)-1</td></tr> <tr class="separator:ad438065c0420375007de860eb0bcd037"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>The graph related classes and functions. </p> <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. </p> </div></div><!-- contents --> <hr> <p></p> Copyright © 2005-2014 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.
|