Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Base class for receivers of completion messages. More...
#include <flow_graph.h>
Public Types | |
typedef continue_msg | input_type |
The input type. More... | |
typedef receiver< input_type >::predecessor_type | predecessor_type |
The predecessor type for this node. More... | |
![]() | |
typedef continue_msg | input_type |
The input type of this receiver. More... | |
typedef internal::async_helpers< continue_msg >::filtered_type | filtered_type |
![]() | |
typedef untyped_sender | predecessor_type |
The predecessor type for this node. More... | |
Public Member Functions | |
continue_receiver (__TBB_FLOW_GRAPH_PRIORITY_ARG1(int number_of_predecessors, node_priority_t priority)) | |
Constructor. More... | |
continue_receiver (const continue_receiver &src) | |
Copy constructor. More... | |
bool | register_predecessor (predecessor_type &) __TBB_override |
Increments the trigger threshold. More... | |
bool | remove_predecessor (predecessor_type &) __TBB_override |
Decrements the trigger threshold. More... | |
![]() | |
bool | try_put (const typename internal::async_helpers< continue_msg >::filtered_type &t) |
Put an item to the receiver. More... | |
bool | try_put (const typename internal::async_helpers< continue_msg >::async_type &t) |
![]() | |
virtual | ~untyped_receiver () |
Destructor. More... | |
template<typename X > | |
bool | try_put (const X &t) |
Put an item to the receiver. More... | |
Protected Member Functions | |
task * | try_put_task (const input_type &) __TBB_override |
Put item to successor; return task to run the successor if possible. More... | |
void | reset_receiver (reset_flags f) __TBB_override |
put receiver back in initial state More... | |
virtual task * | execute ()=0 |
Does whatever should happen when the threshold is reached. More... | |
bool | is_continue_receiver () __TBB_override |
![]() | |
virtual task * | try_put_task_wrapper (const void *p, bool is_async) __TBB_override |
![]() | |
template<typename X > | |
task * | try_put_task (const X &t) |
virtual graph & | graph_reference ()=0 |
Protected Attributes | |
spin_mutex | my_mutex |
int | my_predecessor_count |
int | my_current_count |
int | my_initial_predecessor_count |
Friends | |
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 |
template<typename U , typename V > | |
class | tbb::flow::interface11::limiter_node |
template<typename TT , typename M > | |
class | internal::successor_cache |
Base class for receivers of completion messages.
These receivers automatically reset, but cannot be explicitly waited on
Definition at line 571 of file flow_graph.h.
The input type.
Definition at line 575 of file flow_graph.h.
typedef receiver<input_type>::predecessor_type tbb::flow::interface10::continue_receiver::predecessor_type |
The predecessor type for this node.
Definition at line 578 of file flow_graph.h.
|
inlineexplicit |
Constructor.
Definition at line 581 of file flow_graph.h.
|
inline |
Copy constructor.
Definition at line 589 of file flow_graph.h.
|
protectedpure virtual |
Does whatever should happen when the threshold is reached.
This should be very fast or else spawn a task. This is called while the sender is blocked in the try_put().
Implemented in tbb::flow::interface10::internal::continue_input< Output, Policy >, and tbb::flow::interface10::internal::decrementer< T, continue_msg, void >.
|
inlineprotectedvirtual |
Reimplemented from tbb::flow::interface10::internal::untyped_receiver.
Definition at line 685 of file flow_graph.h.
|
inlinevirtual |
Increments the trigger threshold.
Reimplemented from tbb::flow::interface10::internal::untyped_receiver.
Definition at line 596 of file flow_graph.h.
|
inlinevirtual |
Decrements the trigger threshold.
Does not check to see if the removal of the predecessor now makes the current count exceed the new threshold. So removing a predecessor while the graph is active can cause unexpected results.
Reimplemented from tbb::flow::interface10::internal::untyped_receiver.
Definition at line 606 of file flow_graph.h.
References my_mutex, and my_predecessor_count.
|
inlineprotectedvirtual |
put receiver back in initial state
Implements tbb::flow::interface10::internal::untyped_receiver.
Reimplemented in tbb::flow::interface10::internal::continue_input< Output, Policy >.
Definition at line 670 of file flow_graph.h.
|
inlineprotectedvirtual |
Put item to successor; return task to run the successor if possible.
Implements tbb::flow::interface10::receiver< continue_msg >.
Definition at line 644 of file flow_graph.h.
|
friend |
Definition at line 641 of file flow_graph.h.
|
friend |
Definition at line 642 of file flow_graph.h.
|
friend |
Definition at line 684 of file flow_graph.h.
|
friend |
Definition at line 640 of file flow_graph.h.
|
friend |
Definition at line 668 of file flow_graph.h.
|
protected |
Definition at line 663 of file flow_graph.h.
|
protected |
Definition at line 664 of file flow_graph.h.
|
protected |
Definition at line 661 of file flow_graph.h.
Referenced by tbb::flow::interface10::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::clone(), remove_predecessor(), tbb::flow::interface10::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::send(), and tbb::flow::interface10::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant().
|
protected |
Definition at line 662 of file flow_graph.h.
Referenced by remove_predecessor().