PPI: Add optional template arg for packet type to connectors
[senf.git] / PPI / Mainpage.dox
index 08fd879..3d18f4a 100644 (file)
@@ -1,6 +1,8 @@
+// $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
@@ -81,8 +83,8 @@
 
     \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
-    \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.
+    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
           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.
 
     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