summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2013-09-11 19:05:36 +0000
committerAlan Conway <aconway@apache.org>2013-09-11 19:05:36 +0000
commitafa91b39595fca16f2e86835e937782aee8f0f3a (patch)
treef84cfa5f6b56e3790d0faca67cf9340f6d314296
parent68e63dd2771f5b827cedc348ce6b68d8c346eb55 (diff)
downloadqpid-python-afa91b39595fca16f2e86835e937782aee8f0f3a.tar.gz
NO-JIRA: HA Rationalize naming of Membership functions
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1521987 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/ha/HaBroker.cpp4
-rw-r--r--qpid/cpp/src/qpid/ha/HaBroker.h2
-rw-r--r--qpid/cpp/src/qpid/ha/Membership.cpp17
-rw-r--r--qpid/cpp/src/qpid/ha/Membership.h13
-rw-r--r--qpid/cpp/src/qpid/ha/TxReplicator.cpp2
5 files changed, 11 insertions, 27 deletions
diff --git a/qpid/cpp/src/qpid/ha/HaBroker.cpp b/qpid/cpp/src/qpid/ha/HaBroker.cpp
index 21e41c0f8c..61561b3af6 100644
--- a/qpid/cpp/src/qpid/ha/HaBroker.cpp
+++ b/qpid/cpp/src/qpid/ha/HaBroker.cpp
@@ -95,7 +95,7 @@ bool isNone(const std::string& x) { return x.empty() || x == NONE; }
void HaBroker::initialize() {
if (settings.cluster) {
membership.setStatus(JOINING);
- QPID_LOG(notice, "Initializing HA broker: " << membership.getInfo());
+ QPID_LOG(notice, "Initializing HA broker: " << membership.getSelf());
}
// Set up the management object.
@@ -214,7 +214,7 @@ BrokerStatus HaBroker::getStatus() const {
void HaBroker::setAddress(const Address& a) {
QPID_LOG(info, role->getLogPrefix() << "Set self address to: " << a);
- membership.setAddress(a);
+ membership.setSelfAddress(a);
}
boost::shared_ptr<QueueReplicator> HaBroker::findQueueReplicator(const std::string& queueName) {
diff --git a/qpid/cpp/src/qpid/ha/HaBroker.h b/qpid/cpp/src/qpid/ha/HaBroker.h
index 1a42111cea..d10014846c 100644
--- a/qpid/cpp/src/qpid/ha/HaBroker.h
+++ b/qpid/cpp/src/qpid/ha/HaBroker.h
@@ -92,7 +92,7 @@ class HaBroker : public management::Manageable
BrokerStatus getStatus() const;
boost::shared_ptr<ConnectionObserver> getObserver() { return observer; }
- BrokerInfo getBrokerInfo() const { return membership.getInfo(); }
+ BrokerInfo getBrokerInfo() const { return membership.getSelf(); }
Membership& getMembership() { return membership; }
types::Uuid getSystemId() const { return systemId; }
diff --git a/qpid/cpp/src/qpid/ha/Membership.cpp b/qpid/cpp/src/qpid/ha/Membership.cpp
index ddb603ca14..2f8ef1da97 100644
--- a/qpid/cpp/src/qpid/ha/Membership.cpp
+++ b/qpid/cpp/src/qpid/ha/Membership.cpp
@@ -144,20 +144,9 @@ bool checkTransition(BrokerStatus from, BrokerStatus to) {
}
} // namespace
-void Membership::addCallback(UpdateCallback cb) {
- Mutex::ScopedLock l(lock);
- callbacks.push_back(cb);
- cb(brokers); // Give an initial update.
-}
-
void Membership::update(Mutex::ScopedLock& l) {
QPID_LOG(info, "Membership: " << brokers);
-
- // Call callbacks
- for_each(callbacks.begin(), callbacks.end(),
- boost::bind<void>(&UpdateCallback::operator(), _1, boost::cref(brokers)));
-
- // Update managment and send update event.
+// Update managment and send update event.
BrokerStatus newStatus = getStatus(l);
Variant::List brokerList = asList(l);
if (mgmtObject) {
@@ -216,14 +205,14 @@ BrokerStatus Membership::getStatus(sys::Mutex::ScopedLock&) const {
return i->second.getStatus();
}
-BrokerInfo Membership::getInfo() const {
+BrokerInfo Membership::getSelf() const {
Mutex::ScopedLock l(lock);
BrokerInfo::Map::const_iterator i = brokers.find(self);
assert(i != brokers.end());
return i->second;
}
-void Membership::setAddress(const Address& a) {
+void Membership::setSelfAddress(const Address& a) {
Mutex::ScopedLock l(lock);
brokers[self].setAddress(a);
update(l);
diff --git a/qpid/cpp/src/qpid/ha/Membership.h b/qpid/cpp/src/qpid/ha/Membership.h
index f8b7f7f8ad..5b2b72e2fc 100644
--- a/qpid/cpp/src/qpid/ha/Membership.h
+++ b/qpid/cpp/src/qpid/ha/Membership.h
@@ -26,6 +26,7 @@
#include "types.h"
#include "qpid/log/Statement.h"
#include "qpid/sys/Mutex.h"
+#include "qpid/sys/Time.h"
#include "qpid/types/Variant.h"
#include <boost/function.hpp>
#include <set>
@@ -61,11 +62,6 @@ class Membership
void setMgmtObject(boost::shared_ptr<qmf::org::apache::qpid::ha::HaBroker>);
- /** Call callback when membership changes.
- * NOTE: called with Membership lock held.
- */
- typedef boost::function<void(const BrokerInfo::Map&)> UpdateCallback;
- void addCallback(UpdateCallback);
void clear(); ///< Clear all but self.
void add(const BrokerInfo& b);
void remove(const types::Uuid& id);
@@ -82,11 +78,11 @@ class Membership
bool get(const types::Uuid& id, BrokerInfo& result) const;
- types::Uuid getSelf() const { return self; }
- BrokerInfo getInfo() const;
+ BrokerInfo getSelf() const;
BrokerStatus getStatus() const;
void setStatus(BrokerStatus s);
- void setAddress(const Address&);
+
+ void setSelfAddress(const Address&);
private:
void update(sys::Mutex::ScopedLock&);
@@ -99,7 +95,6 @@ class Membership
const types::Uuid self;
BrokerInfo::Map brokers;
BrokerStatus oldStatus;
- std::vector<UpdateCallback> callbacks;
};
}} // namespace qpid::ha
diff --git a/qpid/cpp/src/qpid/ha/TxReplicator.cpp b/qpid/cpp/src/qpid/ha/TxReplicator.cpp
index dcc5376d97..0ec0643491 100644
--- a/qpid/cpp/src/qpid/ha/TxReplicator.cpp
+++ b/qpid/cpp/src/qpid/ha/TxReplicator.cpp
@@ -219,7 +219,7 @@ void TxReplicator::members(const string& data, sys::Mutex::ScopedLock& l) {
TxMembersEvent e;
decodeStr(data, e);
QPID_LOG(debug, logPrefix << "Members: " << e.members);
- if (!e.members.count(haBroker.getMembership().getSelf())) {
+ if (!e.members.count(haBroker.getMembership().getSelf().getSystemId())) {
QPID_LOG(debug, logPrefix << "Not a member of transaction, terminating");
end(l);
}