-// 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
/** \file
\brief Queueing public header */
-#ifndef HH_Queueing_
-#define HH_Queueing_ 1
+#ifndef HH_SENF_PPI_Queueing_
+#define HH_SENF_PPI_Queueing_ 1
// Custom includes
#include "predecl.hh"
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_;