20 #ifndef INCLUDE_FKIE_MESSAGE_FILTERS_DIVIDER_IMPL_H_ 21 #define INCLUDE_FKIE_MESSAGE_FILTERS_DIVIDER_IMPL_H_ 29 template<
class... Inputs>
30 template<std::
size_t N>
33 return std::get<N>(sources_);
36 template<
class... Inputs>
37 template<std::
size_t N>
40 return std::get<N>(sources_);
43 template<
class... Inputs>
47 connect_to_sinks_impl<0>(conn, sinks...);
51 template<
class... Inputs>
57 std::get<I>(this->sources_).disconnect_from_all_sinks();
62 template<
class... Inputs>
65 this->disconnect_from_all_sources();
66 disconnect_from_all_sinks();
69 template<
class... Inputs>
76 template<
class... Inputs>
79 forward_to_sources<0>(ins...);
82 template<
class... Inputs>
83 template<std::
size_t N>
88 template<
class... Inputs>
89 template<std::size_t N,
typename ThisInput,
typename... OtherInputs>
92 std::get<N>(sources_).forward(in);
93 forward_to_sources<N + 1>(ins...);
96 template<
class... Inputs>
97 template<std::
size_t N>
102 template<
class... Inputs>
103 template<std::size_t N,
typename ThisSink,
typename... OtherSinks>
106 conn[N] = std::get<N>(sources_).connect_to_sink(sink);
107 connect_to_sinks_impl<N + 1>(conn, sinks...);
Base class for data consumers.
SourceType< N > & source() noexcept
Access the source for the Nth data element.
void for_each_apply(Function f)
Split an N-ary source into N unary ones.
helpers::select_nth< N, Source< Inputs >... > SourceType
Base class of the Nth source.
std::array< Connection, NUM_INPUTS > Connections
Array of connection objects.