diff options
| author | Andrew Stitcher <astitcher@apache.org> | 2012-12-21 17:04:33 +0000 |
|---|---|---|
| committer | Andrew Stitcher <astitcher@apache.org> | 2012-12-21 17:04:33 +0000 |
| commit | f5431bb215c107c1967842cfeb6814cfd3a866a9 (patch) | |
| tree | cb7b17c8153b84e1c1db6c0331dcc51a1eb22cb5 /cpp/src/qpid/broker/QueueCleaner.cpp | |
| parent | fd54c5f98193aa0a1b2064a13cec094d1be9dfe3 (diff) | |
| download | qpid-python-f5431bb215c107c1967842cfeb6814cfd3a866a9.tar.gz | |
NO-JIRA: Removed Timer.h out of the chain of header files included by Broker.h
(since that is widely included) to avoid unnecessary recompilation
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1425037 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/QueueCleaner.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/QueueCleaner.cpp | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/cpp/src/qpid/broker/QueueCleaner.cpp b/cpp/src/qpid/broker/QueueCleaner.cpp index 838bc28be8..8d9e3f43dd 100644 --- a/cpp/src/qpid/broker/QueueCleaner.cpp +++ b/cpp/src/qpid/broker/QueueCleaner.cpp @@ -18,15 +18,36 @@ * under the License. * */ -#include "qpid/broker/Queue.h" #include "qpid/broker/QueueCleaner.h" #include "qpid/broker/Broker.h" +#include "qpid/broker/Queue.h" +#include "qpid/sys/Timer.h" + +#include <boost/function.hpp> #include <boost/bind.hpp> namespace qpid { namespace broker { +namespace { + typedef boost::function0<void> FireFunction; + class Task : public sys::TimerTask + { + public: + Task(FireFunction f, sys::Duration duration); + void fire(); + private: + FireFunction fireFunction; + }; + + Task::Task(FireFunction f, qpid::sys::Duration d) : sys::TimerTask(d,"QueueCleaner"), fireFunction(f) {} + + void Task::fire() + { + fireFunction(); + } +} QueueCleaner::QueueCleaner(QueueRegistry& q, sys::Timer* t) : queues(q), timer(t) {} QueueCleaner::~QueueCleaner() @@ -37,7 +58,7 @@ QueueCleaner::~QueueCleaner() void QueueCleaner::start(qpid::sys::Duration p) { period = p; - task = new Task(*this, p); + task = new Task(boost::bind(&QueueCleaner::fired, this), p); timer->add(task); } @@ -45,14 +66,6 @@ void QueueCleaner::setTimer(qpid::sys::Timer* timer) { this->timer = timer; } - -QueueCleaner::Task::Task(QueueCleaner& p, qpid::sys::Duration d) : sys::TimerTask(d,"QueueCleaner"), parent(p) {} - -void QueueCleaner::Task::fire() -{ - parent.fired(); -} - namespace { struct CollectQueues { |
