summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/ConnectionAdapter.h
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2007-08-29 23:27:40 +0000
committerAlan Conway <aconway@apache.org>2007-08-29 23:27:40 +0000
commite183227707d150b1f42e750df0e90cd7dac8744e (patch)
treea9156083c1890852c2d4013d4a856f9f28762946 /cpp/src/qpid/broker/ConnectionAdapter.h
parent7422e57391a89bc2493cba18ca2ef0a84fec7baa (diff)
downloadqpid-python-e183227707d150b1f42e750df0e90cd7dac8744e.tar.gz
* 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
Diffstat (limited to 'cpp/src/qpid/broker/ConnectionAdapter.h')
-rw-r--r--cpp/src/qpid/broker/ConnectionAdapter.h39
1 files changed, 19 insertions, 20 deletions
diff --git a/cpp/src/qpid/broker/ConnectionAdapter.h b/cpp/src/qpid/broker/ConnectionAdapter.h
index 9aa3d130e8..e3102faf59 100644
--- a/cpp/src/qpid/broker/ConnectionAdapter.h
+++ b/cpp/src/qpid/broker/ConnectionAdapter.h
@@ -35,12 +35,29 @@ namespace qpid {
namespace broker {
class Connection;
-struct Handler;
class ConnectionAdapter : public framing::ChannelAdapter, public framing::AMQP_ServerOperations
{
+ struct Handler : public framing::AMQP_ServerOperations::ConnectionHandler
+ {
+ framing::AMQP_ClientProxy proxy;
+ framing::AMQP_ClientProxy::Connection client;
+ Connection& connection;
+
+ Handler(Connection& connection, ConnectionAdapter& adapter);
+ void startOk(const qpid::framing::FieldTable& clientProperties,
+ const std::string& mechanism, const std::string& response,
+ const std::string& locale);
+ void secureOk(const std::string& response);
+ void tuneOk(uint16_t channelMax, uint32_t frameMax, uint16_t heartbeat);
+ void open(const std::string& virtualHost,
+ const std::string& capabilities, bool insist);
+ void close(uint16_t replyCode, const std::string& replyText,
+ uint16_t classId, uint16_t methodId);
+ void closeOk();
+ };
std::auto_ptr<Handler> handler;
-public:
+ public:
ConnectionAdapter(Connection& connection);
void init(const framing::ProtocolInitiation& header);
void close(framing::ReplyCode code, const std::string& text, framing::ClassId classId, framing::MethodId methodId);
@@ -74,24 +91,6 @@ public:
framing::ProtocolVersion getVersion() const;
};
-struct Handler : public framing::AMQP_ServerOperations::ConnectionHandler
-{
- framing::AMQP_ClientProxy proxy;
- framing::AMQP_ClientProxy::Connection client;
- Connection& connection;
-
- Handler(Connection& connection, ConnectionAdapter& adapter);
- void startOk(const qpid::framing::FieldTable& clientProperties,
- const std::string& mechanism, const std::string& response,
- const std::string& locale);
- void secureOk(const std::string& response);
- void tuneOk(uint16_t channelMax, uint32_t frameMax, uint16_t heartbeat);
- void open(const std::string& virtualHost,
- const std::string& capabilities, bool insist);
- void close(uint16_t replyCode, const std::string& replyText,
- uint16_t classId, uint16_t methodId);
- void closeOk();
-};
}}