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.
160 lines
14 KiB
160 lines
14 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>tbb::flow::interface6::limiter_node< T > Class Template 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 id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li><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="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 class="nav">
|
|
<a class="el" href="a00428.html">tbb</a>::<b>flow</b>::<b>interface6</b>::<a class="el" href="a00304.html">limiter_node</a></div>
|
|
<h1>tbb::flow::interface6::limiter_node< T > Class Template Reference</h1><!-- doxytag: class="tbb::flow::interface6::limiter_node" --><!-- doxytag: inherits="tbb::flow::interface6::graph_node,tbb::flow::interface6::receiver,tbb::flow::interface6::sender" -->Forwards messages only if the threshold has not been reached.
|
|
<a href="#_details">More...</a>
|
|
<p>
|
|
<code>#include <flow_graph.h></code>
|
|
<p>
|
|
<p>Inheritance diagram for tbb::flow::interface6::limiter_node< T >:
|
|
<p><center><img src="a00304.png" usemap="#tbb::flow::interface6::limiter_node< T >_map" border="0" alt=""></center>
|
|
<map name="tbb::flow::interface6::limiter_node< T >_map">
|
|
<area href="a00301.html" alt="tbb::flow::interface6::graph_node" shape="rect" coords="0,0,226,24">
|
|
<area href="a00333.html" alt="tbb::flow::interface6::receiver< T >" shape="rect" coords="236,0,462,24">
|
|
<area href="a00339.html" alt="tbb::flow::interface6::sender< T >" shape="rect" coords="472,0,698,24">
|
|
</map>
|
|
<a href="a00079.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><td></td></tr>
|
|
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="035196d3c9240ef041f528ebcde8baa7"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::input_type" ref="035196d3c9240ef041f528ebcde8baa7" args="" -->
|
|
typedef T </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#035196d3c9240ef041f528ebcde8baa7">input_type</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The input type of this receiver. <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6e67fc480147c0b88a483b85db6457b0"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::output_type" ref="6e67fc480147c0b88a483b85db6457b0" args="" -->
|
|
typedef T </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#6e67fc480147c0b88a483b85db6457b0">output_type</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The output type of this sender. <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f89fcf44f38eb33f965ee5362d3e68e9"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::predecessor_type" ref="f89fcf44f38eb33f965ee5362d3e68e9" args="" -->
|
|
typedef <a class="el" href="a00339.html">sender</a>< <a class="el" href="a00304.html#035196d3c9240ef041f528ebcde8baa7">input_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#f89fcf44f38eb33f965ee5362d3e68e9">predecessor_type</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The predecessor type for this node. <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e8945e4dd6ea759ff9e4735da13f12ef"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::successor_type" ref="e8945e4dd6ea759ff9e4735da13f12ef" args="" -->
|
|
typedef <a class="el" href="a00333.html">receiver</a>< <a class="el" href="a00304.html#6e67fc480147c0b88a483b85db6457b0">output_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#e8945e4dd6ea759ff9e4735da13f12ef">successor_type</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The successor type for this node. <br></td></tr>
|
|
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="831b06576f46fe2bf3ed0f86b793c1b2"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::limiter_node" ref="831b06576f46fe2bf3ed0f86b793c1b2" args="(graph &g, size_t threshold, int num_decrement_predecessors=0)" -->
|
|
</td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#831b06576f46fe2bf3ed0f86b793c1b2">limiter_node</a> (<a class="el" href="a00300.html">graph</a> &g, size_t threshold, int num_decrement_predecessors=0)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="83d3ab884543b070ee5b345a87f241fa"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::limiter_node" ref="83d3ab884543b070ee5b345a87f241fa" args="(const limiter_node &src)" -->
|
|
</td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#83d3ab884543b070ee5b345a87f241fa">limiter_node</a> (const <a class="el" href="a00304.html">limiter_node</a> &src)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c76561d8d871b4769876988a4de12a9b"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::register_successor" ref="c76561d8d871b4769876988a4de12a9b" args="(receiver< output_type > &r)" -->
|
|
bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#c76561d8d871b4769876988a4de12a9b">register_successor</a> (<a class="el" href="a00333.html">receiver</a>< <a class="el" href="a00304.html#6e67fc480147c0b88a483b85db6457b0">output_type</a> > &r)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Replace the current successor with this new successor. <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#275e328063c121b3e506ccef2a825d28">remove_successor</a> (<a class="el" href="a00333.html">receiver</a>< <a class="el" href="a00304.html#6e67fc480147c0b88a483b85db6457b0">output_type</a> > &r)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes a successor from this node. <a href="#275e328063c121b3e506ccef2a825d28"></a><br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="de70a0e88ce7655d8c14b6af57f7496f"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::register_predecessor" ref="de70a0e88ce7655d8c14b6af57f7496f" args="(predecessor_type &src)" -->
|
|
bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#de70a0e88ce7655d8c14b6af57f7496f">register_predecessor</a> (<a class="el" href="a00339.html">predecessor_type</a> &src)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes src from the list of cached predecessors. <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c530e7b469454e2340460795f2da3317"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::remove_predecessor" ref="c530e7b469454e2340460795f2da3317" args="(predecessor_type &src)" -->
|
|
bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#c530e7b469454e2340460795f2da3317">remove_predecessor</a> (<a class="el" href="a00339.html">predecessor_type</a> &src)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes src from the list of cached predecessors. <br></td></tr>
|
|
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a3344b2461966631b6ee34b79fb105c7"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::decrement" ref="a3344b2461966631b6ee34b79fb105c7" args="" -->
|
|
internal::decrementer< <a class="el" href="a00304.html">limiter_node</a><<br>
|
|
T > > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#a3344b2461966631b6ee34b79fb105c7">decrement</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The internal receiver< continue_msg > that decrements the count. <br></td></tr>
|
|
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ca2ff9f3379b8b5a3de2ababbca4a476"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::try_put_task" ref="ca2ff9f3379b8b5a3de2ababbca4a476" args="(const T &t)" -->
|
|
<a class="el" href="a00349.html">task</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#ca2ff9f3379b8b5a3de2ababbca4a476">try_put_task</a> (const T &t)</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Puts an item to this receiver. <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8b9c771bcf9137829f0e5b73044f8b7e"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::reset" ref="8b9c771bcf9137829f0e5b73044f8b7e" args="()" -->
|
|
void </td><td class="memItemRight" valign="bottom"><b>reset</b> ()</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="68591a3690d26ade0610ddd6f3e076c5"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::reset_receiver" ref="68591a3690d26ade0610ddd6f3e076c5" args="()" -->
|
|
void </td><td class="memItemRight" valign="bottom"><b>reset_receiver</b> ()</td></tr>
|
|
|
|
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="74b341552e1314d2e318be9066a1d151"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::internal::forward_task_bypass< limiter_node< T > >" ref="74b341552e1314d2e318be9066a1d151" args="" -->
|
|
class </td><td class="memItemRight" valign="bottom"><b>internal::forward_task_bypass< limiter_node< T > ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b43677b60c786d1071a7efd6f195c3be"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::internal::decrementer< limiter_node< T > >" ref="b43677b60c786d1071a7efd6f195c3be" args="" -->
|
|
class </td><td class="memItemRight" valign="bottom"><b>internal::decrementer< limiter_node< T > ></b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="621bab40a858d214db69ef08d88b67c1"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::run_and_put_task" ref="621bab40a858d214db69ef08d88b67c1" args="" -->
|
|
class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00304.html#621bab40a858d214db69ef08d88b67c1">run_and_put_task</a></td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">put item to successor; return task to run the successor if possible. <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e4fa30d87bc0bfa80942f97a8d58f1bd"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::internal::broadcast_cache" ref="e4fa30d87bc0bfa80942f97a8d58f1bd" args="" -->
|
|
class </td><td class="memItemRight" valign="bottom"><b>internal::broadcast_cache</b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="31ba00ea3e3e5a421b38840bd0dc2589"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::internal::round_robin_cache" ref="31ba00ea3e3e5a421b38840bd0dc2589" args="" -->
|
|
class </td><td class="memItemRight" valign="bottom"><b>internal::round_robin_cache</b></td></tr>
|
|
|
|
</table>
|
|
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
|
<h3>template<typename T><br>
|
|
class tbb::flow::interface6::limiter_node< T ></h3>
|
|
|
|
Forwards messages only if the threshold has not been reached.
|
|
<p>
|
|
This node forwards items until its threshold is reached. It contains no buffering. If the downstream node rejects, the message is dropped.
|
|
<p>
|
|
<hr><h2>Member Function Documentation</h2>
|
|
<a class="anchor" name="275e328063c121b3e506ccef2a825d28"></a><!-- doxytag: member="tbb::flow::interface6::limiter_node::remove_successor" ref="275e328063c121b3e506ccef2a825d28" args="(receiver< output_type > &r)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool <a class="el" href="a00304.html">tbb::flow::interface6::limiter_node</a>< T >::remove_successor </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="a00333.html">receiver</a>< <a class="el" href="a00304.html#6e67fc480147c0b88a483b85db6457b0">output_type</a> > & </td>
|
|
<td class="paramname"> <em>r</em> </td>
|
|
<td> ) </td>
|
|
<td width="100%"><code> [inline, virtual]</code></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Removes a successor from this node.
|
|
<p>
|
|
r.remove_predecessor(*this) is also called.
|
|
<p>
|
|
Implements <a class="el" href="a00339.html#82f363bfb1738bb8789e167590b10ef9">tbb::flow::interface6::sender< T ></a>.
|
|
</div>
|
|
</div><p>
|
|
<hr>The documentation for this class was generated from the following file:<ul>
|
|
<li><a class="el" href="a00385.html">flow_graph.h</a></ul>
|
|
<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.
|