20 #ifndef INCLUDE_FKIE_MESSAGE_FILTERS_SINK_H_ 21 #define INCLUDE_FKIE_MESSAGE_FILTERS_SINK_H_ 45 template<
typename... Inputs>
48 template<
typename...>
friend class Source;
51 static constexpr std::size_t
NUM_INPUTS =
sizeof...(Inputs);
92 virtual void receive(
const Inputs&... in) = 0;
94 class ReentryProtector;
96 std::vector<boost::signals2::scoped_connection>
conn_;
101 template<
typename... Inputs>
Base class for data consumers.
boost::signals2::connection Connection
Tracks connections from sources to sinks.
static constexpr std::size_t NUM_INPUTS
Number of input arguments.
void receive_cb(const Connection &, const Inputs &... in)
virtual void receive(const Inputs &... in)=0
Process incoming data.
Base class for data providers.
void disconnect_from_all_sources() noexcept
Disconnect from all connected sources.
Group multiple data types as filter input or output.
Connection connect_to_source(Source< Inputs... > &src) noexcept
Connect this sink to a source.
std::vector< boost::signals2::scoped_connection > conn_
virtual void disconnect() noexcept override
Disconnect from all connected sources.
std::set< std::thread::id > running_