summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/MemberSet.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2010-01-27 20:56:31 +0000
committerAlan Conway <aconway@apache.org>2010-01-27 20:56:31 +0000
commitd1c4af32b27b6d242d2b15e4dc91152a6d3e4a5a (patch)
tree68ae4c033fcf4f36c19966bf474c9ebdafd40fdf /cpp/src/qpid/cluster/MemberSet.cpp
parent1e24432f3f0333890334648d808410fb3e9535cd (diff)
downloadqpid-python-d1c4af32b27b6d242d2b15e4dc91152a6d3e4a5a.tar.gz
Fix cluster elder calculation to ensure unique elder.
Race condition in the previous algorithm allowed several cluster members to consider themselves the elder. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@903826 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/cluster/MemberSet.cpp')
-rw-r--r--cpp/src/qpid/cluster/MemberSet.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/cpp/src/qpid/cluster/MemberSet.cpp b/cpp/src/qpid/cluster/MemberSet.cpp
index 5dc148609f..0fdf4a8f96 100644
--- a/cpp/src/qpid/cluster/MemberSet.cpp
+++ b/cpp/src/qpid/cluster/MemberSet.cpp
@@ -25,6 +25,13 @@
namespace qpid {
namespace cluster {
+std::string encodeMemberSet(const MemberSet& m) {
+ std::string addresses;
+ for (MemberSet::const_iterator i = m.begin(); i != m.end(); ++i)
+ addresses.append(i->str());
+ return addresses;
+}
+
MemberSet decodeMemberSet(const std::string& s) {
MemberSet set;
for (std::string::const_iterator i = s.begin(); i < s.end(); i += 8) {