+// $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
Of these modules, normally only the application modules need to be implemented since the library
provides an extensive set of reusable modules.
- The following example module declares three \ref ppi_connectors: \c payload, \c stuffing and
- \coutput. These connectors are defined as \e public data members so they can be accessed from
- the outside. This is important as we will see below.
+ The following example module declares three \ref ppi_connectors "Connectors": \c payload,
+ \c stuffing and \c output. These connectors are defined as \e public data members so they
+ can be accessed from the outside. This is important as we will see below.
\code
class RateStuffer
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.
example by manually throttling some passive connector (see \ref
senf::ppi::connector::PassiveConnector).
- To enable/disable automatic throttling, the \ref senf::ppi::Module::route() command returns a
- reference to a \ref senf::ppi::Route instance. If this route is \e forwarding route, (that is,
- of the connectors is passive and the other is active), the return value will be derived from
- \ref senf::ppi::ForwardingRoute which provides members to control the throttle notification
- forwarding.
+ To enable/disable automatic throttling, the \ref senf::ppi::module::Module::route() command
+ returns a reference to a \ref senf::ppi::Route instance. If this route is \e forwarding route,
+ (that is, of the connectors is passive and the other is active), the return value will be
+ derived from \ref senf::ppi::ForwardingRoute which provides members to control the throttle
+ notification forwarding.
\see
senf::ppi::module::Module \n