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
commitbada43c7a879fc6ac3a1841177c046df94dfec43 (patch)
tree68ae4c033fcf4f36c19966bf474c9ebdafd40fdf /cpp/src/qpid/cluster/MemberSet.cpp
parent5099fbc7039497bdbff3cbdf64fac090452ad3ff (diff)
downloadqpid-python-bada43c7a879fc6ac3a1841177c046df94dfec43.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) {