senf::ppi::module::PassiveJoin< PacketType > Class Template Reference

Join multiple packet streams with passive inputs. More...

#include <senf/PPI/Joins.hh>

Inheritance diagram for senf::ppi::module::PassiveJoin< PacketType >:

Public Member Functions

 PassiveJoin ()
 
- Public Member Functions inherited from senf::ppi::module::Module
virtual ~Module ()
 

Public Attributes

connector::ActiveOutput< PacketType > output
 

Additional Inherited Members

- Public Types inherited from senf::ppi::module::MultiConnectorMixin< Self_, ConnectorType_, KeyType_, ContainerType_ >
typedef ConnectorType_ ConnectorType
 Type of MultiConnector connector. More...
 
- Protected Types inherited from senf::ppi::module::MultiConnectorMixin< Self_, ConnectorType_, KeyType_, ContainerType_ >
typedef ContainerType_ ContainerType
 Type of connector container. More...
 
- Protected Member Functions inherited from senf::ppi::module::Module
 Module ()
 
Route< connector::InputConnector, connector::OutputConnector > & route (connector::InputConnector &input, connector::OutputConnector &output)
 Define flow information. More...
 
Route< connector::InputConnector, EventDescriptor > & route (connector::InputConnector &input, EventDescriptor &output)
 Define flow information. More...
 
Route< EventDescriptor, connector::OutputConnector > & route (EventDescriptor &input, connector::OutputConnector &output)
 Define flow information. More...
 
void noroute (connector::Connector &connector)
 Define terminal connectors. More...
 
template<class Target >
void registerEvent (EventDescriptor &descriptor, Target target)
 Register an external event. More...
 
ClockService::clock_type const & time () const
 Time-stamp of the currently processing event. More...
 
ClockService::clock_type const & now () const
 Current time of the currently processing event. More...
 
virtual void v_init ()
 Called after module setup. More...
 
console::DirectoryNodesysConsoleDir () const
 
void destroy ()
 
- Protected Member Functions inherited from senf::ppi::module::MultiConnectorMixin< Self_, ConnectorType_, KeyType_, ContainerType_ >
ContainerType_ & connectors ()
 Get connector container. More...
 
ContainerType_ const & connectors () const
 Get connectors container (const) More...
 
void connectorDestroy (ConnectorType const &)
 

Detailed Description

template<class PacketType = Packet>
class senf::ppi::module::PassiveJoin< PacketType >

Join multiple packet streams with passive inputs.

The PassiveJoin will combine any number of packet streams. You may connect any number of ActiveOutput<>'s to the PassiveJoin instance. The combined stream is then provided on the ActiveOutput<> output.

Since PassiveJoin allows any number of incoming packet streams, the input connectors are dynamically managed. A special senf::ppi::connect() overload is used to dynamically create the needed input connectors. This hides this extra functionality from the user.

ppi::connect(module1,join); // Connect first module to join's input
ppi::connect(module2.some_output,join); // Connect another module to join's input
ppi::connect(join,module3); // Forward combined stream to module3

Definition at line 53 of file Joins.hh.

Constructor & Destructor Documentation

◆ PassiveJoin()

template<class PacketType = Packet>
senf::ppi::module::PassiveJoin< PacketType >::PassiveJoin ( )

Member Data Documentation

◆ output

template<class PacketType = Packet>
connector::ActiveOutput<PacketType> senf::ppi::module::PassiveJoin< PacketType >::output

Definition at line 57 of file Joins.hh.


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