|
|
<!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>tbb::flow::interface7::buffer_node< T, A > Class Template 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 class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="a00222.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface7</b></li><li class="navelem"><a class="el" href="a00027.html">buffer_node</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-types">Protected Types</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#friends">Friends</a> | <a href="a00325.html">List of all members</a> </div> <div class="headertitle"> <div class="title">tbb::flow::interface7::buffer_node< T, A > Class Template Reference</div> </div> </div><!--header--> <div class="contents">
<p>Forwards messages in arbitrary order. <a href="a00027.html#details">More...</a></p>
<p><code>#include <flow_graph.h></code></p> <div class="dynheader"> Inheritance diagram for tbb::flow::interface7::buffer_node< T, A >:</div> <div class="dyncontent"> <div class="center"> <img src="a00027.png" usemap="#tbb::flow::interface7::buffer_node< T, A >_map" alt=""/> <map id="tbb::flow::interface7::buffer_node< T, A >_map" name="tbb::flow::interface7::buffer_node< T, A >_map"> <area href="a00063.html" title="The base of all graph nodes. " alt="tbb::flow::interface7::graph_node" shape="rect" coords="0,56,352,80"/> <area href="a00106.html" title="Pure virtual template class that defines a receiver of messages of type T. " alt="tbb::flow::interface7::receiver< T >" shape="rect" coords="724,56,1076,80"/> <area href="a00124.html" title="Pure virtual template class that defines a sender of messages of type T. " alt="tbb::flow::interface7::sender< T >" shape="rect" coords="1086,56,1438,80"/> <area href="a00091.html" title="Forwards messages in priority order. " alt="tbb::flow::interface7::priority_queue_node< T, Compare, A >" shape="rect" coords="362,168,714,192"/> <area href="a00092.html" title="Forwards messages in FIFO order. " alt="tbb::flow::interface7::queue_node< T, A >" shape="rect" coords="724,168,1076,192"/> <area href="a00125.html" title="Forwards messages in sequence order. " alt="tbb::flow::interface7::sequencer_node< T, A >" shape="rect" coords="724,224,1076,248"/> </map> </div></div> <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="a00028.html">buffer_operation</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="pub-types"></a> Public Types</h2></td></tr> <tr class="memitem:a57a0aab7103d1d0cbf27560c9acf6c8f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57a0aab7103d1d0cbf27560c9acf6c8f"></a> typedef T </td><td class="memItemRight" valign="bottom"><b>input_type</b></td></tr> <tr class="separator:a57a0aab7103d1d0cbf27560c9acf6c8f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abedb8c98e62146c3473344b7148173b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abedb8c98e62146c3473344b7148173b8"></a> typedef T </td><td class="memItemRight" valign="bottom"><b>output_type</b></td></tr> <tr class="separator:abedb8c98e62146c3473344b7148173b8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3c34a2182dcbbded45da979b0f405817"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c34a2182dcbbded45da979b0f405817"></a> typedef <a class="el" href="a00124.html">sender</a>< <a class="el" href="a00106.html#a16eccc851b858604344bb8f1bb9eedc8">input_type</a> > </td><td class="memItemRight" valign="bottom"><b>predecessor_type</b></td></tr> <tr class="separator:a3c34a2182dcbbded45da979b0f405817"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5e505e0c4a904e2c1ded8c7c8f657c3b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e505e0c4a904e2c1ded8c7c8f657c3b"></a> typedef <a class="el" href="a00106.html">receiver</a>< <a class="el" href="a00124.html#add86fddf72758d8e5b05b07650c6eeed">output_type</a> > </td><td class="memItemRight" valign="bottom"><b>successor_type</b></td></tr> <tr class="separator:a5e505e0c4a904e2c1ded8c7c8f657c3b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a60032183e0f0266dc17b140e47dd8fc1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60032183e0f0266dc17b140e47dd8fc1"></a> typedef <a class="el" href="a00027.html">buffer_node</a>< T, A > </td><td class="memItemRight" valign="bottom"><b>my_class</b></td></tr> <tr class="separator:a60032183e0f0266dc17b140e47dd8fc1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_types_a00106"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00106')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="a00106.html">tbb::flow::interface7::receiver< T ></a></td></tr> <tr class="memitem:a16eccc851b858604344bb8f1bb9eedc8 inherit pub_types_a00106"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16eccc851b858604344bb8f1bb9eedc8"></a> typedef T </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#a16eccc851b858604344bb8f1bb9eedc8">input_type</a></td></tr> <tr class="memdesc:a16eccc851b858604344bb8f1bb9eedc8 inherit pub_types_a00106"><td class="mdescLeft"> </td><td class="mdescRight">The input type of this receiver. <br/></td></tr> <tr class="separator:a16eccc851b858604344bb8f1bb9eedc8 inherit pub_types_a00106"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afbadf5511bd568d283040cd88bd4e81e inherit pub_types_a00106"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbadf5511bd568d283040cd88bd4e81e"></a> typedef <a class="el" href="a00124.html">sender</a>< T > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#afbadf5511bd568d283040cd88bd4e81e">predecessor_type</a></td></tr> <tr class="memdesc:afbadf5511bd568d283040cd88bd4e81e inherit pub_types_a00106"><td class="mdescLeft"> </td><td class="mdescRight">The predecessor type for this node. <br/></td></tr> <tr class="separator:afbadf5511bd568d283040cd88bd4e81e inherit pub_types_a00106"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_types_a00124"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a00124')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="a00124.html">tbb::flow::interface7::sender< T ></a></td></tr> <tr class="memitem:add86fddf72758d8e5b05b07650c6eeed inherit pub_types_a00124"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add86fddf72758d8e5b05b07650c6eeed"></a> typedef T </td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html#add86fddf72758d8e5b05b07650c6eeed">output_type</a></td></tr> <tr class="memdesc:add86fddf72758d8e5b05b07650c6eeed inherit pub_types_a00124"><td class="mdescLeft"> </td><td class="mdescRight">The output type of this sender. <br/></td></tr> <tr class="separator:add86fddf72758d8e5b05b07650c6eeed inherit pub_types_a00124"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7779627063a29d4d2a1fc905a5cae8db inherit pub_types_a00124"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7779627063a29d4d2a1fc905a5cae8db"></a> typedef <a class="el" href="a00106.html">receiver</a>< T > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html#a7779627063a29d4d2a1fc905a5cae8db">successor_type</a></td></tr> <tr class="memdesc:a7779627063a29d4d2a1fc905a5cae8db inherit pub_types_a00124"><td class="mdescLeft"> </td><td class="mdescRight">The successor type for this node. <br/></td></tr> <tr class="separator:a7779627063a29d4d2a1fc905a5cae8db inherit pub_types_a00124"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a152f7bb9ab1f033ec56caa451327634c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a152f7bb9ab1f033ec56caa451327634c"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a152f7bb9ab1f033ec56caa451327634c">buffer_node</a> (<a class="el" href="a00061.html">graph</a> &g)</td></tr> <tr class="memdesc:a152f7bb9ab1f033ec56caa451327634c"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br/></td></tr> <tr class="separator:a152f7bb9ab1f033ec56caa451327634c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a739635c43d1150f2c8dd3f455d698d36"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a739635c43d1150f2c8dd3f455d698d36"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a739635c43d1150f2c8dd3f455d698d36">buffer_node</a> (const <a class="el" href="a00027.html">buffer_node</a> &src)</td></tr> <tr class="memdesc:a739635c43d1150f2c8dd3f455d698d36"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <br/></td></tr> <tr class="separator:a739635c43d1150f2c8dd3f455d698d36"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6d38f53c02a6fa64754826249dab5185"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d38f53c02a6fa64754826249dab5185"></a> void </td><td class="memItemRight" valign="bottom"><b>set_name</b> (const char *name)</td></tr> <tr class="separator:a6d38f53c02a6fa64754826249dab5185"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab458d9fa2c7d6f39ec62d4027c9da376"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#ab458d9fa2c7d6f39ec62d4027c9da376">register_successor</a> (<a class="el" href="a00106.html">receiver</a>< <a class="el" href="a00124.html#add86fddf72758d8e5b05b07650c6eeed">output_type</a> > &r)</td></tr> <tr class="memdesc:ab458d9fa2c7d6f39ec62d4027c9da376"><td class="mdescLeft"> </td><td class="mdescRight">Adds a new successor. <a href="#ab458d9fa2c7d6f39ec62d4027c9da376">More...</a><br/></td></tr> <tr class="separator:ab458d9fa2c7d6f39ec62d4027c9da376"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a70d3c1fb1af11deb9b92fa753fa8604c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a70d3c1fb1af11deb9b92fa753fa8604c">remove_successor</a> (<a class="el" href="a00106.html">receiver</a>< <a class="el" href="a00124.html#add86fddf72758d8e5b05b07650c6eeed">output_type</a> > &r)</td></tr> <tr class="memdesc:a70d3c1fb1af11deb9b92fa753fa8604c"><td class="mdescLeft"> </td><td class="mdescRight">Removes a successor. <a href="#a70d3c1fb1af11deb9b92fa753fa8604c">More...</a><br/></td></tr> <tr class="separator:a70d3c1fb1af11deb9b92fa753fa8604c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a175cb77dfbdd0e322097a833a2271c1e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a175cb77dfbdd0e322097a833a2271c1e">try_get</a> (T &v)</td></tr> <tr class="memdesc:a175cb77dfbdd0e322097a833a2271c1e"><td class="mdescLeft"> </td><td class="mdescRight">Request an item from the <a class="el" href="a00027.html" title="Forwards messages in arbitrary order. ">buffer_node</a>. <a href="#a175cb77dfbdd0e322097a833a2271c1e">More...</a><br/></td></tr> <tr class="separator:a175cb77dfbdd0e322097a833a2271c1e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3b12cdebf8cef15b90e3c9cd9e51019f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a3b12cdebf8cef15b90e3c9cd9e51019f">try_reserve</a> (T &v)</td></tr> <tr class="memdesc:a3b12cdebf8cef15b90e3c9cd9e51019f"><td class="mdescLeft"> </td><td class="mdescRight">Reserves an item. <a href="#a3b12cdebf8cef15b90e3c9cd9e51019f">More...</a><br/></td></tr> <tr class="separator:a3b12cdebf8cef15b90e3c9cd9e51019f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaa3745fd4705345df16fb33954d93e30"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#aaa3745fd4705345df16fb33954d93e30">try_release</a> ()</td></tr> <tr class="memdesc:aaa3745fd4705345df16fb33954d93e30"><td class="mdescLeft"> </td><td class="mdescRight">Release a reserved item. <a href="#aaa3745fd4705345df16fb33954d93e30">More...</a><br/></td></tr> <tr class="separator:aaa3745fd4705345df16fb33954d93e30"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a335072bc547c5e9b40f58dfeab525953"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a335072bc547c5e9b40f58dfeab525953">try_consume</a> ()</td></tr> <tr class="memdesc:a335072bc547c5e9b40f58dfeab525953"><td class="mdescLeft"> </td><td class="mdescRight">Consumes a reserved item. <a href="#a335072bc547c5e9b40f58dfeab525953">More...</a><br/></td></tr> <tr class="separator:a335072bc547c5e9b40f58dfeab525953"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_a00063"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00063')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="a00063.html">tbb::flow::interface7::graph_node</a></td></tr> <tr class="memitem:a4badd313105e30f539882276353dcb8e inherit pub_methods_a00063"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4badd313105e30f539882276353dcb8e"></a>  </td><td class="memItemRight" valign="bottom"><b>graph_node</b> (<a class="el" href="a00061.html">graph</a> &g)</td></tr> <tr class="separator:a4badd313105e30f539882276353dcb8e inherit pub_methods_a00063"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_a00106"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00106')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="a00106.html">tbb::flow::interface7::receiver< T ></a></td></tr> <tr class="memitem:a733889a9053478ef2fb2528e2205bf07 inherit pub_methods_a00106"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a733889a9053478ef2fb2528e2205bf07"></a> virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#a733889a9053478ef2fb2528e2205bf07">~receiver</a> ()</td></tr> <tr class="memdesc:a733889a9053478ef2fb2528e2205bf07 inherit pub_methods_a00106"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br/></td></tr> <tr class="separator:a733889a9053478ef2fb2528e2205bf07 inherit pub_methods_a00106"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aee5067bb4f4b71ffa786c1b33cb9aa6a inherit pub_methods_a00106"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee5067bb4f4b71ffa786c1b33cb9aa6a"></a> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#aee5067bb4f4b71ffa786c1b33cb9aa6a">try_put</a> (const T &t)</td></tr> <tr class="memdesc:aee5067bb4f4b71ffa786c1b33cb9aa6a inherit pub_methods_a00106"><td class="mdescLeft"> </td><td class="mdescRight">Put an item to the receiver. <br/></td></tr> <tr class="separator:aee5067bb4f4b71ffa786c1b33cb9aa6a inherit pub_methods_a00106"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a16427aa709505de93ffe0d79136e4251 inherit pub_methods_a00106"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16427aa709505de93ffe0d79136e4251"></a> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#a16427aa709505de93ffe0d79136e4251">register_predecessor</a> (<a class="el" href="a00106.html#afbadf5511bd568d283040cd88bd4e81e">predecessor_type</a> &)</td></tr> <tr class="memdesc:a16427aa709505de93ffe0d79136e4251 inherit pub_methods_a00106"><td class="mdescLeft"> </td><td class="mdescRight">Add a predecessor to the node. <br/></td></tr> <tr class="separator:a16427aa709505de93ffe0d79136e4251 inherit pub_methods_a00106"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a55adae6228bbdc1539695e1ec20e9762 inherit pub_methods_a00106"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55adae6228bbdc1539695e1ec20e9762"></a> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#a55adae6228bbdc1539695e1ec20e9762">remove_predecessor</a> (<a class="el" href="a00106.html#afbadf5511bd568d283040cd88bd4e81e">predecessor_type</a> &)</td></tr> <tr class="memdesc:a55adae6228bbdc1539695e1ec20e9762 inherit pub_methods_a00106"><td class="mdescLeft"> </td><td class="mdescRight">Remove a predecessor from the node. <br/></td></tr> <tr class="separator:a55adae6228bbdc1539695e1ec20e9762 inherit pub_methods_a00106"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a> Protected Types</h2></td></tr> <tr class="memitem:a0e9c45eefd5231c6a7f8e78ab4b3e3c1"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><b>op_type</b> { <br/>   <b>reg_succ</b>, <b>rem_succ</b>, <b>req_item</b>, <b>res_item</b>, <br/>   <b>rel_res</b>, <b>con_res</b>, <b>put_item</b>, <b>try_fwd_task</b> <br/> }</td></tr> <tr class="separator:a0e9c45eefd5231c6a7f8e78ab4b3e3c1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a97578c4c0b47aa1e7281d0343f45c6e2"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><b>op_stat</b> { <b>WAIT</b> =0, <b>SUCCEEDED</b>, <b>FAILED</b> }</td></tr> <tr class="separator:a97578c4c0b47aa1e7281d0343f45c6e2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac2ba7ceb6c4c435c5abc9846a91853e2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2ba7ceb6c4c435c5abc9846a91853e2"></a> typedef size_t </td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr> <tr class="separator:ac2ba7ceb6c4c435c5abc9846a91853e2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7f1a187e32fb9a630a142ef37aeda958"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f1a187e32fb9a630a142ef37aeda958"></a> typedef <br class="typebreak"/> internal::aggregating_functor<br class="typebreak"/> < <a class="el" href="a00027.html">my_class</a>, <a class="el" href="a00028.html">buffer_operation</a> > </td><td class="memItemRight" valign="bottom"><b>my_handler</b></td></tr> <tr class="separator:a7f1a187e32fb9a630a142ef37aeda958"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr class="memitem:a2d09326016a31e17acd57f8e6ce58054"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d09326016a31e17acd57f8e6ce58054"></a> virtual void </td><td class="memItemRight" valign="bottom"><b>handle_operations</b> (<a class="el" href="a00028.html">buffer_operation</a> *op_list)</td></tr> <tr class="separator:a2d09326016a31e17acd57f8e6ce58054"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5fde962bed26ee41c370e48bce678320"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5fde962bed26ee41c370e48bce678320"></a> task * </td><td class="memItemRight" valign="bottom"><b>grab_forwarding_task</b> (<a class="el" href="a00028.html">buffer_operation</a> &op_data)</td></tr> <tr class="separator:a5fde962bed26ee41c370e48bce678320"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a19dbfc4065f57efd7375fcc1b259dd9c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a19dbfc4065f57efd7375fcc1b259dd9c"></a> bool </td><td class="memItemRight" valign="bottom"><b>enqueue_forwarding_task</b> (<a class="el" href="a00028.html">buffer_operation</a> &op_data)</td></tr> <tr class="separator:a19dbfc4065f57efd7375fcc1b259dd9c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8910a497040a4c6f1a6a1fb7a33a8888"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8910a497040a4c6f1a6a1fb7a33a8888"></a> virtual task * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a8910a497040a4c6f1a6a1fb7a33a8888">forward_task</a> ()</td></tr> <tr class="memdesc:a8910a497040a4c6f1a6a1fb7a33a8888"><td class="mdescLeft"> </td><td class="mdescRight">This is executed by an enqueued task, the "forwarder". <br/></td></tr> <tr class="separator:a8910a497040a4c6f1a6a1fb7a33a8888"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afa2dd93a1b42e77ccf7e1de0fddf3158"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa2dd93a1b42e77ccf7e1de0fddf3158"></a> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#afa2dd93a1b42e77ccf7e1de0fddf3158">internal_reg_succ</a> (<a class="el" href="a00028.html">buffer_operation</a> *op)</td></tr> <tr class="memdesc:afa2dd93a1b42e77ccf7e1de0fddf3158"><td class="mdescLeft"> </td><td class="mdescRight">Register successor. <br/></td></tr> <tr class="separator:afa2dd93a1b42e77ccf7e1de0fddf3158"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a46c7f9cd9130036244d4ea8efd74bf22"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46c7f9cd9130036244d4ea8efd74bf22"></a> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a46c7f9cd9130036244d4ea8efd74bf22">internal_rem_succ</a> (<a class="el" href="a00028.html">buffer_operation</a> *op)</td></tr> <tr class="memdesc:a46c7f9cd9130036244d4ea8efd74bf22"><td class="mdescLeft"> </td><td class="mdescRight">Remove successor. <br/></td></tr> <tr class="separator:a46c7f9cd9130036244d4ea8efd74bf22"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3aa7578ccbd3d5f986869ab8698c037c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3aa7578ccbd3d5f986869ab8698c037c"></a> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#a3aa7578ccbd3d5f986869ab8698c037c">internal_forward_task</a> (<a class="el" href="a00028.html">buffer_operation</a> *op)</td></tr> <tr class="memdesc:a3aa7578ccbd3d5f986869ab8698c037c"><td class="mdescLeft"> </td><td class="mdescRight">Tries to forward valid items to successors. <br/></td></tr> <tr class="separator:a3aa7578ccbd3d5f986869ab8698c037c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2fe75e82e8dffa7d13fa9e82d9951dba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fe75e82e8dffa7d13fa9e82d9951dba"></a> virtual void </td><td class="memItemRight" valign="bottom"><b>internal_push</b> (<a class="el" href="a00028.html">buffer_operation</a> *op)</td></tr> <tr class="separator:a2fe75e82e8dffa7d13fa9e82d9951dba"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a574bf95b7b06f24bafb13aa586dd2c66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a574bf95b7b06f24bafb13aa586dd2c66"></a> virtual void </td><td class="memItemRight" valign="bottom"><b>internal_pop</b> (<a class="el" href="a00028.html">buffer_operation</a> *op)</td></tr> <tr class="separator:a574bf95b7b06f24bafb13aa586dd2c66"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aeaea0922cb1344925524d892864f78e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeaea0922cb1344925524d892864f78e0"></a> virtual void </td><td class="memItemRight" valign="bottom"><b>internal_reserve</b> (<a class="el" href="a00028.html">buffer_operation</a> *op)</td></tr> <tr class="separator:aeaea0922cb1344925524d892864f78e0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5f90411a5cc3f5c7c4210f8bb4e73f68"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f90411a5cc3f5c7c4210f8bb4e73f68"></a> virtual void </td><td class="memItemRight" valign="bottom"><b>internal_consume</b> (<a class="el" href="a00028.html">buffer_operation</a> *op)</td></tr> <tr class="separator:a5f90411a5cc3f5c7c4210f8bb4e73f68"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae7b3eee1ec878f6f0055f6133b233c09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7b3eee1ec878f6f0055f6133b233c09"></a> virtual void </td><td class="memItemRight" valign="bottom"><b>internal_release</b> (<a class="el" href="a00028.html">buffer_operation</a> *op)</td></tr> <tr class="separator:ae7b3eee1ec878f6f0055f6133b233c09"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa4517c0a58649ea5eb140ab4b786e1ec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4517c0a58649ea5eb140ab4b786e1ec"></a> task * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#aa4517c0a58649ea5eb140ab4b786e1ec">try_put_task</a> (const T &t)</td></tr> <tr class="memdesc:aa4517c0a58649ea5eb140ab4b786e1ec"><td class="mdescLeft"> </td><td class="mdescRight">receive an item, return a task *if possible <br/></td></tr> <tr class="separator:aa4517c0a58649ea5eb140ab4b786e1ec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5c02d02bdb7ab20055d2f0aaba8d3c9c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c02d02bdb7ab20055d2f0aaba8d3c9c"></a> void </td><td class="memItemRight" valign="bottom"><b>reset</b> ()</td></tr> <tr class="separator:a5c02d02bdb7ab20055d2f0aaba8d3c9c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa4fe0ea40c0f1ed6d109eed8d8bf25ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4fe0ea40c0f1ed6d109eed8d8bf25ee"></a> void </td><td class="memItemRight" valign="bottom"><b>reset_receiver</b> ()</td></tr> <tr class="separator:aa4fe0ea40c0f1ed6d109eed8d8bf25ee"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_methods_a00106"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_a00106')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="a00106.html">tbb::flow::interface7::receiver< T ></a></td></tr> <tr class="memitem:ae91eab3e06d4139ac38f143c74fe9eab inherit pro_methods_a00106"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae91eab3e06d4139ac38f143c74fe9eab"></a> virtual bool </td><td class="memItemRight" valign="bottom"><b>is_continue_receiver</b> ()</td></tr> <tr class="separator:ae91eab3e06d4139ac38f143c74fe9eab inherit pro_methods_a00106"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:ade2fe89be00e023aafb1d3c380762048"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade2fe89be00e023aafb1d3c380762048"></a> <a class="el" href="a00108.html">internal::round_robin_cache</a>< T, <br class="typebreak"/> <a class="el" href="a00084.html">null_rw_mutex</a> > </td><td class="memItemRight" valign="bottom"><b>my_successors</b></td></tr> <tr class="separator:ade2fe89be00e023aafb1d3c380762048"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a441fb73f0e15aed49945fb7ec9925e9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a441fb73f0e15aed49945fb7ec9925e9f"></a> bool </td><td class="memItemRight" valign="bottom"><b>forwarder_busy</b></td></tr> <tr class="separator:a441fb73f0e15aed49945fb7ec9925e9f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adc948866a1eb4c7a95b0edc08872d487"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc948866a1eb4c7a95b0edc08872d487"></a> internal::aggregator<br class="typebreak"/> < my_handler, <a class="el" href="a00028.html">buffer_operation</a> > </td><td class="memItemRight" valign="bottom"><b>my_aggregator</b></td></tr> <tr class="separator:adc948866a1eb4c7a95b0edc08872d487"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_attribs_a00063"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_a00063')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="a00063.html">tbb::flow::interface7::graph_node</a></td></tr> <tr class="memitem:a1caee1c5677047b05d18b1662ca6fdf8 inherit pro_attribs_a00063"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1caee1c5677047b05d18b1662ca6fdf8"></a> <a class="el" href="a00061.html">graph</a> & </td><td class="memItemRight" valign="bottom"><b>my_graph</b></td></tr> <tr class="separator:a1caee1c5677047b05d18b1662ca6fdf8 inherit pro_attribs_a00063"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af48cd0cd4f6e44efc3b353adb55f86a8 inherit pro_attribs_a00063"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af48cd0cd4f6e44efc3b353adb55f86a8"></a> <a class="el" href="a00063.html">graph_node</a> * </td><td class="memItemRight" valign="bottom"><b>next</b></td></tr> <tr class="separator:af48cd0cd4f6e44efc3b353adb55f86a8 inherit pro_attribs_a00063"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6917bffc3cb150319679bf2395e68caa inherit pro_attribs_a00063"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6917bffc3cb150319679bf2395e68caa"></a> <a class="el" href="a00063.html">graph_node</a> * </td><td class="memItemRight" valign="bottom"><b>prev</b></td></tr> <tr class="separator:a6917bffc3cb150319679bf2395e68caa inherit pro_attribs_a00063"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a> Friends</h2></td></tr> <tr class="memitem:ad66dc7488e0c58eef0d3ae292d900c04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad66dc7488e0c58eef0d3ae292d900c04"></a> class </td><td class="memItemRight" valign="bottom"><b>internal::forward_task_bypass< buffer_node< T, A > ></b></td></tr> <tr class="separator:ad66dc7488e0c58eef0d3ae292d900c04"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8fa999cf286dcad00faeece4cbfa35d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8fa999cf286dcad00faeece4cbfa35d2"></a> class </td><td class="memItemRight" valign="bottom"><b>internal::aggregating_functor< my_class, buffer_operation ></b></td></tr> <tr class="separator:a8fa999cf286dcad00faeece4cbfa35d2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abaf9bf74ca5f2854d09f5f07337280eb"><td class="memTemplParams" colspan="2"><a class="anchor" id="abaf9bf74ca5f2854d09f5f07337280eb"></a> template<typename R , typename B > </td></tr> <tr class="memitem:abaf9bf74ca5f2854d09f5f07337280eb"><td class="memTemplItemLeft" align="right" valign="top">class </td><td class="memTemplItemRight" valign="bottom"><b>run_and_put_task</b></td></tr> <tr class="separator:abaf9bf74ca5f2854d09f5f07337280eb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1360e38efe396058978cf3754ad620f5"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1360e38efe396058978cf3754ad620f5"></a> template<typename X , typename Y > </td></tr> <tr class="memitem:a1360e38efe396058978cf3754ad620f5"><td class="memTemplItemLeft" align="right" valign="top">class </td><td class="memTemplItemRight" valign="bottom"><b>internal::broadcast_cache</b></td></tr> <tr class="separator:a1360e38efe396058978cf3754ad620f5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acbd9ac2610587a99cd7d43344297cc49"><td class="memTemplParams" colspan="2"><a class="anchor" id="acbd9ac2610587a99cd7d43344297cc49"></a> template<typename X , typename Y > </td></tr> <tr class="memitem:acbd9ac2610587a99cd7d43344297cc49"><td class="memTemplItemLeft" align="right" valign="top">class </td><td class="memTemplItemRight" valign="bottom"><b>internal::round_robin_cache</b></td></tr> <tr class="separator:acbd9ac2610587a99cd7d43344297cc49"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><h3>template<typename T, typename A = cache_aligned_allocator<T>><br/> class tbb::flow::interface7::buffer_node< T, A ></h3>
<p>Forwards messages in arbitrary order. </p> </div><h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="ab458d9fa2c7d6f39ec62d4027c9da376"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename T, typename A = cache_aligned_allocator<T>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00027.html">tbb::flow::interface7::buffer_node</a>< T, A >::register_successor </td> <td>(</td> <td class="paramtype"><a class="el" href="a00106.html">receiver</a>< <a class="el" href="a00124.html#add86fddf72758d8e5b05b07650c6eeed">output_type</a> > & </td> <td class="paramname"><em>r</em>)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Adds a new successor. </p> <p>Adds successor r to the list of successors; may forward tasks. </p>
<p>Implements <a class="el" href="a00124.html#a4dac8f53a1f8373c1f3a874b9617e4ec">tbb::flow::interface7::sender< T ></a>.</p>
</div> </div> <a class="anchor" id="a70d3c1fb1af11deb9b92fa753fa8604c"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename T, typename A = cache_aligned_allocator<T>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00027.html">tbb::flow::interface7::buffer_node</a>< T, A >::remove_successor </td> <td>(</td> <td class="paramtype"><a class="el" href="a00106.html">receiver</a>< <a class="el" href="a00124.html#add86fddf72758d8e5b05b07650c6eeed">output_type</a> > & </td> <td class="paramname"><em>r</em>)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Removes a successor. </p> <p>Removes successor r from the list of successors. It also calls r.remove_predecessor(*this) to remove this node as a predecessor. </p>
<p>Implements <a class="el" href="a00124.html#ac1ae19f49e31c6ca94dcf14732eb7a64">tbb::flow::interface7::sender< T ></a>.</p>
</div> </div> <a class="anchor" id="a335072bc547c5e9b40f58dfeab525953"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename T, typename A = cache_aligned_allocator<T>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00027.html">tbb::flow::interface7::buffer_node</a>< T, A >::try_consume </td> <td>(</td> <td class="paramname">)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Consumes a reserved item. </p> <p>true = item is removed from sender and reservation removed </p>
<p>Reimplemented from <a class="el" href="a00124.html#ad404d5218c7ae2556261ffa880cdf804">tbb::flow::interface7::sender< T ></a>.</p>
</div> </div> <a class="anchor" id="a175cb77dfbdd0e322097a833a2271c1e"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename T, typename A = cache_aligned_allocator<T>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00027.html">tbb::flow::interface7::buffer_node</a>< T, A >::try_get </td> <td>(</td> <td class="paramtype">T & </td> <td class="paramname"><em>v</em>)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Request an item from the <a class="el" href="a00027.html" title="Forwards messages in arbitrary order. ">buffer_node</a>. </p> <p>true = v contains the returned item<br/> false = no item has been returned </p>
<p>Reimplemented from <a class="el" href="a00124.html#ad50b8ac93e79cbdcd2bba11d35432f2c">tbb::flow::interface7::sender< T ></a>.</p>
</div> </div> <a class="anchor" id="aaa3745fd4705345df16fb33954d93e30"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename T, typename A = cache_aligned_allocator<T>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00027.html">tbb::flow::interface7::buffer_node</a>< T, A >::try_release </td> <td>(</td> <td class="paramname">)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Release a reserved item. </p> <p>true = item has been released and so remains in sender </p>
<p>Reimplemented from <a class="el" href="a00124.html#a97ac316ddfb6bd7c7f2f56e3e819a30a">tbb::flow::interface7::sender< T ></a>.</p>
</div> </div> <a class="anchor" id="a3b12cdebf8cef15b90e3c9cd9e51019f"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename T, typename A = cache_aligned_allocator<T>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00027.html">tbb::flow::interface7::buffer_node</a>< T, A >::try_reserve </td> <td>(</td> <td class="paramtype">T & </td> <td class="paramname"><em>v</em>)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Reserves an item. </p> <p>false = no item can be reserved<br/> true = an item is reserved </p>
<p>Reimplemented from <a class="el" href="a00124.html#aa1b9dcf77ab558530ff93a706b4c4b5d">tbb::flow::interface7::sender< T ></a>.</p>
</div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a00179.html">flow_graph.h</a></li> </ul> </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.
|