From b2838cde6c363bdd3dae72e54768f9c510afd994 Mon Sep 17 00:00:00 2001 From: Andrew Stitcher Date: Thu, 11 Jun 2009 14:24:05 +0000 Subject: Add flag to broker Connection so that it knows if it is a local or shadow connection git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@783789 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/Connection.cpp | 3 ++- cpp/src/qpid/broker/Connection.h | 6 ++++++ cpp/src/qpid/cluster/Connection.cpp | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) (limited to 'cpp/src') diff --git a/cpp/src/qpid/broker/Connection.cpp b/cpp/src/qpid/broker/Connection.cpp index c21fd49171..8575381453 100644 --- a/cpp/src/qpid/broker/Connection.cpp +++ b/cpp/src/qpid/broker/Connection.cpp @@ -58,7 +58,8 @@ Connection::Connection(ConnectionOutputHandler* out_, Broker& broker_, const std links(broker_.getLinks()), agent(0), timer(broker_.getTimer()), - errorListener(0) + errorListener(0), + shadow(false) { Manageable* parent = broker.GetVhostObject(); diff --git a/cpp/src/qpid/broker/Connection.h b/cpp/src/qpid/broker/Connection.h index df2c36c92e..8040d74a75 100644 --- a/cpp/src/qpid/broker/Connection.h +++ b/cpp/src/qpid/broker/Connection.h @@ -129,6 +129,11 @@ class Connection : public sys::ConnectionInputHandler, void sendClose(); void setSecureConnection(SecureConnection* secured); + /** True if this is a shadow connection in a cluster. */ + bool isShadow() { return shadow; } + /** Called by cluster to mark shadow connections */ + void setShadow() { shadow = true; } + private: typedef boost::ptr_map ChannelMap; typedef std::vector::iterator queue_iterator; @@ -147,6 +152,7 @@ class Connection : public sys::ConnectionInputHandler, boost::intrusive_ptr heartbeatTimer; boost::intrusive_ptr timeoutTimer; ErrorListener* errorListener; + bool shadow; public: qmf::org::apache::qpid::broker::Connection* getMgmtObject() { return mgmtObject; } diff --git a/cpp/src/qpid/cluster/Connection.cpp b/cpp/src/qpid/cluster/Connection.cpp index be6281b4e3..afecbd50e5 100644 --- a/cpp/src/qpid/cluster/Connection.cpp +++ b/cpp/src/qpid/cluster/Connection.cpp @@ -94,6 +94,7 @@ void Connection::init() { else { // Shadow or catch-up connection connection.setClusterOrderOutput(nullFrameHandler); // Passive, discard cluster-order frames connection.setClientThrottling(false); // Disable client throttling, done by active node. + connection.setShadow(); // Mark the broker connection as a shadow. } if (!isCatchUp()) connection.setErrorListener(this); -- cgit v1.2.1