Base class for receivers of completion messages. More...
#include <flow_graph.h>
 
  
 | Public Types | |
| typedef continue_msg | input_type | 
| The input type. | |
| typedef receiver< input_type > ::predecessor_type | predecessor_type | 
| The predecessor type for this node. | |
| typedef internal::edge_container < predecessor_type > | built_predecessors_type | 
| typedef built_predecessors_type::edge_list_type | predecessor_list_type | 
|  Public Types inherited from tbb::flow::interface10::receiver< continue_msg > | |
| typedef continue_msg | input_type | 
| The input type of this receiver. | |
| typedef continue_msg | input_type | 
| The input type of this receiver. | |
| typedef internal::async_helpers < continue_msg > ::filtered_type | filtered_type | 
| typedef sender< continue_msg > | predecessor_type | 
| The predecessor type for this node. | |
| typedef internal::edge_container < predecessor_type > | built_predecessors_type | 
| typedef built_predecessors_type::edge_list_type | predecessor_list_type | 
|  Public Types inherited from tbb::flow::interface10::internal::untyped_receiver | |
| typedef untyped_sender | predecessor_type | 
| The predecessor type for this node. | |
| typedef internal::edge_container < predecessor_type > | built_predecessors_type | 
| typedef built_predecessors_type::edge_list_type | predecessor_list_type | 
| Public Member Functions | |
| continue_receiver (int number_of_predecessors=0) | |
| Constructor. | |
| continue_receiver (const continue_receiver &src) | |
| Copy constructor. | |
| bool | register_predecessor (predecessor_type &) __TBB_override | 
| Increments the trigger threshold. | |
| bool | remove_predecessor (predecessor_type &) __TBB_override | 
| Decrements the trigger threshold.  More... | |
| built_predecessors_type & | built_predecessors () __TBB_override | 
| void | internal_add_built_predecessor (predecessor_type &s) __TBB_override | 
| void | internal_delete_built_predecessor (predecessor_type &s) __TBB_override | 
| void | copy_predecessors (predecessor_list_type &v) __TBB_override | 
| size_t | predecessor_count () __TBB_override | 
|  Public Member Functions inherited from tbb::flow::interface10::receiver< continue_msg > | |
| bool | try_put (const typename internal::async_helpers< continue_msg >::filtered_type &t) | 
| Put an item to the receiver. | |
| bool | try_put (const typename internal::async_helpers< continue_msg >::async_type &t) | 
| bool | try_put (const continue_msg &t) | 
| Put an item to the receiver. | |
| virtual | ~receiver () | 
| Destructor. | |
|  Public Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver | |
| virtual | ~untyped_receiver () | 
| Destructor. | |
| template<typename X > | |
| bool | try_put (const X &t) | 
| Put an item to the receiver. | |
| Protected Member Functions | |
| task * | try_put_task (const input_type &) __TBB_override | 
| Put item to successor; return task to run the successor if possible. | |
| void | reset_receiver (reset_flags f) __TBB_override | 
| put receiver back in initial state | |
| virtual task * | execute ()=0 | 
| Does whatever should happen when the threshold is reached.  More... | |
| bool | is_continue_receiver () __TBB_override | 
|  Protected Member Functions inherited from tbb::flow::interface10::receiver< continue_msg > | |
| virtual task * | try_put_task_wrapper (const void *p, bool is_async) __TBB_override | 
| virtual graph & | graph_reference ()=0 | 
|  Protected Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver | |
| template<typename X > | |
| task * | try_put_task (const X &t) | 
| Protected Attributes | |
| built_predecessors_type | my_built_predecessors | 
| spin_mutex | my_mutex | 
| int | my_predecessor_count | 
| int | my_current_count | 
| int | my_initial_predecessor_count | 
Base class for receivers of completion messages.
These receivers automatically reset, but cannot be explicitly waited on
| 
 | 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().
Referenced by try_put_task().
| 
 | 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::receiver< continue_msg >.