Go to the documentation of this file.
20 #ifndef INCLUDE_FKIE_MESSAGE_FILTERS_SINK_H_
21 #define INCLUDE_FKIE_MESSAGE_FILTERS_SINK_H_
33 template<
typename...>
class Source;
45 template<
typename... Inputs>
46 class Sink :
public virtual FilterBase
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;
101 template<typename... Inputs>
102 class
Sink<
IO<Inputs...>> : public
Sink<Inputs...>
virtual void receive(const Inputs &... in)=0
Process incoming data.
Group multiple data types as filter input or output.
IO< Inputs... > Input
Grouped input types.
Connection connect_to_source(Source< Inputs... > &src) noexcept
Connect this sink to a source.
static constexpr std::size_t NUM_INPUTS
Number of input arguments.
void disconnect_from_all_sources() noexcept
Disconnect from all connected sources.
boost::signals2::connection Connection
Tracks connections from sources to sinks.
std::vector< boost::signals2::scoped_connection > conn_
std::set< std::thread::id > running_
Base class for data consumers.
void receive_cb(const Connection &, const Inputs &... in)
Base class for data providers.
virtual void disconnect() noexcept override
Disconnect from all connected sources.