You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2007/09/18 22:42:37 UTC
svn commit: r577048 - in /incubator/qpid/trunk/qpid/cpp/src/qpid/broker:
Connection.h ConnectionAdapter.cpp ConnectionAdapter.h
Author: aconway
Date: Tue Sep 18 13:42:36 2007
New Revision: 577048
URL: http://svn.apache.org/viewvc?rev=577048&view=rev
Log:
Eliminate ChannelAdapter from broker code.
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.h
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h?rev=577048&r1=577047&r2=577048&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h Tue Sep 18 13:42:36 2007
@@ -29,7 +29,6 @@
#include "qpid/framing/AMQFrame.h"
#include "qpid/framing/AMQP_ServerOperations.h"
#include "qpid/framing/AMQP_ClientProxy.h"
-#include "qpid/framing/ChannelAdapter.h"
#include "qpid/sys/ConnectionOutputHandler.h"
#include "qpid/sys/ConnectionInputHandler.h"
#include "qpid/sys/TimeoutHandler.h"
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp?rev=577048&r1=577047&r2=577048&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp Tue Sep 18 13:42:36 2007
@@ -22,17 +22,13 @@
#include "ConnectionAdapter.h"
#include "Connection.h"
-#include "qpid/framing/ChannelAdapter.h"
+#include "qpid/framing/ConnectionStartBody.h"
using namespace qpid;
using namespace qpid::broker;
-using qpid::framing::ReplyCode;
-using qpid::framing::ClassId;
-using qpid::framing::MethodId;
-using qpid::framing::FieldTable;
+using namespace qpid::framing;
void ConnectionAdapter::init(const framing::ProtocolInitiation& header) {
- ChannelAdapter::init(0, handler->connection.getOutput(), handler->connection.getVersion());
FieldTable properties;
string mechanisms("PLAIN");
string locales("en_US");
@@ -44,16 +40,6 @@
handler->client.close(code, text, classId, methodId);
}
-void ConnectionAdapter::handleMethod(framing::AMQMethodBody* method)
-{
- try{
- method->invoke(*this);
- }catch(ConnectionException& e){
- handler->client.close(e.code, e.toString(), method->amqpClassId(), method->amqpMethodId());
- }catch(std::exception& e){
- handler->client.close(541/*internal error*/, e.what(), method->amqpClassId(), method->amqpMethodId());
- }
-}
framing::AMQP_ServerOperations::ConnectionHandler* ConnectionAdapter::getConnectionHandler()
{
@@ -67,17 +53,19 @@
void ConnectionAdapter::handle(framing::AMQFrame& frame)
{
- getHandlers().in(frame);
-}
-
-ConnectionAdapter::ConnectionAdapter(Connection& connection)
-{
- handler = std::auto_ptr<Handler>(new Handler(connection, *this));
+ AMQMethodBody* method=frame.getBody()->getMethod();
+ try{
+ method->invoke(*this);
+ }catch(ConnectionException& e){
+ handler->client.close(e.code, e.toString(), method->amqpClassId(), method->amqpMethodId());
+ }catch(std::exception& e){
+ handler->client.close(541/*internal error*/, e.what(), method->amqpClassId(), method->amqpMethodId());
+ }
}
-ConnectionAdapter::Handler:: Handler(Connection& c, ConnectionAdapter& a) :
- proxy(a.getHandlers().out), client(proxy.getConnection()), connection(c) {}
+ConnectionAdapter::ConnectionAdapter(Connection& connection) : handler(new Handler(connection)) {}
+ConnectionAdapter::Handler:: Handler(Connection& c) : client(c.getOutput()), connection(c) {}
void ConnectionAdapter::Handler::startOk(const FieldTable& /*clientProperties*/,
const string& /*mechanism*/,
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.h?rev=577048&r1=577047&r2=577048&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.h Tue Sep 18 13:42:36 2007
@@ -26,7 +26,7 @@
#include "qpid/framing/AMQFrame.h"
#include "qpid/framing/AMQP_ServerOperations.h"
#include "qpid/framing/AMQP_ClientProxy.h"
-#include "qpid/framing/ChannelAdapter.h"
+#include "qpid/framing/FrameHandler.h"
#include "qpid/framing/ProtocolInitiation.h"
#include "qpid/framing/ProtocolVersion.h"
#include "qpid/Exception.h"
@@ -36,15 +36,15 @@
class Connection;
-class ConnectionAdapter : public framing::ChannelAdapter, public framing::AMQP_ServerOperations
+// TODO aconway 2007-09-18: Rename to ConnectionHandler
+class ConnectionAdapter : public framing::FrameHandler, 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);
+ Handler(Connection& connection);
void startOk(const qpid::framing::FieldTable& clientProperties,
const std::string& mechanism, const std::string& response,
const std::string& locale);
@@ -62,14 +62,6 @@
void init(const framing::ProtocolInitiation& header);
void close(framing::ReplyCode code, const std::string& text, framing::ClassId classId, framing::MethodId methodId);
void handle(framing::AMQFrame& frame);
-
- //ChannelAdapter virtual methods:
- void handleMethod(framing::AMQMethodBody* method);
- bool isOpen() const { return true; } //channel 0 is always open
- //never needed:
- void handleHeader(framing::AMQHeaderBody*) {}
- void handleContent(framing::AMQContentBody*) {}
- void handleHeartbeat(framing::AMQHeartbeatBody*) {}
//AMQP_ServerOperations:
ConnectionHandler* getConnectionHandler();