summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2010-01-29 22:59:09 +0000
committerAlan Conway <aconway@apache.org>2010-01-29 22:59:09 +0000
commita78bf7b9144ed3db8e798124595f48fc75231cce (patch)
treeb7284043fe639a2c6a880fc33836ce0b51d21b7e /cpp/src/qpid/broker
parent726b23f43478a85b961365e4de3a9302a261f6b3 (diff)
downloadqpid-python-a78bf7b9144ed3db8e798124595f48fc75231cce.tar.gz
Replace PeriodicTimer with ClusterTimer, which inherits from Timer.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@904656 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker')
-rw-r--r--cpp/src/qpid/broker/Broker.cpp11
-rw-r--r--cpp/src/qpid/broker/Broker.h10
2 files changed, 9 insertions, 12 deletions
diff --git a/cpp/src/qpid/broker/Broker.cpp b/cpp/src/qpid/broker/Broker.cpp
index cd3b014256..cbccca6eea 100644
--- a/cpp/src/qpid/broker/Broker.cpp
+++ b/cpp/src/qpid/broker/Broker.cpp
@@ -49,7 +49,6 @@
#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"
@@ -257,11 +256,7 @@ Broker::Broker(const Broker::Options& conf) :
// Initialize plugins
Plugin::initializeAll(*this);
- if (!periodicTimer.hasDelegate()) {
- // If no plugin has contributed a PeriodicTimer, use the default one.
- periodicTimer.setDelegate(
- std::auto_ptr<sys::PeriodicTimer>(new sys::PeriodicTimerImpl(timer)));
- }
+ if (managementAgent.get()) managementAgent->pluginsInitialized();
if (conf.queueCleanInterval) {
queueCleaner.start(conf.queueCleanInterval * qpid::sys::TIME_SEC);
@@ -474,8 +469,8 @@ Broker::getKnownBrokersImpl()
return knownBrokers;
}
-void Broker::setPeriodicTimer(std::auto_ptr<sys::PeriodicTimer> pt) {
- periodicTimer.setDelegate(pt);
+void Broker::setClusterTimer(std::auto_ptr<sys::Timer> t) {
+ clusterTimer = t;
}
const std::string Broker::TCP_TRANSPORT("tcp");
diff --git a/cpp/src/qpid/broker/Broker.h b/cpp/src/qpid/broker/Broker.h
index 302ef74e3d..465a17f4eb 100644
--- a/cpp/src/qpid/broker/Broker.h
+++ b/cpp/src/qpid/broker/Broker.h
@@ -25,7 +25,6 @@
#include "qpid/broker/BrokerImportExport.h"
#include "qpid/broker/ConnectionFactory.h"
#include "qpid/broker/ConnectionToken.h"
-#include "qpid/broker/DelegatingPeriodicTimer.h"
#include "qpid/broker/DirectExchange.h"
#include "qpid/broker/DtxManager.h"
#include "qpid/broker/ExchangeRegistry.h"
@@ -147,7 +146,7 @@ public:
boost::shared_ptr<sys::Poller> poller;
sys::Timer timer;
- DelegatingPeriodicTimer periodicTimer;
+ std::auto_ptr<sys::Timer> clusterTimer;
Options config;
std::auto_ptr<management::ManagementAgent> managementAgent;
ProtocolFactoryMap protocolFactories;
@@ -254,9 +253,12 @@ public:
boost::shared_ptr<sys::ConnectionCodec::Factory> getConnectionFactory() { return factory; }
void setConnectionFactory(boost::shared_ptr<sys::ConnectionCodec::Factory> f) { factory = f; }
+ /** Timer for local tasks affecting only this broker */
sys::Timer& getTimer() { return timer; }
- sys::PeriodicTimer& getPeriodicTimer() { return periodicTimer; }
- void setPeriodicTimer(std::auto_ptr<sys::PeriodicTimer> pt);
+
+ /** Timer for tasks that must be synchronized if we are in a cluster */
+ sys::Timer& getClusterTimer() { return clusterTimer.get() ? *clusterTimer : timer; }
+ void setClusterTimer(std::auto_ptr<sys::Timer>);
boost::function<std::vector<Url> ()> getKnownBrokers;