senf::ppi::module::PriorityJoin Class Reference
[Routing Modules]

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

#include <senf/PPI/Joins.hh>

Inheritance diagram for senf::ppi::module::PriorityJoin:
Inheritance graph
[legend]

List of all members.


Detailed Description

Join multiple packet streams with active inputs.

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

When a packet request is received on Priorityjoin's output, The request will be serviced from the first unthrottled input. The order, in which connectors are connected to the PriorityJoin's input is important: The earlier connected peer has the higher priority and will be serviced first.

Since PriorityJoin 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.

senf::ppi::module::PriorityJoin join;

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
Here, module1 has higher priority than module2 which will only be queried if module1 is throttled.

Definition at line 108 of file Joins.hh.


Public Member Functions

  PriorityJoin ()

Public Attributes

connector::PassiveOutput  output

Constructor & Destructor Documentation

senf::ppi::module::PriorityJoin::
PriorityJoin ()

Definition at line 78 of file Joins.cc.


Member Data Documentation

connector::PassiveOutput senf::ppi::module::PriorityJoin::
output

Definition at line 112 of file Joins.hh.


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