// -*- c-basic-offset: 4 -*-
#ifndef CLICK_RATEDUNQUEUE_HH
#define CLICK_RATEDUNQUEUE_HH
#include <click/element.hh>
#include <click/gaprate.hh>
#include <click/task.hh>
#include <click/notifier.hh>
CLICK_DECLS
/*
* =c
* RatedUnqueue(RATE)
* =s shaping
* pull-to-push converter
* =d
*
* Pulls packets at the given RATE in packets per second, and pushes them out
* its single output.
*
* =h rate read/write
*
* =a BandwidthRatedUnqueue, Unqueue, Shaper, RatedSplitter */
class RatedUnqueue : public Element { public:
RatedUnqueue();
~RatedUnqueue();
const char *class_name() const { return "RatedUnqueue"; }
const char *port_count() const { return PORTS_1_1; }
const char *processing() const { return PULL_TO_PUSH; }
bool is_bandwidth() const { return class_name()[0] == 'B'; }
int configure(Vector<String> &, ErrorHandler *);
void configuration(Vector<String> &) const;
bool can_live_reconfigure() const { return true; }
int initialize(ErrorHandler *);
void add_handlers();
bool run_task();
protected:
GapRate _rate;
Task _task;
NotifierSignal _signal;
};
CLICK_ENDDECLS
#endif
syntax highlighted by Code2HTML, v. 0.9.1