Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Go to the documentation of this file.
17 #ifndef __TBB__flow_graph_body_impl_H
18 #define __TBB__flow_graph_body_impl_H
20 #ifndef __TBB_flow_graph_H
21 #error Do not #include this internal file directly; use public TBB headers instead.
32 #if __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT
34 template<
typename ... Policies>
struct Policy {};
38 template<
typename ExpectedPolicy,
typename FirstPolicy,
typename ...Policies>
39 struct has_policy<ExpectedPolicy, FirstPolicy, Policies...> :
41 has_policy<ExpectedPolicy, Policies...>::value> {};
43 template<
typename ExpectedPolicy,
typename SinglePolicy>
47 template<
typename ExpectedPolicy,
typename ...Policies>
52 template<
typename P1,
typename P2 =
void>
struct Policy {};
54 template<
typename ExpectedPolicy,
typename SinglePolicy>
57 template<
typename ExpectedPolicy,
typename P>
58 struct has_policy<ExpectedPolicy, Policy<P> > : has_policy<ExpectedPolicy, P> {};
60 template<
typename ExpectedPolicy,
typename P1,
typename P2>
61 struct has_policy<ExpectedPolicy, Policy<P1, P2> > :
66 namespace graph_policy_namespace {
95 template<
typename Output >
104 template<
typename Output,
typename Body>
118 template<
typename Input,
typename Output >
127 template <
typename Input,
typename Output,
typename B>
141 template <
typename B>
158 template <
typename Input,
typename B>
164 return continue_msg();
175 template <
typename Output,
typename B>
191 template<
typename Input,
typename OutputSet>
201 template<
typename Input,
typename OutputSet,
typename B >
219 template<
typename Input,
typename Output>
228 template<
typename Input,
typename Output>
236 template <
typename Input,
typename Output,
typename B>
249 template <
typename Input,
typename Output,
typename B>
269 template<
typename NodeType >
279 ) : graph_task(node_priority),
294 template<
typename NodeType,
typename Input >
305 ) : graph_task(node_priority),
319 template<
typename NodeType >
338 template<
typename Input,
typename Output >
340 Output
operator()(
const Input & )
const {
return Output(); }
343 template<
typename T,
typename DecrementType,
typename DummyType =
void>
346 template<
typename T,
typename DecrementType>
348 typename
tbb::internal::enable_if<
349 tbb::internal::is_integral<DecrementType>::value, void>
::type
355 task* result = my_node->decrement_counter(
value );
362 return my_node->my_graph;
367 #if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
369 my_built_predecessors.clear();
382 #if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
385 typedef typename receiver<DecrementType>::predecessor_type
predecessor_type;
387 typedef internal::edge_container<predecessor_type> built_predecessors_type;
388 typedef typename built_predecessors_type::edge_list_type predecessor_list_type;
389 built_predecessors_type &built_predecessors()
__TBB_override {
return my_built_predecessors; }
393 my_built_predecessors.add_edge(
s );
398 my_built_predecessors.delete_edge(
s);
401 void copy_predecessors( predecessor_list_type &v)
__TBB_override {
403 my_built_predecessors.copy_edges(v);
408 return my_built_predecessors.edge_count();
411 built_predecessors_type my_built_predecessors;
421 return my_node->decrement_counter( 1 );
427 return my_node->my_graph;
448 #endif // __TBB__flow_graph_body_impl_H
const Output & operator()(const Input &i) __TBB_override
graph & graph_reference() const __TBB_override
Output operator()(const Input &) const
task * execute() __TBB_override
receiver< input_type >::predecessor_type predecessor_type
virtual function_body * clone()=0
A task that calls a node's apply_body_bypass function with no input.
void * get_body_ptr() __TBB_override
Base class for types that should not be copied or assigned.
function_body_leaf * clone() __TBB_override
task * try_put_task(const DecrementType &value) __TBB_override
function_body_leaf * clone() __TBB_override
virtual Output operator()(const Input &input)=0
#define __TBB_FLOW_GRAPH_PRIORITY_ARG1(arg1, priority)
virtual ~multifunction_body()
the leaf for function_body specialized for Input of continue_msg
A task that calls a node's apply_body_bypass function, passing in an input of type Input.
the leaf for function_body
type_to_key_function_body_leaf(const B &_body)
task * execute() __TBB_override
type_to_key_function_body_leaf(const B &_body)
virtual type_to_key_function_body * clone()=0
The leaf for source_body.
task * execute() __TBB_override
virtual bool operator()(Output &output)=0
static tbb::task *const SUCCESSFULLY_ENQUEUED
Output operator()(const Input &i) __TBB_override
virtual const Output & operator()(const Input &input)=0
type_to_key_function_body_leaf * clone() __TBB_override
multifunction_body_leaf * clone() __TBB_override
Output operator()(const Input &i) __TBB_override
Base class for types that should not be assigned.
virtual source_body * clone()=0
continue_msg operator()(const Input &i) __TBB_override
function_body_leaf * clone() __TBB_override
the leaf for function_body specialized for Output of continue_msg
interface11::internal::Policy< queueing, lightweight > queueing_lightweight
static const node_priority_t no_priority
interface11::internal::Policy< rejecting, lightweight > rejecting_lightweight
function_body_leaf(const B &_body)
apply_body_task_bypass(NodeType &n, const Input &i)
function_body_leaf(const B &_body)
task * execute() __TBB_override
A functor that takes no input and generates a value of type Output.
decrementer(int number_of_predecessors=0)
unsigned int node_priority_t
function_body that takes an Input and a set of output ports
virtual ~type_to_key_function_body()
the leaf for function_body specialized for Input and output of continue_msg
source_task_bypass(NodeType &n)
Strips its template type argument from cv- and ref-qualifiers.
multifunction_body_leaf(const B &_body)
type_to_key_function_body_leaf * clone() __TBB_override
void const char const char int ITT_FORMAT __itt_group_sync s
void suppress_unused_warning(const T1 &)
Utility template function to prevent "unused" warnings by various compilers.
A functor that takes an Input and generates an Output.
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task * task
source_body_leaf * clone() __TBB_override
field of type K being used for matching.
source_body_leaf(const Body &_body)
Output operator()(const continue_msg &i) __TBB_override
graph & graph_reference() const __TBB_override
#define __TBB_PREVIEW_FLOW_GRAPH_PRIORITIES
forward_task_bypass(NodeType &n)
strip< K >::type base_key_type
virtual void * get_body_ptr()=0
Forwards messages only if the threshold has not been reached.
function_body_leaf(const B &_body)
key_matching< tag_value > tag_matching
virtual void operator()(const Input &, OutputSet &)=0
An empty functor that takes an Input and returns a default constructed Output.
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
A task that calls a node's forward_task function.
virtual ~type_to_key_function_body()
virtual type_to_key_function_body * clone()=0
function_body_leaf(const B &_body)
void operator()(const Input &input, OutputSet &oset) __TBB_override
virtual multifunction_body * clone()=0
leaf for multifunction. OutputSet can be a std::tuple or a vector.
continue_msg operator()(const continue_msg &i) __TBB_override
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type type
function_body_leaf * clone() __TBB_override
tbb::internal::uint64_t tag_value
void reset_receiver(reset_flags f) __TBB_override
virtual Output operator()(const Input &input)=0
bool operator()(Output &output) __TBB_override
Copyright © 2005-2020 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.