summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/ClusterMap.h
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2010-01-06 17:01:50 +0000
committerAlan Conway <aconway@apache.org>2010-01-06 17:01:50 +0000
commite7c824871a7238697e5c534aafffee99078975cd (patch)
tree8fe2f397beb8f3b2e2fe94386dfee7aa168b2376 /cpp/src/qpid/cluster/ClusterMap.h
parentde23cb5942844463a237cff18c30e5f43ea5d5d0 (diff)
downloadqpid-python-e7c824871a7238697e5c534aafffee99078975cd.tar.gz
Added config-seq counter to track config changes since cluster init.
Config-seq is recorded persitently to help identify best store when recovering from total failure. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@896538 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/cluster/ClusterMap.h')
-rw-r--r--cpp/src/qpid/cluster/ClusterMap.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/cpp/src/qpid/cluster/ClusterMap.h b/cpp/src/qpid/cluster/ClusterMap.h
index 98572813a8..604d5c2d73 100644
--- a/cpp/src/qpid/cluster/ClusterMap.h
+++ b/cpp/src/qpid/cluster/ClusterMap.h
@@ -49,7 +49,8 @@ class ClusterMap {
ClusterMap();
ClusterMap(const Map& map);
- ClusterMap(const framing::FieldTable& joiners, const framing::FieldTable& members, framing::SequenceNumber frameSeq);
+ ClusterMap(const framing::FieldTable& joiners, const framing::FieldTable& members,
+ framing::SequenceNumber frameSeq, framing::SequenceNumber configSeq);
/** Update from config change.
*@return true if member set changed.
@@ -83,8 +84,10 @@ class ClusterMap {
/**@return true If this is a new member */
bool ready(const MemberId& id, const Url&);
- framing::SequenceNumber getFrameSeq() { return frameSeq; }
+ framing::SequenceNumber getFrameSeq() const { return frameSeq; }
framing::SequenceNumber incrementFrameSeq() { return ++frameSeq; }
+ framing::SequenceNumber getConfigSeq() const { return configSeq; }
+ void resetConfigSeq() { configSeq = 0; }
/** Clear out all knowledge of joiners & members, just keep alive set */
void clearStatus() { joiners.clear(); members.clear(); }
@@ -94,7 +97,7 @@ class ClusterMap {
Map joiners, members;
Set alive;
- framing::SequenceNumber frameSeq;
+ framing::SequenceNumber frameSeq, configSeq;
friend std::ostream& operator<<(std::ostream&, const Map&);
friend std::ostream& operator<<(std::ostream&, const ClusterMap&);