summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/Connection.h
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2010-02-05 23:02:45 +0000
committerAlan Conway <aconway@apache.org>2010-02-05 23:02:45 +0000
commit5dd3cd3ae035673bf6003b6422712663ffa57fe5 (patch)
tree0fd603d1e693b5c75ff41a86ed0051b04fa99f02 /cpp/src/qpid/cluster/Connection.h
parentf5408c46da630d308f6e2a80b8b228cd398b89b4 (diff)
downloadqpid-python-5dd3cd3ae035673bf6003b6422712663ffa57fe5.tar.gz
Consistent connection names across a cluster.
- use the same host:port for connections and their shadows. - add shadow property to managment connection to identify shadows. - updated qpid-stat and qpid-cluster to filter on shadow property. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@907123 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/cluster/Connection.h')
-rw-r--r--cpp/src/qpid/cluster/Connection.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/cpp/src/qpid/cluster/Connection.h b/cpp/src/qpid/cluster/Connection.h
index a2f96782f7..85fad72948 100644
--- a/cpp/src/qpid/cluster/Connection.h
+++ b/cpp/src/qpid/cluster/Connection.h
@@ -65,10 +65,10 @@ class Connection :
public:
/** Local connection. */
- Connection(Cluster&, sys::ConnectionOutputHandler& out, const std::string& logId, MemberId, bool catchUp, bool isLink,
+ Connection(Cluster&, sys::ConnectionOutputHandler& out, const std::string& mgmtId, MemberId, bool catchUp, bool isLink,
unsigned int ssf);
/** Shadow connection. */
- Connection(Cluster&, sys::ConnectionOutputHandler& out, const std::string& logId, const ConnectionId& id,
+ Connection(Cluster&, sys::ConnectionOutputHandler& out, const std::string& mgmtId, const ConnectionId& id,
unsigned int ssf);
~Connection();
@@ -109,6 +109,8 @@ class Connection :
// ==== Used in catch-up mode to build initial state.
//
// State update methods.
+ void shadowPrepare(const std::string&);
+
void sessionState(const framing::SequenceNumber& replayStart,
const framing::SequenceNumber& sendCommandPoint,
const framing::SequenceSet& sentIncomplete,
@@ -119,7 +121,12 @@ class Connection :
void outputTask(uint16_t channel, const std::string& name);
- void shadowReady(uint64_t memberId, uint64_t connectionId, const std::string& username, const std::string& fragment, uint32_t sendMax);
+ void shadowReady(uint64_t memberId,
+ uint64_t connectionId,
+ const std::string& managementId,
+ const std::string& username,
+ const std::string& fragment,
+ uint32_t sendMax);
void membership(const framing::FieldTable&, const framing::FieldTable&,
const framing::SequenceNumber& frameSeq,
@@ -156,7 +163,7 @@ class Connection :
void exchange(const std::string& encoded);
void giveReadCredit(int credit);
- void announce(uint32_t ssf);
+ void announce(const std::string& mgmtId, uint32_t ssf);
void abort();
void deliverClose();
@@ -182,6 +189,7 @@ class Connection :
unsigned int ssf;
bool isLink;
uint64_t objectId;
+ bool shadow;
ConnectionCtor(
sys::ConnectionOutputHandler* out_,
@@ -189,12 +197,15 @@ class Connection :
const std::string& mgmtId_,
unsigned int ssf_,
bool isLink_=false,
- uint64_t objectId_=0
- ) : out(out_), broker(broker_), mgmtId(mgmtId_), ssf(ssf_), isLink(isLink_), objectId(objectId_) {}
+ uint64_t objectId_=0,
+ bool shadow_=false
+ ) : out(out_), broker(broker_), mgmtId(mgmtId_), ssf(ssf_),
+ isLink(isLink_), objectId(objectId_), shadow(shadow_)
+ {}
std::auto_ptr<broker::Connection> construct() {
return std::auto_ptr<broker::Connection>(
- new broker::Connection(out, broker, mgmtId, ssf, isLink, objectId));
+ new broker::Connection(out, broker, mgmtId, ssf, isLink, objectId, shadow));
}
};
@@ -225,7 +236,7 @@ class Connection :
boost::shared_ptr<broker::TxBuffer> txBuffer;
bool expectProtocolHeader;
McastFrameHandler mcastFrameHandler;
- UpdateReceiver::ConsumerNumbering& consumerNumbering;
+ UpdateReceiver& updateIn;
static qpid::sys::AtomicValue<uint64_t> catchUpId;