summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2010-01-27 22:20:51 +0000
committerAlan Conway <aconway@apache.org>2010-01-27 22:20:51 +0000
commit1297c818282f26838776df418d846e07457a7f7f (patch)
treed69c3b15f76b9d83a62462df3ca5211a45be7a4b /cpp/src/qpid/broker
parentd0df2e739d5fba4bfb9f549720518e55d6fa9c9c (diff)
downloadqpid-python-1297c818282f26838776df418d846e07457a7f7f.tar.gz
Added PeriodicTimer interface for periodic tasks that need cluster synchronization.
The ManagementAgent's periodic prociessing uses PeriodicTimer. PeriodicTimerImpl is the default implementation for stand-alone brokers, simple wrapper for sys::Timer. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@903866 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker')
-rw-r--r--cpp/src/qpid/broker/Broker.cpp2
-rw-r--r--cpp/src/qpid/broker/Broker.h4
2 files changed, 6 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Broker.cpp b/cpp/src/qpid/broker/Broker.cpp
index 9b05373144..f47b6418bd 100644
--- a/cpp/src/qpid/broker/Broker.cpp
+++ b/cpp/src/qpid/broker/Broker.cpp
@@ -49,6 +49,7 @@
#include "qpid/sys/ConnectionInputHandlerFactory.h"
#include "qpid/sys/TimeoutHandler.h"
#include "qpid/sys/SystemInfo.h"
+#include "qpid/sys/PeriodicTimerImpl.h"
#include "qpid/Address.h"
#include "qpid/Url.h"
#include "qpid/Version.h"
@@ -136,6 +137,7 @@ const std::string knownHostsNone("none");
Broker::Broker(const Broker::Options& conf) :
poller(new Poller),
+ periodicTimer(new sys::PeriodicTimerImpl(timer)),
config(conf),
managementAgent(conf.enableMgmt ? new ManagementAgent() : 0),
store(new NullMessageStore),
diff --git a/cpp/src/qpid/broker/Broker.h b/cpp/src/qpid/broker/Broker.h
index b85aa7d96c..04d62306da 100644
--- a/cpp/src/qpid/broker/Broker.h
+++ b/cpp/src/qpid/broker/Broker.h
@@ -49,6 +49,7 @@
#include "qpid/framing/ProtocolInitiation.h"
#include "qpid/sys/Runnable.h"
#include "qpid/sys/Timer.h"
+#include "qpid/sys/PeriodicTimer.h"
#include "qpid/RefCounted.h"
#include "qpid/broker/AclModule.h"
#include "qpid/sys/Mutex.h"
@@ -146,6 +147,7 @@ public:
boost::shared_ptr<sys::Poller> poller;
sys::Timer timer;
+ std::auto_ptr<sys::PeriodicTimer> periodicTimer;
Options config;
std::auto_ptr<management::ManagementAgent> managementAgent;
ProtocolFactoryMap protocolFactories;
@@ -253,6 +255,8 @@ public:
void setConnectionFactory(boost::shared_ptr<sys::ConnectionCodec::Factory> f) { factory = f; }
sys::Timer& getTimer() { return timer; }
+ sys::PeriodicTimer& getPeriodicTimer() { return *periodicTimer; }
+ void setPeriodicTimer(std::auto_ptr<sys::PeriodicTimer> pt) { periodicTimer = pt; }
boost::function<std::vector<Url> ()> getKnownBrokers;