Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Forwards messages only if the threshold has not been reached. More...
#include <flow_graph.h>
Public Types | |
typedef T | input_type |
typedef T | output_type |
typedef receiver< input_type >::predecessor_type | predecessor_type |
typedef sender< output_type >::successor_type | successor_type |
Public Member Functions | |
limiter_node (graph &g, __TBB_DEPRECATED_LIMITER_ARG2(size_t threshold, int num_decrement_predecessors=0)) | |
Constructor. More... | |
limiter_node (const limiter_node &src) | |
Copy constructor. More... | |
bool | register_successor (successor_type &r) __TBB_override |
Replace the current successor with this new successor. More... | |
bool | remove_successor (successor_type &r) __TBB_override |
Removes a successor from this node. More... | |
bool | register_predecessor (predecessor_type &src) __TBB_override |
Adds src to the list of cached predecessors. More... | |
bool | remove_predecessor (predecessor_type &src) __TBB_override |
Removes src from the list of cached predecessors. More... | |
Public Attributes | |
internal::decrementer< limiter_node< T, DecrementType >, DecrementType > | decrement |
The internal receiver< DecrementType > that decrements the count. More... | |
Protected Member Functions | |
task * | try_put_task (const T &t) __TBB_override |
Puts an item to this receiver. More... | |
graph & | graph_reference () const __TBB_override |
void | reset_receiver (reset_flags) __TBB_override |
void | reset_node (reset_flags f) __TBB_override |
Private Member Functions | |
bool | check_conditions () |
task * | forward_task () |
void | forward () |
task * | decrement_counter (long long delta) |
void | initialize () |
Private Attributes | |
size_t | my_threshold |
size_t | my_count |
size_t | my_tries |
internal::reservable_predecessor_cache< T, spin_mutex > | my_predecessors |
spin_mutex | my_mutex |
internal::broadcast_cache< T > | my_successors |
Friends | |
class | internal::forward_task_bypass< limiter_node< T, DecrementType > > |
class | internal::decrementer< limiter_node< T, DecrementType >, DecrementType > |
template<typename R , typename B > | |
class | run_and_put_task |
template<typename X , typename Y > | |
class | internal::broadcast_cache |
template<typename X , typename Y > | |
class | internal::round_robin_cache |
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.
Definition at line 2985 of file flow_graph.h.
typedef T tbb::flow::interface11::limiter_node< T, DecrementType >::input_type |
Definition at line 2987 of file flow_graph.h.
typedef T tbb::flow::interface11::limiter_node< T, DecrementType >::output_type |
Definition at line 2988 of file flow_graph.h.
typedef receiver<input_type>::predecessor_type tbb::flow::interface11::limiter_node< T, DecrementType >::predecessor_type |
Definition at line 2989 of file flow_graph.h.
typedef sender<output_type>::successor_type tbb::flow::interface11::limiter_node< T, DecrementType >::successor_type |
Definition at line 2990 of file flow_graph.h.
|
inline |
Constructor.
Definition at line 3110 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::initialize().
|
inline |
Copy constructor.
Definition at line 3129 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::initialize().
|
inlineprivate |
Definition at line 3013 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::my_count, tbb::flow::interface11::limiter_node< T, DecrementType >::my_predecessors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_successors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_threshold, and tbb::flow::interface11::limiter_node< T, DecrementType >::my_tries.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::forward_task(), and tbb::flow::interface11::limiter_node< T, DecrementType >::try_put_task().
|
inlineprivate |
Definition at line 3076 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::forward_task(), lock, tbb::flow::interface11::limiter_node< T, DecrementType >::my_count, tbb::flow::interface11::limiter_node< T, DecrementType >::my_mutex, and tbb::flow::interface11::limiter_node< T, DecrementType >::my_threshold.
|
inlineprivate |
Definition at line 3071 of file flow_graph.h.
References __TBB_ASSERT.
|
inlineprivate |
Definition at line 3018 of file flow_graph.h.
References __TBB_ASSERT, tbb::flow::interface11::limiter_node< T, DecrementType >::check_conditions(), tbb::flow::interface11::limiter_node< T, DecrementType >::graph_reference(), tbb::flow::interface11::internal::is_graph_active(), lock, tbb::flow::interface11::limiter_node< T, DecrementType >::my_count, tbb::flow::interface11::limiter_node< T, DecrementType >::my_mutex, tbb::flow::interface11::limiter_node< T, DecrementType >::my_predecessors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_successors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_tries, and tbb::flow::interface11::internal::spawn_in_graph_arena().
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::decrement_counter().
|
inlineprotected |
Definition at line 3260 of file flow_graph.h.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::forward_task(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_predecessor(), and tbb::flow::interface11::limiter_node< T, DecrementType >::register_successor().
|
inlineprivate |
Definition at line 3089 of file flow_graph.h.
References CODEPTR, tbb::flow::interface11::limiter_node< T, DecrementType >::decrement, tbb::internal::fgt_node(), tbb::flow::interface11::limiter_node< T, DecrementType >::my_predecessors, and tbb::flow::interface11::limiter_node< T, DecrementType >::my_successors.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::limiter_node().
|
inline |
Adds src to the list of cached predecessors.
Definition at line 3210 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::graph_reference(), tbb::flow::interface11::internal::is_graph_active(), lock, tbb::flow::interface11::limiter_node< T, DecrementType >::my_count, tbb::flow::interface11::limiter_node< T, DecrementType >::my_mutex, tbb::flow::interface11::limiter_node< T, DecrementType >::my_predecessors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_successors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_threshold, tbb::flow::interface11::limiter_node< T, DecrementType >::my_tries, and tbb::flow::interface11::internal::spawn_in_graph_arena().
|
inline |
Replace the current successor with this new successor.
Definition at line 3146 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::graph_reference(), tbb::flow::interface11::internal::is_graph_active(), lock, tbb::flow::interface11::limiter_node< T, DecrementType >::my_count, tbb::flow::interface11::limiter_node< T, DecrementType >::my_mutex, tbb::flow::interface11::limiter_node< T, DecrementType >::my_predecessors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_successors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_threshold, tbb::flow::interface11::limiter_node< T, DecrementType >::my_tries, and tbb::flow::interface11::internal::spawn_in_graph_arena().
|
inline |
Removes src from the list of cached predecessors.
Definition at line 3222 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::my_predecessors.
|
inline |
Removes a successor from this node.
r.remove_predecessor(*this) is also called.
Definition at line 3163 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::my_successors.
|
inlineprotected |
Definition at line 3266 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::decrement, tbb::flow::interface11::limiter_node< T, DecrementType >::my_count, tbb::flow::interface11::limiter_node< T, DecrementType >::my_predecessors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_successors, and tbb::flow::interface11::rf_clear_edges.
|
inlineprotected |
Definition at line 3262 of file flow_graph.h.
References __TBB_ASSERT.
|
inlineprotected |
Puts an item to this receiver.
Definition at line 3233 of file flow_graph.h.
References tbb::flow::interface11::limiter_node< T, DecrementType >::check_conditions(), tbb::flow::interface11::internal::is_graph_active(), lock, tbb::flow::interface11::limiter_node< T, DecrementType >::my_count, tbb::flow::interface11::limiter_node< T, DecrementType >::my_mutex, tbb::flow::interface11::limiter_node< T, DecrementType >::my_successors, tbb::flow::interface11::limiter_node< T, DecrementType >::my_threshold, and tbb::flow::interface11::limiter_node< T, DecrementType >::my_tries.
|
friend |
Definition at line 3230 of file flow_graph.h.
|
friend |
Definition at line 3005 of file flow_graph.h.
|
friend |
Definition at line 3005 of file flow_graph.h.
|
friend |
Definition at line 3231 of file flow_graph.h.
|
friend |
Definition at line 3229 of file flow_graph.h.
internal::decrementer< limiter_node<T, DecrementType>, DecrementType > tbb::flow::interface11::limiter_node< T, DecrementType >::decrement |
The internal receiver< DecrementType > that decrements the count.
Definition at line 3101 of file flow_graph.h.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::initialize(), and tbb::flow::interface11::limiter_node< T, DecrementType >::reset_node().
|
private |
Definition at line 3001 of file flow_graph.h.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::check_conditions(), tbb::flow::interface11::limiter_node< T, DecrementType >::decrement_counter(), tbb::flow::interface11::limiter_node< T, DecrementType >::forward_task(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_predecessor(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_successor(), tbb::flow::interface11::limiter_node< T, DecrementType >::reset_node(), and tbb::flow::interface11::limiter_node< T, DecrementType >::try_put_task().
|
private |
Definition at line 3004 of file flow_graph.h.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::decrement_counter(), tbb::flow::interface11::limiter_node< T, DecrementType >::forward_task(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_predecessor(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_successor(), and tbb::flow::interface11::limiter_node< T, DecrementType >::try_put_task().
|
private |
Definition at line 3003 of file flow_graph.h.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::check_conditions(), tbb::flow::interface11::limiter_node< T, DecrementType >::forward_task(), tbb::flow::interface11::limiter_node< T, DecrementType >::initialize(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_predecessor(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_successor(), tbb::flow::interface11::limiter_node< T, DecrementType >::remove_predecessor(), and tbb::flow::interface11::limiter_node< T, DecrementType >::reset_node().
|
private |
Definition at line 3005 of file flow_graph.h.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::check_conditions(), tbb::flow::interface11::limiter_node< T, DecrementType >::forward_task(), tbb::flow::interface11::limiter_node< T, DecrementType >::initialize(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_predecessor(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_successor(), tbb::flow::interface11::limiter_node< T, DecrementType >::remove_successor(), tbb::flow::interface11::limiter_node< T, DecrementType >::reset_node(), and tbb::flow::interface11::limiter_node< T, DecrementType >::try_put_task().
|
private |
Definition at line 3000 of file flow_graph.h.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::check_conditions(), tbb::flow::interface11::limiter_node< T, DecrementType >::decrement_counter(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_predecessor(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_successor(), and tbb::flow::interface11::limiter_node< T, DecrementType >::try_put_task().
|
private |
Definition at line 3002 of file flow_graph.h.
Referenced by tbb::flow::interface11::limiter_node< T, DecrementType >::check_conditions(), tbb::flow::interface11::limiter_node< T, DecrementType >::forward_task(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_predecessor(), tbb::flow::interface11::limiter_node< T, DecrementType >::register_successor(), and tbb::flow::interface11::limiter_node< T, DecrementType >::try_put_task().