tbb::flow::interface6::limiter_node< T > Class Template Reference

Forwards messages only if the threshold has not been reached. More...

#include <flow_graph.h>

Inheritance diagram for tbb::flow::interface6::limiter_node< T >:

tbb::flow::interface6::graph_node tbb::flow::interface6::receiver< T > tbb::flow::interface6::sender< T > List of all members.

Public Types

typedef T input_type
 The input type of this receiver.
typedef T output_type
 The output type of this sender.
typedef sender< input_typepredecessor_type
 The predecessor type for this node.
typedef receiver< output_typesuccessor_type
 The successor type for this node.

Public Member Functions

 limiter_node (graph &g, size_t threshold, int num_decrement_predecessors=0)
 Constructor.
 limiter_node (const limiter_node &src)
 Copy constructor.
bool register_successor (receiver< output_type > &r)
 Replace the current successor with this new successor.
bool remove_successor (receiver< output_type > &r)
 Removes a successor from this node.
bool try_put (const T &t)
 Puts an item to this receiver.
bool register_predecessor (predecessor_type &src)
 Removes src from the list of cached predecessors.
bool remove_predecessor (predecessor_type &src)
 Removes src from the list of cached predecessors.

Public Attributes

internal::decrementer< limiter_node<
T > > 
decrement
 The internal receiver< continue_msg > that decrements the count.

Friends

class internal::forward_task< limiter_node< T > >
class internal::decrementer< limiter_node< T > >

Detailed Description

template<typename T>
class tbb::flow::interface6::limiter_node< T >

Forwards messages only if the threshold has not been reached.

This node forwards items until its threshold is reached. It contains no buffering. If the downstream node rejects, the message is dropped.


Member Function Documentation

template<typename T>
bool tbb::flow::interface6::limiter_node< T >::remove_successor ( receiver< output_type > &  r  )  [inline, virtual]

Removes a successor from this node.

r.remove_predecessor(*this) is also called.

Implements tbb::flow::interface6::sender< T >.


The documentation for this class was generated from the following file:

Copyright © 2005-2011 Intel Corporation. All Rights Reserved.

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.

* Other names and brands may be claimed as the property of others.