Home ⌂Doc Index ◂Up ▴
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 48 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 56 of file _flow_graph_join_impl.h.

56  {
57  tbb::flow::get<N-1>( my_input ).consume();
59  }
static void consume_reservations(TupleType &my_input)

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

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 112 of file _flow_graph_join_impl.h.

112  {
113  if(tbb::flow::get<N-1>(other_inputs).get_my_key_func()) {
114  tbb::flow::get<N-1>(my_inputs).set_my_key_func(tbb::flow::get<N-1>(other_inputs).get_my_key_func()->clone());
115  }
116  join_helper<N-1>::copy_key_functors(my_inputs, other_inputs);
117  }
static void copy_key_functors(KeyFuncTuple &my_inputs, KeyFuncTuple &other_inputs)

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

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 89 of file _flow_graph_join_impl.h.

89  {
90  return get_my_item(my_input, out);
91  }
static bool get_my_item(InputTuple &my_input, OutputTuple &out)

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

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

Here is the call graph for this function:
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 83 of file _flow_graph_join_impl.h.

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

Referenced by internal::join_helper< N >::get_items(), and internal::join_helper< 1 >::get_items().

Here is the caller graph for this function:

◆ 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 62 of file _flow_graph_join_impl.h.

62  {
63  tbb::flow::get<N-1>( my_input ).release();
64  }
Release.
Definition: atomic.h:59

References tbb::release.

Referenced by internal::join_helper< N >::release_reservations(), internal::join_helper< 1 >::release_reservations(), and internal::join_helper< N >::reserve().

Here is the caller graph for this function:

◆ release_reservations()

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

Definition at line 67 of file _flow_graph_join_impl.h.

67  {
69  release_my_reservation(my_input);
70  }
static void release_reservations(TupleType &my_input)
static void release_my_reservation(TupleType &my_input)

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

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

Here is the call graph for this function:
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 73 of file _flow_graph_join_impl.h.

73  {
74  if ( !tbb::flow::get<N-1>( my_input ).reserve( tbb::flow::get<N-1>( out ) ) ) return false;
75  if ( !join_helper<N-1>::reserve( my_input, out ) ) {
76  release_my_reservation( my_input );
77  return false;
78  }
79  return true;
80  }
static void release_my_reservation(TupleType &my_input)
static bool reserve(InputTuple &my_input, OutputTuple &out)

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

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

Here is the call graph for this function:
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 120 of file _flow_graph_join_impl.h.

120  {
121  join_helper<N-1>::reset_inputs(my_input, f);
122  tbb::flow::get<N-1>(my_input).reset_receiver(f);
123  }
static void reset_inputs(InputTuple &my_input, reset_flags f)

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().

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 94 of file _flow_graph_join_impl.h.

94  {
96  tbb::flow::get<N-1>(my_input).reset_port();
97  }
static void reset_my_port(InputTuple &my_input)

Referenced by internal::join_helper< N >::reset_ports(), and internal::join_helper< 1 >::reset_ports().

Here is the caller graph for this function:

◆ reset_ports()

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

Definition at line 100 of file _flow_graph_join_impl.h.

100  {
101  reset_my_port(my_input);
102  }
static void reset_my_port(InputTuple &my_input)

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

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().

Here is the call graph for this function:
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 51 of file _flow_graph_join_impl.h.

51  {
52  tbb::flow::get<N-1>( my_input ).set_join_node_pointer(port);
54  }
static void set_join_node_pointer(TupleType &my_input, PortType *port)

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().

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 105 of file _flow_graph_join_impl.h.

105  {
106  tbb::flow::get<N-1>(my_input).set_my_key_func(tbb::flow::get<N-1>(my_key_funcs));
107  tbb::flow::get<N-1>(my_key_funcs) = NULL;
108  join_helper<N-1>::set_key_functors(my_input, my_key_funcs);
109  }
static void set_key_functors(InputTuple &my_input, KeyFuncTuple &my_key_funcs)

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

Here is the caller graph for this function:

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

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.