diff options
| author | Gordon Sim <gsim@apache.org> | 2011-01-11 11:02:05 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2011-01-11 11:02:05 +0000 |
| commit | 82f2bf33f3c39bdcde2720420bb406d9f405ac68 (patch) | |
| tree | 872d88e7ba816d3f2a48d5fc08a57bb96eabe634 /cpp/src/qpid/broker/Connection.h | |
| parent | d3cc015488955b0baa60cbd9b8dbe579aed26d40 (diff) | |
| download | qpid-python-82f2bf33f3c39bdcde2720420bb406d9f405ac68.tar.gz | |
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
Diffstat (limited to 'cpp/src/qpid/broker/Connection.h')
| -rw-r--r-- | cpp/src/qpid/broker/Connection.h | 26 |
1 files changed, 24 insertions, 2 deletions
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>); - 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; } }; |
