Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
internal::join_node_FE< reserving, InputTuple, OutputTuple > Class Template Reference

#include <_flow_graph_join_impl.h>

Inheritance diagram for internal::join_node_FE< reserving, InputTuple, OutputTuple >:
Collaboration diagram for internal::join_node_FE< reserving, InputTuple, OutputTuple >:

Public Types

typedef OutputTuple output_type
 
typedef InputTuple input_type
 
typedef join_node_base< reserving, InputTuple, OutputTuple > base_node_type
 

Public Member Functions

 join_node_FE (graph &g)
 
 join_node_FE (const join_node_FE &other)
 
void set_my_node (base_node_type *new_my_node)
 
void increment_port_count () __TBB_override
 
taskdecrement_port_count (bool handle_task) __TBB_override
 
input_typeinput_ports ()
 
- Public Member Functions inherited from internal::forwarding_base
 forwarding_base (graph &g)
 
virtual ~forwarding_base ()
 
- Public Member Functions inherited from tbb::internal::no_assign
void operator= (const no_assign &)=delete
 
 no_assign (const no_assign &)=default
 
 no_assign ()=default
 

Static Public Attributes

static const int N = tbb::flow::tuple_size<OutputTuple>::value
 

Protected Member Functions

void reset (reset_flags f)
 
bool tuple_build_may_succeed ()
 
bool try_to_make_tuple (output_type &out)
 
void tuple_accepted ()
 
void tuple_rejected ()
 

Protected Attributes

input_type my_inputs
 
base_node_typemy_node
 
atomic< size_t > ports_with_no_inputs
 

Additional Inherited Members

- Public Attributes inherited from internal::forwarding_base
graph & graph_ref
 

Detailed Description

template<typename InputTuple, typename OutputTuple>
class internal::join_node_FE< reserving, InputTuple, OutputTuple >

Definition at line 875 of file _flow_graph_join_impl.h.

Member Typedef Documentation

◆ base_node_type

template<typename InputTuple , typename OutputTuple >
typedef join_node_base<reserving, InputTuple, OutputTuple> internal::join_node_FE< reserving, InputTuple, OutputTuple >::base_node_type

Definition at line 880 of file _flow_graph_join_impl.h.

◆ input_type

template<typename InputTuple , typename OutputTuple >
typedef InputTuple internal::join_node_FE< reserving, InputTuple, OutputTuple >::input_type

Definition at line 879 of file _flow_graph_join_impl.h.

◆ output_type

template<typename InputTuple , typename OutputTuple >
typedef OutputTuple internal::join_node_FE< reserving, InputTuple, OutputTuple >::output_type

Definition at line 878 of file _flow_graph_join_impl.h.

Constructor & Destructor Documentation

◆ join_node_FE() [1/2]

template<typename InputTuple , typename OutputTuple >
internal::join_node_FE< reserving, InputTuple, OutputTuple >::join_node_FE ( graph &  g)
inline

Definition at line 882 of file _flow_graph_join_impl.h.

References internal::join_helper< N >::set_join_node_pointer().

Here is the call graph for this function:

◆ join_node_FE() [2/2]

template<typename InputTuple , typename OutputTuple >
internal::join_node_FE< reserving, InputTuple, OutputTuple >::join_node_FE ( const join_node_FE< reserving, InputTuple, OutputTuple > &  other)
inline

Definition at line 887 of file _flow_graph_join_impl.h.

887  : forwarding_base((other.forwarding_base::graph_ref)), my_node(NULL) {
890  }

References internal::join_helper< N >::set_join_node_pointer().

Here is the call graph for this function:

Member Function Documentation

◆ decrement_port_count()

template<typename InputTuple , typename OutputTuple >
task* internal::join_node_FE< reserving, InputTuple, OutputTuple >::decrement_port_count ( bool  handle_task)
inlinevirtual

Implements internal::forwarding_base.

Definition at line 899 of file _flow_graph_join_impl.h.

899  {
900  if(ports_with_no_inputs.fetch_and_decrement() == 1) {
902  task *rtask = new ( task::allocate_additional_child_of( *(this->graph_ref.root_task()) ) )
903  forward_task_bypass<base_node_type>(*my_node);
904  if(!handle_task) return rtask;
906  }
907  }
908  return NULL;
909  }

References tbb::flow::interface11::internal::is_graph_active(), tbb::flow::interface11::internal::spawn_in_graph_arena(), and task.

Here is the call graph for this function:

◆ increment_port_count()

template<typename InputTuple , typename OutputTuple >
void internal::join_node_FE< reserving, InputTuple, OutputTuple >::increment_port_count ( )
inlinevirtual

Implements internal::forwarding_base.

Definition at line 894 of file _flow_graph_join_impl.h.

894  {
896  }

◆ input_ports()

template<typename InputTuple , typename OutputTuple >
input_type& internal::join_node_FE< reserving, InputTuple, OutputTuple >::input_ports ( )
inline

Definition at line 911 of file _flow_graph_join_impl.h.

911 { return my_inputs; }

◆ reset()

template<typename InputTuple , typename OutputTuple >
void internal::join_node_FE< reserving, InputTuple, OutputTuple >::reset ( reset_flags  f)
inlineprotected

Definition at line 915 of file _flow_graph_join_impl.h.

915  {
916  // called outside of parallel contexts
919  }

References internal::join_helper< N >::reset_inputs().

Here is the call graph for this function:

◆ set_my_node()

template<typename InputTuple , typename OutputTuple >
void internal::join_node_FE< reserving, InputTuple, OutputTuple >::set_my_node ( base_node_type new_my_node)
inline

Definition at line 892 of file _flow_graph_join_impl.h.

892 { my_node = new_my_node; }

◆ try_to_make_tuple()

template<typename InputTuple , typename OutputTuple >
bool internal::join_node_FE< reserving, InputTuple, OutputTuple >::try_to_make_tuple ( output_type out)
inlineprotected

Definition at line 935 of file _flow_graph_join_impl.h.

935  {
936  if(ports_with_no_inputs) return false;
937  return join_helper<N>::reserve(my_inputs, out);
938  }

References internal::join_helper< N >::reserve().

Here is the call graph for this function:

◆ tuple_accepted()

template<typename InputTuple , typename OutputTuple >
void internal::join_node_FE< reserving, InputTuple, OutputTuple >::tuple_accepted ( )
inlineprotected

Definition at line 940 of file _flow_graph_join_impl.h.

References internal::join_helper< N >::consume_reservations().

Here is the call graph for this function:

◆ tuple_build_may_succeed()

template<typename InputTuple , typename OutputTuple >
bool internal::join_node_FE< reserving, InputTuple, OutputTuple >::tuple_build_may_succeed ( )
inlineprotected

Definition at line 931 of file _flow_graph_join_impl.h.

931  {
932  return !ports_with_no_inputs;
933  }

◆ tuple_rejected()

template<typename InputTuple , typename OutputTuple >
void internal::join_node_FE< reserving, InputTuple, OutputTuple >::tuple_rejected ( )
inlineprotected

Definition at line 943 of file _flow_graph_join_impl.h.

References internal::join_helper< N >::release_reservations().

Here is the call graph for this function:

Member Data Documentation

◆ my_inputs

template<typename InputTuple , typename OutputTuple >
input_type internal::join_node_FE< reserving, InputTuple, OutputTuple >::my_inputs
protected

Definition at line 947 of file _flow_graph_join_impl.h.

◆ my_node

template<typename InputTuple , typename OutputTuple >
base_node_type* internal::join_node_FE< reserving, InputTuple, OutputTuple >::my_node
protected

Definition at line 948 of file _flow_graph_join_impl.h.

◆ N

template<typename InputTuple , typename OutputTuple >
const int internal::join_node_FE< reserving, InputTuple, OutputTuple >::N = tbb::flow::tuple_size<OutputTuple>::value
static

Definition at line 877 of file _flow_graph_join_impl.h.

◆ ports_with_no_inputs

template<typename InputTuple , typename OutputTuple >
atomic<size_t> internal::join_node_FE< reserving, InputTuple, OutputTuple >::ports_with_no_inputs
protected

Definition at line 949 of file _flow_graph_join_impl.h.


The documentation for this class was generated from the following file:
internal::join_helper::set_join_node_pointer
static void set_join_node_pointer(TupleType &my_input, PortType *port)
Definition: _flow_graph_join_impl.h:51
internal::join_node_FE< reserving, InputTuple, OutputTuple >::ports_with_no_inputs
atomic< size_t > ports_with_no_inputs
Definition: _flow_graph_join_impl.h:949
tbb::flow::interface11::internal::is_graph_active
bool is_graph_active(tbb::flow::interface10::graph &g)
Definition: _flow_graph_impl.h:494
tbb::flow::interface11::internal::spawn_in_graph_arena
void spawn_in_graph_arena(tbb::flow::interface10::graph &g, tbb::task &arena_task)
Spawns a task inside graph arena.
Definition: _flow_graph_impl.h:521
internal::forwarding_base::graph_ref
graph & graph_ref
Definition: _flow_graph_join_impl.h:34
internal::join_node_FE< reserving, InputTuple, OutputTuple >::N
static const int N
Definition: _flow_graph_join_impl.h:877
internal::join_helper::reset_inputs
static void reset_inputs(InputTuple &my_input, reset_flags f)
Definition: _flow_graph_join_impl.h:120
internal::join_helper::consume_reservations
static void consume_reservations(TupleType &my_input)
Definition: _flow_graph_join_impl.h:56
internal::forwarding_base::forwarding_base
forwarding_base(graph &g)
Definition: _flow_graph_join_impl.h:27
task
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
Definition: ittnotify_static.h:104
internal::join_helper::release_reservations
static void release_reservations(TupleType &my_input)
Definition: _flow_graph_join_impl.h:67
internal::join_node_FE< reserving, InputTuple, OutputTuple >::my_inputs
input_type my_inputs
Definition: _flow_graph_join_impl.h:947
internal::join_helper::reserve
static bool reserve(InputTuple &my_input, OutputTuple &out)
Definition: _flow_graph_join_impl.h:73
internal::join_node_FE< reserving, InputTuple, OutputTuple >::my_node
base_node_type * my_node
Definition: _flow_graph_join_impl.h:948

Copyright © 2005-2019 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.