summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/ClusterMap.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-09-18 13:55:30 +0000
committerAlan Conway <aconway@apache.org>2008-09-18 13:55:30 +0000
commite2b079386b19c34a26bb4a7c67bd002ebb9bdc94 (patch)
treec190fa29f5a58530bba7f174ec6f5727c36630ba /cpp/src/qpid/cluster/ClusterMap.cpp
parentfcc3335293a77c8e9130ea1836ee55872d6b28f5 (diff)
downloadqpid-python-e2b079386b19c34a26bb4a7c67bd002ebb9bdc94.tar.gz
Refactor Cluster logic into separate handlers for Joining & Member modes.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@696657 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/cluster/ClusterMap.cpp')
-rw-r--r--cpp/src/qpid/cluster/ClusterMap.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/cpp/src/qpid/cluster/ClusterMap.cpp b/cpp/src/qpid/cluster/ClusterMap.cpp
index 51e360ad73..e14e35998f 100644
--- a/cpp/src/qpid/cluster/ClusterMap.cpp
+++ b/cpp/src/qpid/cluster/ClusterMap.cpp
@@ -53,8 +53,8 @@ framing::ClusterUpdateBody ClusterMap::toControl() const {
return b;
}
-void ClusterMap::update(const FieldTable& ftMembers, uint64_t dumper_) {
- FieldTable::ValueMap::const_iterator i;
+void ClusterMap::update(const framing::FieldTable& ftMembers, uint64_t dumper_) {
+ framing:: FieldTable::ValueMap::const_iterator i;
for (i = ftMembers.begin(); i != ftMembers.end(); ++i)
members[i->first] = Url(i->second->get<std::string>());
dumper = MemberId(dumper_);
@@ -82,8 +82,10 @@ bool ClusterMap::sendUpdate(const MemberId& id) const {
return dumper==id || (!dumper && first() == id);
}
-void ClusterMap::add(const MemberId& id, const Url& url) {
+void ClusterMap::ready(const MemberId& id, const Url& url) {
members[id] = url;
+ if (id == dumper)
+ dumper = MemberId();
}
}} // namespace qpid::cluster