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.
							 |