From 82f2bf33f3c39bdcde2720420bb406d9f405ac68 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Tue, 11 Jan 2011 11:02:05 +0000 Subject: QPID-2991: added message counts to connection stats; fixed xxxToClient stats git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1057578 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/Connection.h | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'cpp/src/qpid/broker/Connection.h') diff --git a/cpp/src/qpid/broker/Connection.h b/cpp/src/qpid/broker/Connection.h index d978187e0c..b751848d73 100644 --- a/cpp/src/qpid/broker/Connection.h +++ b/cpp/src/qpid/broker/Connection.h @@ -111,8 +111,8 @@ class Connection : public sys::ConnectionInputHandler, ManagementMethod (uint32_t methodId, management::Args& args, std::string&); void requestIOProcessing (boost::function0); - void recordFromServer (framing::AMQFrame& frame); - void recordFromClient (framing::AMQFrame& frame); + void recordFromServer (const framing::AMQFrame& frame); + void recordFromClient (const framing::AMQFrame& frame); std::string getAuthMechanism(); std::string getAuthCredentials(); std::string getUsername(); @@ -181,7 +181,29 @@ class Connection : public sys::ConnectionInputHandler, ErrorListener* errorListener; uint64_t objectId; bool shadow; + /** + * Chained ConnectionOutputHandler that allows outgoing frames to be + * tracked (for updating mgmt stats). + */ + class OutboundFrameTracker : public sys::ConnectionOutputHandler + { + public: + OutboundFrameTracker(Connection&); + void close(); + size_t getBuffered() const; + void abort(); + void activateOutput(); + void giveReadCredit(int32_t credit); + void send(framing::AMQFrame&); + void wrap(sys::ConnectionOutputHandlerPtr&); + private: + Connection& con; + sys::ConnectionOutputHandler* next; + }; + OutboundFrameTracker outboundTracker; + + void sent(const framing::AMQFrame& f); public: qmf::org::apache::qpid::broker::Connection* getMgmtObject() { return mgmtObject; } }; -- cgit v1.2.1