diff options
Diffstat (limited to 'qpid/cpp/src/qpid/ha/HaBroker.cpp')
-rw-r--r-- | qpid/cpp/src/qpid/ha/HaBroker.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/ha/HaBroker.cpp b/qpid/cpp/src/qpid/ha/HaBroker.cpp index 9b2598b3bf..21d918bed9 100644 --- a/qpid/cpp/src/qpid/ha/HaBroker.cpp +++ b/qpid/cpp/src/qpid/ha/HaBroker.cpp @@ -19,6 +19,7 @@ * */ #include "Backup.h" +#include "ConnectionExcluder.h" #include "HaBroker.h" #include "Settings.h" #include "ReplicatingSubscription.h" @@ -60,15 +61,20 @@ HaBroker::HaBroker(broker::Broker& b, const Settings& s) ma->addObject(mgmtObject); } // FIXME aconway 2011-11-22: temporary hack to identify primary. - bool isPrimary = (s.brokerUrl == "primary"); - QPID_LOG(notice, "HA: " << (isPrimary ? "Primary" : "Backup") + bool primary = (s.brokerUrl == "primary"); + QPID_LOG(notice, "HA: " << (primary ? "Primary" : "Backup") << " initialized: client-url=" << clientUrl << " broker-url=" << brokerUrl); - if (!isPrimary) backup.reset(new Backup(broker, s)); + if (!primary) backup.reset(new Backup(broker, s)); // Register a factory for replicating subscriptions. broker.getConsumerFactories().add( boost::shared_ptr<ReplicatingSubscription::Factory>( new ReplicatingSubscription::Factory())); + // Register a connection excluder + broker.getConnectionObservers().add( + boost::shared_ptr<broker::ConnectionObserver>( + new ConnectionExcluder( + s.adminUser, boost::bind(&HaBroker::isPrimary, this)))); } HaBroker::~HaBroker() {} @@ -87,4 +93,8 @@ Manageable::status_t HaBroker::ManagementMethod (uint32_t methodId, Args& args, return Manageable::STATUS_OK; } +bool HaBroker::isPrimary() const { + return !backup.get(); // TODO aconway 2012-01-18: temporary test. +} + }} // namespace qpid::ha |