+// $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
#define HH_PassiveQueue_ 1
// Custom includes
+#include "Connectors.hh"
+#include "Module.hh"
+#include "predecl.hh"
//#include "PassiveQueue.mpp"
///////////////////////////////hh.p////////////////////////////////////////
requested from the passive output, a packet is dequeued.
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.
+ 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;
+ 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::GenericPassiveInput::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
// indent-tabs-mode: nil
// ispell-local-dictionary: "american"
// compile-command: "scons -u test"
+// comment-column: 40
// End: