Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Input and scheduling for a function node that takes a type Input as input. More...
#include <flow_graph.h>
Classes | |
class | operation_type |
Public Types | |
typedef Input | input_type |
The input type of this receiver. More... | |
typedef receiver< input_type >::predecessor_type | predecessor_type |
typedef predecessor_cache< input_type, null_mutex > | predecessor_cache_type |
typedef function_input_queue< input_type, A > | input_queue_type |
typedef tbb::internal::allocator_rebind< A, input_queue_type >::type | queue_allocator_type |
![]() | |
typedef untyped_sender | predecessor_type |
The predecessor type for this node. More... | |
Public Member Functions | |
__TBB_STATIC_ASSERT (!((internal::has_policy< queueing, Policy >::value) &&(internal::has_policy< rejecting, Policy >::value)), "queueing and rejecting policies can't be specified simultaneously") | |
function_input_base (graph &g, __TBB_FLOW_GRAPH_PRIORITY_ARG1(size_t max_concurrency, node_priority_t priority)) | |
Constructor for function_input_base. More... | |
function_input_base (const function_input_base &src) | |
Copy constructor. More... | |
virtual | ~function_input_base () |
Destructor. More... | |
task * | try_put_task (const input_type &t) __TBB_override |
Put item to successor; return task to run the successor if possible. 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... | |
![]() | |
bool | try_put (const typename internal::async_helpers< Input >::filtered_type &t) |
Put an item to the receiver. More... | |
bool | try_put (const typename internal::async_helpers< Input >::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 | |
void | reset_function_input_base (reset_flags f) |
void | reset_receiver (reset_flags f) __TBB_override |
put receiver back in initial state More... | |
graph & | graph_reference () const __TBB_override |
task * | try_get_postponed_task (const input_type &i) |
![]() | |
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 bool | is_continue_receiver () |
Protected Attributes | |
graph & | my_graph_ref |
const size_t | my_max_concurrency |
size_t | my_concurrency |
input_queue_type * | my_queue |
predecessor_cache< input_type, null_mutex > | my_predecessors |
Private Types | |
enum | op_type { reg_pred, rem_pred, try_fwd, tryput_bypass, app_body_bypass, occupy_concurrency } |
typedef function_input_base< Input, Policy, A, ImplType > | class_type |
typedef internal::aggregating_functor< class_type, operation_type > | handler_type |
Private Member Functions | |
task * | perform_queued_requests () |
void | handle_operations (operation_type *op_list) |
void | internal_try_put_task (operation_type *op) |
Put to the node, but return the task instead of enqueueing it. More... | |
void | internal_forward (operation_type *op) |
Creates tasks for postponed messages if available and if concurrency allows. More... | |
task * | internal_try_put_bypass (const input_type &t) |
task * | try_put_task_impl (const input_type &t, tbb::internal::true_type) |
task * | try_put_task_impl (const input_type &t, tbb::internal::false_type) |
task * | apply_body_bypass (const input_type &i) |
Applies the body to the provided input. More... | |
task * | create_body_task (const input_type &input) |
allocates a task to apply a body More... | |
task * | forward_task () |
This is executed by an enqueued task, the "forwarder". More... | |
task * | create_forward_task () |
void | spawn_forward_task () |
Spawns a task that calls forward() More... | |
![]() | |
void | operator= (const no_assign &)=delete |
no_assign (const no_assign &)=default | |
no_assign ()=default | |
Private Attributes | |
bool | forwarder_busy |
aggregator< handler_type, operation_type > | my_aggregator |
Friends | |
class | apply_body_task_bypass< class_type, input_type > |
class | forward_task_bypass< class_type > |
class | internal::aggregating_functor< class_type, operation_type > |
Additional Inherited Members | |
![]() | |
__TBB_DEPRECATED typedef Input | input_type |
The input type of this receiver. More... | |
__TBB_DEPRECATED typedef internal::async_helpers< Input >::filtered_type | filtered_type |
Input and scheduling for a function node that takes a type Input as input.
Definition at line 61 of file flow_graph.h.
|
private |
Definition at line 68 of file flow_graph.h.
|
private |
Definition at line 227 of file flow_graph.h.
typedef function_input_queue<input_type, A> tbb::flow::interface11::internal::function_input_base< Input, Policy, A, ImplType >::input_queue_type |
Definition at line 76 of file flow_graph.h.
typedef Input tbb::flow::interface11::internal::function_input_base< Input, Policy, A, ImplType >::input_type |
The input type of this receiver.
Definition at line 73 of file flow_graph.h.
typedef predecessor_cache<input_type, null_mutex > tbb::flow::interface11::internal::function_input_base< Input, Policy, A, ImplType >::predecessor_cache_type |
Definition at line 75 of file flow_graph.h.
typedef receiver<input_type>::predecessor_type tbb::flow::interface11::internal::function_input_base< Input, Policy, A, ImplType >::predecessor_type |
Definition at line 74 of file flow_graph.h.
typedef tbb::internal::allocator_rebind<A, input_queue_type>::type tbb::flow::interface11::internal::function_input_base< Input, Policy, A, ImplType >::queue_allocator_type |
Definition at line 77 of file flow_graph.h.
|
private |
Enumerator | |
---|---|
reg_pred | |
rem_pred | |
try_fwd | |
tryput_bypass | |
app_body_bypass | |
occupy_concurrency |
Definition at line 62 of file flow_graph.h.
|
inline |
|
inline |
Copy constructor.
Definition at line 99 of file flow_graph.h.
|
inlinevirtual |
tbb::flow::interface11::internal::function_input_base< Input, Policy, A, ImplType >::__TBB_STATIC_ASSERT | ( | ! | (internal::has_policy< queueing, Policy >::value) &&(internal::has_policy< rejecting, Policy >::value), |
"queueing and rejecting policies can't be specified simultaneously" | |||
) |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
Definition at line 402 of file flow_graph.h.
|
inlineprivate |
This is executed by an enqueued task, the "forwarder".
Definition at line 387 of file flow_graph.h.
|
inlineprotectedvirtual |
Implements tbb::flow::interface11::internal::untyped_receiver.
Definition at line 194 of file flow_graph.h.
|
inlineprivate |
Definition at line 250 of file flow_graph.h.
|
inlineprivate |
Creates tasks for postponed messages if available and if concurrency allows.
Definition at line 329 of file flow_graph.h.
|
inlineprivate |
Definition at line 341 of file flow_graph.h.
|
inlineprivate |
Put to the node, but return the task instead of enqueueing it.
Definition at line 312 of file flow_graph.h.
|
inlineprivate |
Definition at line 231 of file flow_graph.h.
|
inlinevirtual |
Adds src to the list of cached predecessors.
Reimplemented from tbb::flow::interface11::internal::untyped_receiver.
Definition at line 122 of file flow_graph.h.
|
inlinevirtual |
Removes src from the list of cached predecessors.
Reimplemented from tbb::flow::interface11::internal::untyped_receiver.
Definition at line 130 of file flow_graph.h.
|
inlineprotected |
Definition at line 171 of file flow_graph.h.
|
inlineprotectedvirtual |
put receiver back in initial state
Implements tbb::flow::interface11::internal::untyped_receiver.
Definition at line 187 of file flow_graph.h.
|
inlineprivate |
Spawns a task that calls forward()
Definition at line 410 of file flow_graph.h.
|
inlineprotected |
Definition at line 198 of file flow_graph.h.
|
inlinevirtual |
Put item to successor; return task to run the successor if possible.
Implements tbb::flow::interface11::receiver< Input >.
Definition at line 117 of file flow_graph.h.
|
inlineprivate |
Definition at line 350 of file flow_graph.h.
|
inlineprivate |
Definition at line 363 of file flow_graph.h.
|
friend |
Definition at line 206 of file flow_graph.h.
|
friend |
Definition at line 207 of file flow_graph.h.
|
friend |
Definition at line 228 of file flow_graph.h.
|
private |
Definition at line 226 of file flow_graph.h.
|
private |
Definition at line 229 of file flow_graph.h.
|
protected |
Definition at line 182 of file flow_graph.h.
|
protected |
Definition at line 180 of file flow_graph.h.
|
protected |
Definition at line 181 of file flow_graph.h.
|
protected |
Definition at line 185 of file flow_graph.h.
|
protected |
Definition at line 184 of file flow_graph.h.