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

#include <flow_graph.h>

Inheritance diagram for tbb::flow::interface10::internal::join_node_FE< reserving, InputTuple, OutputTuple >:
Collaboration diagram for tbb::flow::interface10::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 tbb::flow::interface10::internal::forwarding_base
 forwarding_base (graph &g)
 
virtual ~forwarding_base ()
 

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 tbb::flow::interface10::internal::forwarding_base
graphgraph_ref
 

Detailed Description

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

Definition at line 874 of file flow_graph.h.

Member Typedef Documentation

◆ base_node_type

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

Definition at line 879 of file flow_graph.h.

◆ input_type

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

Definition at line 878 of file flow_graph.h.

◆ output_type

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

Definition at line 877 of file flow_graph.h.

Constructor & Destructor Documentation

◆ join_node_FE() [1/2]

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

Definition at line 881 of file flow_graph.h.

884  : graph_node(g), my_active(is_active), init_my_active(is_active),

◆ join_node_FE() [2/2]

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

Definition at line 886 of file flow_graph.h.

888  {
889  my_successors.set_owner(this);

Member Function Documentation

◆ decrement_port_count()

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

Implements tbb::flow::interface10::internal::forwarding_base.

Definition at line 898 of file flow_graph.h.

900  {
901  my_successors.set_owner(this);
902  tbb::internal::fgt_node_with_body( tbb::internal::FLOW_SOURCE_NODE, &this->my_graph,
903  static_cast<sender<output_type> *>(this), this->my_body );
904  }
905 
907  ~source_node() { delete my_body; delete my_init_body; }
908 
static void fgt_node_with_body(string_index, void *, void *, void *)

References tbb::internal::fgt_node_with_body(), tbb::flow::interface10::source_node< Output >::my_body, tbb::flow::interface10::graph_node::my_graph, tbb::flow::interface10::source_node< Output >::my_successors, and tbb::flow::interface10::internal::successor_cache< T, M >::set_owner().

Here is the call graph for this function:

◆ increment_port_count()

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

Implements tbb::flow::interface10::internal::forwarding_base.

Definition at line 893 of file flow_graph.h.

895  :
896  graph_node(src.my_graph), sender<Output>(),

◆ input_ports()

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

Definition at line 910 of file flow_graph.h.

910 {

References tbb::internal::fgt_node_desc(), and name.

Here is the call graph for this function:

◆ reset()

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

Definition at line 914 of file flow_graph.h.

916  {
917  spin_mutex::scoped_lock lock(my_mutex);
918  my_successors.register_successor(r);
friend class scoped_lock
Definition: spin_mutex.h:180
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 * lock

◆ set_my_node()

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

Definition at line 891 of file flow_graph.h.

895 :
896  graph_node(src.my_graph), sender<Output>(),

◆ try_to_make_tuple()

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

Definition at line 934 of file flow_graph.h.

935  {
936  spin_mutex::scoped_lock lock(my_mutex);
937  my_successors.internal_add_built_successor(r);
friend class scoped_lock
Definition: spin_mutex.h:180
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 * lock

References lock, tbb::flow::interface10::source_node< Output >::my_mutex, and tbb::flow::interface10::source_node< Output >::my_successors.

◆ tuple_accepted()

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

Definition at line 939 of file flow_graph.h.

940  {
941  spin_mutex::scoped_lock lock(my_mutex);
friend class scoped_lock
Definition: spin_mutex.h:180
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 * lock

References lock, and tbb::flow::interface10::source_node< Output >::my_mutex.

◆ tuple_build_may_succeed()

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

Definition at line 930 of file flow_graph.h.

933  { return my_successors.built_successors(); }

References tbb::flow::interface10::source_node< Output >::my_successors.

◆ tuple_rejected()

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

Definition at line 942 of file flow_graph.h.

945  {

Member Data Documentation

◆ my_inputs

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

Definition at line 946 of file flow_graph.h.

◆ my_node

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

Definition at line 947 of file flow_graph.h.

◆ N

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

Definition at line 876 of file flow_graph.h.

◆ ports_with_no_inputs

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

Definition at line 948 of file flow_graph.h.


The documentation for this class was generated from the following file:

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.