Packets: Fix VariantParser invalid parser access bug
[senf.git] / PPI / Route.hh
index 307d341..fb29305 100644 (file)
@@ -1,6 +1,8 @@
-// Copyright (C) 2007 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// $Id$
+//
+// Copyright (C) 2007
+// 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
@@ -21,8 +23,8 @@
 /** \file
     \brief Route public header */
 
-#ifndef HH_Route_
-#define HH_Route_ 1
+#ifndef HH_SENF_PPI_Route_
+#define HH_SENF_PPI_Route_ 1
 
 // Custom includes
 #include <boost/type_traits.hpp>
@@ -44,6 +46,17 @@ namespace ppi {
     public:
         virtual ~RouteBase();
 
+#ifdef DOXYGEN
+        Source & source() const;        ///< Routing source
+                                        /**< \note The real implementation is in the \c
+                                             BaseRouteImplementation template in \c Route.ih. This
+                                             class is internal and not documented. */
+        Target & target() const;        ///< Routing target
+                                        /**< \note The real implementation is in the \c
+                                             BaseRouteImplementation template in \c Route.ih. This
+                                             class is internal and not documented. */
+#endif
+
     protected:
         RouteBase(module::Module & module);
 
@@ -119,9 +132,15 @@ namespace ppi {
         Route instances are created by Module::route statements. The Route class provides an
         interface to manipulate the flow processing.
 
-        The concrete interface provided depends on the type of route. If the route is a forwarding
-        route, it will be based on ForwardingRoute otherwise it will be based directly on
-        RouteBase.
+        Depending on the type of route, one of the following classes will be a baseclass:
+
+        <dl> <dt>ForwardingRoute</dt><dd>If the route is a \e forwarding route. This is a route
+        which forwards throttling notifications. This is the case, if one of the route endpoints is
+        a notify source (a connector::ActiveConnector) and the other is a
+        notify target (a connector::PassiveConnector or an EventDescriptor).
+
+        <dt>RouteBase</dt><dd>If the route is not a forwarding route, it is based directly on the
+        generic route base class</dd></dl>
      */
     template <class Source, class Target>
     class Route