summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2011-09-06 21:46:56 +0000
committerAlan Conway <aconway@apache.org>2011-09-06 21:46:56 +0000
commit091189ed0df268e9e5715efbfc495ee56e8ee9fd (patch)
tree7b6d39e0ea193180cbb1a14f7c5e37dc566ef417
parentb9ec1a2c27438bf1deeb550e013920bf112caef8 (diff)
downloadqpid-python-091189ed0df268e9e5715efbfc495ee56e8ee9fd.tar.gz
QPID-2920: pass configuration changes to handlers.
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/qpid-2920-1@1165884 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/cluster/exp/EventHandler.cpp4
-rw-r--r--qpid/cpp/src/qpid/cluster/exp/HandlerBase.h2
2 files changed, 6 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/cluster/exp/EventHandler.cpp b/qpid/cpp/src/qpid/cluster/exp/EventHandler.cpp
index c0e3e5fc42..2138004380 100644
--- a/qpid/cpp/src/qpid/cluster/exp/EventHandler.cpp
+++ b/qpid/cpp/src/qpid/cluster/exp/EventHandler.cpp
@@ -118,6 +118,10 @@ void EventHandler::configChange (
QPID_LOG(notice, "cluster: new membership: " << PrintAddrs(members, nMembers));
QPID_LOG_IF(notice, nLeft, "cluster: members left: " << PrintAddrs(left, nLeft));
QPID_LOG_IF(notice, nJoined, "cluster: members joined: " << PrintAddrs(joined, nJoined));
+ for (Handlers::iterator i = handlers.begin(); i != handlers.end(); ++i) {
+ for (int l = 0; l < nLeft; ++l) (*i)->left(left[l]);
+ for (int j = 0; j < nJoined; ++j) (*i)->joined(joined[j]);
+ }
}
}} // namespace qpid::cluster
diff --git a/qpid/cpp/src/qpid/cluster/exp/HandlerBase.h b/qpid/cpp/src/qpid/cluster/exp/HandlerBase.h
index 455375be5b..b153f56a01 100644
--- a/qpid/cpp/src/qpid/cluster/exp/HandlerBase.h
+++ b/qpid/cpp/src/qpid/cluster/exp/HandlerBase.h
@@ -42,6 +42,8 @@ class HandlerBase
virtual ~HandlerBase();
virtual bool invoke(const framing::AMQBody& body) = 0;
+ virtual void left(const MemberId&) {}
+ virtual void joined(const MemberId&) {}
protected:
EventHandler& eventHandler;