summaryrefslogtreecommitdiff
path: root/cpp/src/qpid
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2009-06-11 14:24:05 +0000
committerAndrew Stitcher <astitcher@apache.org>2009-06-11 14:24:05 +0000
commitb2838cde6c363bdd3dae72e54768f9c510afd994 (patch)
tree2f521a7568bf2fee7fa36b2927d7f822a28088de /cpp/src/qpid
parent024f9243d86a2691a5ea76183c42b1978dceb6c8 (diff)
downloadqpid-python-b2838cde6c363bdd3dae72e54768f9c510afd994.tar.gz
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
Diffstat (limited to 'cpp/src/qpid')
-rw-r--r--cpp/src/qpid/broker/Connection.cpp3
-rw-r--r--cpp/src/qpid/broker/Connection.h6
-rw-r--r--cpp/src/qpid/cluster/Connection.cpp1
3 files changed, 9 insertions, 1 deletions
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<framing::ChannelId, SessionHandler> ChannelMap;
typedef std::vector<Queue::shared_ptr>::iterator queue_iterator;
@@ -147,6 +152,7 @@ class Connection : public sys::ConnectionInputHandler,
boost::intrusive_ptr<TimerTask> heartbeatTimer;
boost::intrusive_ptr<TimerTask> 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);