From e183227707d150b1f42e750df0e90cd7dac8744e Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Wed, 29 Aug 2007 23:27:40 +0000 Subject: * src/qpid/broker/Session.h, .cpp: Session holds all state of a session including handlers created for that session. Session is not directly associated with a channel. * src/qpid/broker/SessionAdapter.h, .cpp: SessionAdapter is bound to a channel managed by the Connection. It can be attached to and detatched from a Session. * src/qpid/broker/Connection.cpp, .h: Use SessionAdapter. * src/qpid/framing/Handler.h: Removed use of shared_ptr. Handlers belong either to a Session or a Connection and are destroyed with it. * src/qpid/framing/InputHandler.h, OutputHandler.h: Both now inherit from FrameHandler and can be used as FrameHandlers. Intermediate step to removing them entirely. * src/qpid/broker/ConnectionAdapter.h: * src/qpid/client/ConnectionHandler.h: * src/qpid/framing/ChannelAdapter.cpp, .h: Minor changes required by Handler changes. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@570982 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/framing/ChannelAdapter.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'cpp/src/qpid/framing/ChannelAdapter.h') diff --git a/cpp/src/qpid/framing/ChannelAdapter.h b/cpp/src/qpid/framing/ChannelAdapter.h index 729f5e7b47..82f7115001 100644 --- a/cpp/src/qpid/framing/ChannelAdapter.h +++ b/cpp/src/qpid/framing/ChannelAdapter.h @@ -55,7 +55,7 @@ class ChannelAdapter : protected BodyHandler { /** *@param output Processed frames are forwarded to this handler. */ - ChannelAdapter() : id(0) {} + ChannelAdapter(); virtual ~ChannelAdapter() {} /** Initialize the channel adapter. */ @@ -69,7 +69,8 @@ class ChannelAdapter : protected BodyHandler { virtual void send(const AMQBody& body); virtual bool isOpen() const = 0; - + + void handle(AMQFrame& f); protected: void assertMethodOk(AMQMethodBody& method) const; void assertChannelOpen() const; @@ -78,9 +79,12 @@ class ChannelAdapter : protected BodyHandler { virtual void handleMethod(AMQMethodBody*) = 0; private: - class ChannelAdapterHandler; - friend class ChannelAdapterHandler; - + struct Handler : public FrameHandler { + Handler(ChannelAdapter&); + void handle(AMQFrame&); + ChannelAdapter& parent; + }; + Handler handler; ChannelId id; ProtocolVersion version; FrameHandler::Chains handlers; -- cgit v1.2.1