set keyword svn property on more files
[senf.git] / PPI / PassiveQueue.hh
index 5bc0d2a..38cbfab 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
@@ -25,6 +27,9 @@
 #define HH_PassiveQueue_ 1
 
 // Custom includes
+#include "Connectors.hh"
+#include "Module.hh"
+#include "predecl.hh"
 
 //#include "PassiveQueue.mpp"
 ///////////////////////////////hh.p////////////////////////////////////////
@@ -42,28 +47,40 @@ namespace module {
         The PassiveQueue will automatically throttle in both directions. Throttling on the input
         connector is the standard throttling as implemented in connector::PassiveInput. Additional,
         forward throttling notifications are sent out whenever the queue is empty.
+
+        \ingroup adapter_modules
      */
     class PassiveQueue 
+        : public module::Module
     {
+        SENF_PPI_MODULE(PassiveQueue);
     public:
         connector::PassiveInput input;
         connector::PassiveOutput output;
         
         PassiveQueue();
 
-        void qdisc(QueueingDiscipline const & disc); ///< Change the queueing discipline
-        /**< This call changes the queueing discipline of the queue. This call is just forwarded to
-             the \a input connector.
-             
-             \see connector::PassiveInput::qdisc() */
+        template <class QDiscipline>
+        void qdisc(QDiscipline const & disc); ///< Change the queueing discipline
+                                        /**< This call changes the queueing discipline of the
+                                             queue. This call is just forwarded to the \a input
+                                             connector.
+                                             
+                                             \see connector::PassiveInput::qdisc() */
+
+    private:
+        void init();
+
+        void onInput();
+        void onOutput();
     };
 
 }}}
 
 ///////////////////////////////hh.e////////////////////////////////////////
-//#include "PassiveQueue.cci"
+#include "PassiveQueue.cci"
 //#include "PassiveQueue.ct"
-//#include "PassiveQueue.cti"
+#include "PassiveQueue.cti"
 #endif
 
 \f
@@ -74,4 +91,5 @@ namespace module {
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
 // compile-command: "scons -u test"
+// comment-column: 40
 // End: