Author: aconway
Date: Wed Sep 11 19:05:36 2013
New Revision: 1521987
URL: http://svn.apache.org/r1521987
Log:
NO-JIRA: HA Rationalize naming of Membership functions
Modified:
qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp
qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h
qpid/trunk/qpid/cpp/src/qpid/ha/Membership.cpp
qpid/trunk/qpid/cpp/src/qpid/ha/Membership.h
qpid/trunk/qpid/cpp/src/qpid/ha/TxReplicator.cpp
Modified: qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp?rev=1521987&r1=1521986&r2=1521987&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp Wed Sep 11 19:05:36 2013
@@ -95,7 +95,7 @@ bool isNone(const std::string& x) { retu
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) {
Modified: qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h?rev=1521987&r1=1521986&r2=1521987&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h Wed Sep 11 19:05:36 2013
@@ -92,7 +92,7 @@ class HaBroker : public management::Mana
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; }
Modified: qpid/trunk/qpid/cpp/src/qpid/ha/Membership.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/Membership.cpp?rev=1521987&r1=1521986&r2=1521987&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/Membership.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/Membership.cpp Wed Sep 11 19:05:36 2013
@@ -144,20 +144,9 @@ bool checkTransition(BrokerStatus from,
}
} // 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::
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);
Modified: qpid/trunk/qpid/cpp/src/qpid/ha/Membership.h
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/Membership.h?rev=1521987&r1=1521986&r2=1521987&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/Membership.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/Membership.h Wed Sep 11 19:05:36 2013
@@ -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
Modified: qpid/trunk/qpid/cpp/src/qpid/ha/TxReplicator.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/TxReplicator.cpp?rev=1521987&r1=1521986&r2=1521987&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/TxReplicator.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/TxReplicator.cpp Wed Sep 11 19:05:36 2013
@@ -219,7 +219,7 @@ void TxReplicator::members(const string&
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);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]