Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
fkie_message_filters::Sink< Inputs > Class Template Referenceabstract

Base class for data consumers. More...

#include <sink.h>

Inheritance diagram for fkie_message_filters::Sink< Inputs >:
Inheritance graph
[legend]

Classes

class  ReentryProtector
 

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 ~Sink ()
 
- Public Member Functions inherited from fkie_message_filters::FilterBase
virtual void reset () noexcept
 Reset filter state. More...
 
virtual ~FilterBase ()
 

Static Public Attributes

static constexpr std::size_t NUM_INPUTS = sizeof...(Inputs)
 Number of input arguments. More...
 

Protected Member Functions

virtual void receive (const Inputs &... in)=0
 Process incoming data. More...
 

Private Member Functions

void receive_cb (const Connection &, const Inputs &... in)
 

Private Attributes

std::vector< boost::signals2::scoped_connection > conn_
 
std::mutex mutex_
 
std::set< std::thread::id > running_
 

Friends

template<typename... >
class Source
 

Detailed Description

template<typename... Inputs>
class fkie_message_filters::Sink< Inputs >

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.

See also
Source

Definition at line 64 of file sink.h.

Member Typedef Documentation

◆ Input

template<typename... Inputs>
using fkie_message_filters::Sink< Inputs >::Input = IO<Inputs...>

Grouped input types.

This type can be used to define sources with matching types.

Definition at line 74 of file sink.h.

Constructor & Destructor Documentation

◆ ~Sink()

template<typename... Inputs>
virtual fkie_message_filters::Sink< Inputs >::~Sink ( )
inlinevirtual

Definition at line 76 of file sink.h.

Member Function Documentation

◆ connect_to_source()

template<typename... Inputs>
Connection fkie_message_filters::Sink< Inputs >::connect_to_source ( Source< Inputs... > &  src)
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
Returns
a connection object that can be used to monitor or sever the created connection \nothrow

Definition at line 72 of file sink_impl.h.

◆ disconnect()

template<typename... Inputs>
void fkie_message_filters::Sink< Inputs >::disconnect
overridevirtualnoexcept

◆ disconnect_from_all_sources()

template<typename... Inputs>
void fkie_message_filters::Sink< Inputs >::disconnect_from_all_sources
noexcept

Disconnect from all connected sources.

Severs the connection to all sources. The receive() method will not be called any more.

\nothrow

Definition at line 81 of file sink_impl.h.

◆ receive()

template<typename... Inputs>
virtual void fkie_message_filters::Sink< Inputs >::receive ( const Inputs &...  in)
protectedpure virtual

◆ receive_cb()

template<typename... Inputs>
void fkie_message_filters::Sink< Inputs >::receive_cb ( const Connection ,
const Inputs &...  in 
)
private

Definition at line 94 of file sink_impl.h.

Friends And Related Function Documentation

◆ Source

template<typename... Inputs>
template<typename... >
friend class Source
friend

Definition at line 66 of file sink.h.

Member Data Documentation

◆ conn_

template<typename... Inputs>
std::vector<boost::signals2::scoped_connection> fkie_message_filters::Sink< Inputs >::conn_
private

Definition at line 114 of file sink.h.

◆ mutex_

template<typename... Inputs>
std::mutex fkie_message_filters::Sink< Inputs >::mutex_
private

Definition at line 115 of file sink.h.

◆ NUM_INPUTS

template<typename... Inputs>
constexpr std::size_t fkie_message_filters::Sink< Inputs >::NUM_INPUTS = sizeof...(Inputs)
staticconstexpr

Number of input arguments.

Definition at line 69 of file sink.h.

◆ running_

template<typename... Inputs>
std::set<std::thread::id> fkie_message_filters::Sink< Inputs >::running_
private

Definition at line 116 of file sink.h.


The documentation for this class was generated from the following files:


fkie_message_filters
Author(s): Timo Röhling
autogenerated on Wed Mar 2 2022 00:18:57