diff options
-rw-r--r-- | qpid/cpp/src/qpid/cluster/exp/EventHandler.cpp | 4 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/cluster/exp/HandlerBase.h | 2 |
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; |