FKIE Message Filters
Improved filters for processing ROS messages
|
Base class for data consumers. More...
#include <fkie_message_filters/sink.h>
Public Types | |
using | Input = IO< Inputs... > |
Grouped input types. More... | |
Public Member Functions | |
Connection | connect_to_source (Source< Inputs... > &src) noexcept |
Connect this sink to a source. More... | |
virtual void | disconnect () noexcept override |
Disconnect from all connected sources. More... | |
void | disconnect_from_all_sources () noexcept |
Disconnect from all connected sources. More... | |
virtual void | reset () noexcept |
Reset filter state. More... | |
Static Public Attributes | |
static constexpr std::size_t | NUM_INPUTS = sizeof...(Inputs) |
Number of input arguments. | |
Protected Member Functions | |
virtual void | receive (const Inputs &... in)=0 |
Process incoming data. More... | |
Base class for data consumers.
In the message filter library, all data flows from sources to sinks. The sinks are data consumers, which process all data they receive from a source.
Derived classes must override the receive() method to actually process data. The receive() method takes the same number and types of arguments as specified in the template instantiation.
using fkie_message_filters::Sink< Inputs >::Input = IO<Inputs...> |
Grouped input types.
This type can be used to define sources with matching types.
|
noexcept |
Connect this sink to a source.
Can be called multiple times to connect multiple sources; in that case, the sink receives data from all connected sources. This function does basically the same thing as Source::connect_to_sink(), only from the opposite point of view.
src
the source that is to be connected
|
overridevirtualnoexcept |
Disconnect from all connected sources.
The sink implementation calls disconnect_from_all_sources().
Implements fkie_message_filters::FilterBase.
Reimplemented in fkie_message_filters::Divider< Inputs >, and fkie_message_filters::Divider< Inputs... >.
|
noexcept |
Disconnect from all connected sources.
Severs the connection to all sources. The receive() method will not be called any more.
|
protectedpure virtual |
Process incoming data.
Derived classes need to override this method to handle all data that is to be consumed by the sink.
Implemented in fkie_message_filters::Buffer< Inputs >, fkie_message_filters::Buffer< Inputs... >, fkie_message_filters::TfFilter< Inputs >, fkie_message_filters::TfFilter< Inputs... >, fkie_message_filters::UserFilter< Inputs, Outputs >, fkie_message_filters::Divider< Inputs >, fkie_message_filters::Divider< Inputs... >, fkie_message_filters::Sequencer< Inputs >, fkie_message_filters::Sequencer< Inputs... >, fkie_message_filters::Selector< Inputs, Is >, fkie_message_filters::SimpleUserFilter< Inputs >, and fkie_message_filters::SimpleUserFilter< Inputs... >.
|
inlinevirtualnoexceptinherited |
Reset filter state.
For stateful filters, this method resets the internal state as if the filter had just been created. Existing connections to sources and sinks are unaffected.
The default implementation does nothing.
Reimplemented in fkie_message_filters::Buffer< Inputs >, fkie_message_filters::Buffer< Inputs... >, fkie_message_filters::TfFilter< Inputs >, fkie_message_filters::TfFilter< Inputs... >, fkie_message_filters::Combiner< PolicyTmpl, IOs >, fkie_message_filters::Sequencer< Inputs >, and fkie_message_filters::Sequencer< Inputs... >.