-// 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
enum Event { ENQUEUE, DEQUEUE }; ///< Possible queueing events
- virtual void update(connector::PassiveInput & input, Event event) = 0;
+ virtual void update(connector::GenericPassiveInput & input, Event event) = 0;
///< Calculate new queueing state
/**< Whenever the queue is manipulated, this member is
called to calculate the new throttling state. The
\param[in] event Type of event triggering the update */
};
+ /** \brief Simple queueing discipline with high and low threshold
+
+ The ThresholdQueueing QueueingDiscipline is a simple queueing discipline which throttles the
+ input as soon the number of packets in the queue reaches the \a high threshold. The input
+ will be unthrottled when the number of packets drops to the \a low threshold.
+
+ The default queueing discipline is ThresholdQueueing(1,0).
+ */
class ThresholdQueueing
: public QueueingDiscipline
{
public:
ThresholdQueueing(unsigned high, unsigned low);
- virtual void update(connector::PassiveInput & input, Event event);
+ virtual void update(connector::GenericPassiveInput & input, Event event);
private:
unsigned high_;