moved statistics classes from NetEmu to SENF
[senf.git] / PPI / Module.hh
index 1062fb0..b2b3ecd 100644 (file)
@@ -24,8 +24,8 @@
     \brief Module public header 
 */
 
-#ifndef HH_Module_
-#define HH_Module_ 1
+#ifndef HH_SENF_PPI_Module_
+#define HH_SENF_PPI_Module_ 1
 
 // Custom includes
 #include <vector>
@@ -61,8 +61,6 @@ namespace module {
         \li \ref io_modules receive external data or forward packets out of the PPI
         \li \ref routing_modules forward packets within the network
         \li \ref adapter_modules are used to connect incompatible connectors to each other
-
-        \todo Implement Spliters: PassiveSplitter, PrioritySplitter, CloneSplitter
      */
 
     /** \defgroup io_modules Source/Sink Modules
@@ -158,6 +156,13 @@ namespace module {
                 event.enable();
             }
 
+            void v_init() {
+                // Optional. Called after before running the module but after connections have been
+                // set up. This is either directly before senf::ppi::run() or senf::ppi::init() is
+                // called or, for modules created while the PPI is already running, after returning
+                // from all event handlers but before going back to the event loop.
+            }
+
         };
         \endcode
 
@@ -290,7 +295,13 @@ namespace module {
 
     private:
 #endif
-        virtual void v_init();
+        virtual void v_init();          ///< Called after module setup
+                                        /**< This member is called directly before the PPI (resumes)
+                                             execution. It is called after connections have been
+                                             setup before entering the PPI main loop. 
+
+                                             You may overload this member. Your overload should
+                                             always call the base-class implementation. */
 
 #ifndef DOXYGEN
     public: