+// $Id$
+//
// Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
\section ppi_modules Modules
- A module is represented by a class derived from senf::ppi::Module. Each module has several
- components:
+ A module is represented by a class derived from senf::ppi::module::Module. Each module has
+ several components:
\li It may have any number of \ref ppi_connectors (inputs and outputs)
\li Each module declares flow information which details the route packets take within the
senf::ppi::IntervalTimer timer_;
public:
- senf::ppi::connector::ActiveInput payload;
- senf::ppi::connector::ActiveInput stuffing;
- senf::ppi::connector::ActiveOutput output;
+ senf::ppi::connector::GenericActiveInput payload;
+ senf::ppi::connector::GenericActiveInput stuffing;
+ senf::ppi::connector::GenericActiveOutput output;
RateStuffer(unsigned packetsPerSecond)
: timer_(1000u, packetsPerSecond)
{
SENF_PPI_MODULE(CopyPacketGenerator);
public:
- senf::ppi::connector::PassiveOutput output;
+ senf::ppi::connector::GenericPassiveOutput output;
CopyPacketGenerator(Packet template)
: template_ (template)
The input and output attachment points of a module are called connectors. Each connector may be
active or passive. This gives us 4 types of connectors:
- \li senf::ppi::connector::ActiveInput
- \li senf::ppi::connector::ActiveOutput
- \li senf::ppi::connector::PassiveInput
- \li senf::ppi::connector::PassiveOutput
+ \li senf::ppi::connector::GenericActiveInput
+ \li senf::ppi::connector::GenericActiveOutput
+ \li senf::ppi::connector::GenericPassiveInput
+ \li senf::ppi::connector::GenericPassiveOutput
An \e active connector (input or output) is <em>activated by the module</em> to send data or to
poll for available packets. This means, the modules processing routine will call the connector
This application will read udp-packets coming in on port 1111 and will forward
them to port 2222 on host 2.3.4.5 with a fixed rate of 10 packets / second.
- We start of by instantiating the necessary modules. Then the connections between these modules
- are set up by successively connecting each output connector to an in put connector. As can be
+ We start out by instantiating the necessary modules. Then the connections between these modules
+ are set up by successively connecting each output connector to an input connector. As can be
seen, the name of the connector can be left of if it is named \c output or \c input
respectively.