00001 #ifndef QPID_BROKER_QUEUECLEANER_H
00002 #define QPID_BROKER_QUEUECLEANER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "Timer.h"
00026
00027 namespace qpid {
00028 namespace broker {
00029
00030 class QueueRegistry;
00034 class QueueCleaner
00035 {
00036 public:
00037 QueueCleaner(QueueRegistry& queues, Timer& timer);
00038 void start(qpid::sys::Duration period);
00039 private:
00040 class Task : public TimerTask
00041 {
00042 public:
00043 Task(QueueCleaner& parent, qpid::sys::Duration duration);
00044 void fire();
00045 private:
00046 QueueCleaner& parent;
00047 };
00048
00049 boost::intrusive_ptr<TimerTask> task;
00050 QueueRegistry& queues;
00051 Timer& timer;
00052
00053 void fired();
00054 };
00055 }}
00056
00057 #endif