Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
internal::join_helper< N > Struct Template Reference

#include <_flow_graph_join_impl.h>

Collaboration diagram for internal::join_helper< N >:

Static Public Member Functions

template<typename TupleType , typename PortType >
static void set_join_node_pointer (TupleType &my_input, PortType *port)
 
template<typename TupleType >
static void consume_reservations (TupleType &my_input)
 
template<typename TupleType >
static void release_my_reservation (TupleType &my_input)
 
template<typename TupleType >
static void release_reservations (TupleType &my_input)
 
template<typename InputTuple , typename OutputTuple >
static bool reserve (InputTuple &my_input, OutputTuple &out)
 
template<typename InputTuple , typename OutputTuple >
static bool get_my_item (InputTuple &my_input, OutputTuple &out)
 
template<typename InputTuple , typename OutputTuple >
static bool get_items (InputTuple &my_input, OutputTuple &out)
 
template<typename InputTuple >
static void reset_my_port (InputTuple &my_input)
 
template<typename InputTuple >
static void reset_ports (InputTuple &my_input)
 
template<typename InputTuple , typename KeyFuncTuple >
static void set_key_functors (InputTuple &my_input, KeyFuncTuple &my_key_funcs)
 
template<typename KeyFuncTuple >
static void copy_key_functors (KeyFuncTuple &my_inputs, KeyFuncTuple &other_inputs)
 
template<typename InputTuple >
static void reset_inputs (InputTuple &my_input, reset_flags f)
 

Detailed Description

template<int N>
struct internal::join_helper< N >

Definition at line 52 of file _flow_graph_join_impl.h.

Member Function Documentation

◆ consume_reservations()

template<int N>
template<typename TupleType >
static void internal::join_helper< N >::consume_reservations ( TupleType &  my_input)
inlinestatic

Definition at line 60 of file _flow_graph_join_impl.h.

Referenced by internal::join_node_FE< reserving, InputTuple, OutputTuple >::tuple_accepted().

60  {
61  tbb::flow::get<N-1>( my_input ).consume();
63  }
static void consume_reservations(TupleType &my_input)
Here is the caller graph for this function:

◆ copy_key_functors()

template<int N>
template<typename KeyFuncTuple >
static void internal::join_helper< N >::copy_key_functors ( KeyFuncTuple &  my_inputs,
KeyFuncTuple &  other_inputs 
)
inlinestatic

Definition at line 116 of file _flow_graph_join_impl.h.

Referenced by internal::join_node_FE< key_matching< K, KHash >, InputTuple, OutputTuple >::join_node_FE().

116  {
117  if(tbb::flow::get<N-1>(other_inputs).get_my_key_func()) {
118  tbb::flow::get<N-1>(my_inputs).set_my_key_func(tbb::flow::get<N-1>(other_inputs).get_my_key_func()->clone());
119  }
120  join_helper<N-1>::copy_key_functors(my_inputs, other_inputs);
121  }
static void copy_key_functors(KeyFuncTuple &my_inputs, KeyFuncTuple &other_inputs)
Here is the caller graph for this function:

◆ get_items()

template<int N>
template<typename InputTuple , typename OutputTuple >
static bool internal::join_helper< N >::get_items ( InputTuple &  my_input,
OutputTuple &  out 
)
inlinestatic

Definition at line 93 of file _flow_graph_join_impl.h.

Referenced by internal::join_node_FE< queueing, InputTuple, OutputTuple >::try_to_make_tuple().

93  {
94  return get_my_item(my_input, out);
95  }
static bool get_my_item(InputTuple &my_input, OutputTuple &out)
Here is the caller graph for this function:

◆ get_my_item()

template<int N>
template<typename InputTuple , typename OutputTuple >
static bool internal::join_helper< N >::get_my_item ( InputTuple &  my_input,
OutputTuple &  out 
)
inlinestatic

Definition at line 87 of file _flow_graph_join_impl.h.

87  {
88  bool res = tbb::flow::get<N-1>(my_input).get_item(tbb::flow::get<N-1>(out) ); // may fail
89  return join_helper<N-1>::get_my_item(my_input, out) && res; // do get on other inputs before returning
90  }
static bool get_my_item(InputTuple &my_input, OutputTuple &out)

◆ release_my_reservation()

template<int N>
template<typename TupleType >
static void internal::join_helper< N >::release_my_reservation ( TupleType &  my_input)
inlinestatic

Definition at line 66 of file _flow_graph_join_impl.h.

References tbb::release.

66  {
67  tbb::flow::get<N-1>( my_input ).release();
68  }
Release.
Definition: atomic.h:49

◆ release_reservations()

template<int N>
template<typename TupleType >
static void internal::join_helper< N >::release_reservations ( TupleType &  my_input)
inlinestatic

Definition at line 71 of file _flow_graph_join_impl.h.

Referenced by internal::join_node_FE< reserving, InputTuple, OutputTuple >::tuple_rejected().

71  {
73  release_my_reservation(my_input);
74  }
static void release_my_reservation(TupleType &my_input)
static void release_reservations(TupleType &my_input)
Here is the caller graph for this function:

◆ reserve()

template<int N>
template<typename InputTuple , typename OutputTuple >
static bool internal::join_helper< N >::reserve ( InputTuple &  my_input,
OutputTuple &  out 
)
inlinestatic

Definition at line 77 of file _flow_graph_join_impl.h.

Referenced by internal::join_node_FE< reserving, InputTuple, OutputTuple >::try_to_make_tuple().

77  {
78  if ( !tbb::flow::get<N-1>( my_input ).reserve( tbb::flow::get<N-1>( out ) ) ) return false;
79  if ( !join_helper<N-1>::reserve( my_input, out ) ) {
80  release_my_reservation( my_input );
81  return false;
82  }
83  return true;
84  }
static void release_my_reservation(TupleType &my_input)
static bool reserve(InputTuple &my_input, OutputTuple &out)
Here is the caller graph for this function:

◆ reset_inputs()

template<int N>
template<typename InputTuple >
static void internal::join_helper< N >::reset_inputs ( InputTuple &  my_input,
reset_flags  f 
)
inlinestatic

Definition at line 124 of file _flow_graph_join_impl.h.

Referenced by internal::join_node_FE< reserving, InputTuple, OutputTuple >::reset(), internal::join_node_FE< queueing, InputTuple, OutputTuple >::reset(), and internal::join_node_FE< key_matching< K, KHash >, InputTuple, OutputTuple >::reset().

124  {
125  join_helper<N-1>::reset_inputs(my_input, f);
126  tbb::flow::get<N-1>(my_input).reset_receiver(f);
127  }
static void reset_inputs(InputTuple &my_input, reset_flags f)
Here is the caller graph for this function:

◆ reset_my_port()

template<int N>
template<typename InputTuple >
static void internal::join_helper< N >::reset_my_port ( InputTuple &  my_input)
inlinestatic

Definition at line 98 of file _flow_graph_join_impl.h.

98  {
100  tbb::flow::get<N-1>(my_input).reset_port();
101  }
static void reset_my_port(InputTuple &my_input)

◆ reset_ports()

template<int N>
template<typename InputTuple >
static void internal::join_helper< N >::reset_ports ( InputTuple &  my_input)
inlinestatic

Definition at line 104 of file _flow_graph_join_impl.h.

Referenced by internal::join_node_FE< key_matching< K, KHash >, InputTuple, OutputTuple >::fill_output_buffer(), and internal::join_node_FE< queueing, InputTuple, OutputTuple >::tuple_accepted().

104  {
105  reset_my_port(my_input);
106  }
static void reset_my_port(InputTuple &my_input)
Here is the caller graph for this function:

◆ set_join_node_pointer()

template<int N>
template<typename TupleType , typename PortType >
static void internal::join_helper< N >::set_join_node_pointer ( TupleType &  my_input,
PortType *  port 
)
inlinestatic

Definition at line 55 of file _flow_graph_join_impl.h.

Referenced by internal::join_node_FE< reserving, InputTuple, OutputTuple >::join_node_FE(), internal::join_node_FE< queueing, InputTuple, OutputTuple >::join_node_FE(), and internal::join_node_FE< key_matching< K, KHash >, InputTuple, OutputTuple >::join_node_FE().

55  {
56  tbb::flow::get<N-1>( my_input ).set_join_node_pointer(port);
58  }
static void set_join_node_pointer(TupleType &my_input, PortType *port)
Here is the caller graph for this function:

◆ set_key_functors()

template<int N>
template<typename InputTuple , typename KeyFuncTuple >
static void internal::join_helper< N >::set_key_functors ( InputTuple &  my_input,
KeyFuncTuple &  my_key_funcs 
)
inlinestatic

Definition at line 109 of file _flow_graph_join_impl.h.

Referenced by internal::join_node_FE< key_matching< K, KHash >, InputTuple, OutputTuple >::join_node_FE().

109  {
110  tbb::flow::get<N-1>(my_input).set_my_key_func(tbb::flow::get<N-1>(my_key_funcs));
111  tbb::flow::get<N-1>(my_key_funcs) = NULL;
112  join_helper<N-1>::set_key_functors(my_input, my_key_funcs);
113  }
static void set_key_functors(InputTuple &my_input, KeyFuncTuple &my_key_funcs)
Here is the caller graph for this function:

The documentation for this struct 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.