diff options
| author | Alan Conway <aconway@apache.org> | 2008-03-18 21:31:08 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-03-18 21:31:08 +0000 |
| commit | 36e23bcefbf0a6893370cb041bd05a662f0b2758 (patch) | |
| tree | 601d29d88e873ac4d58da3cdb2753f02b64998bc /cpp/src/qpid/broker/ConnectionFactory.cpp | |
| parent | eac0911169b24e708637572fe6b5a8283b3f49e0 (diff) | |
| download | qpid-python-36e23bcefbf0a6893370cb041bd05a662f0b2758.tar.gz | |
Make AsyncIOAcceptor multi-protocol:
- ConnectionCodec interface replaces ConnectionInputHandle, moves encoding/decoding out of AsyncIOAcceptor.
- ConnectionCodec::Factory replaces ConnectionInputHandlerFactory
- Acceptor creates version-specific ConnectionCodec based on protocol header.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@638590 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/ConnectionFactory.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/ConnectionFactory.cpp | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/cpp/src/qpid/broker/ConnectionFactory.cpp b/cpp/src/qpid/broker/ConnectionFactory.cpp index a0cd4e35d7..dfab998c78 100644 --- a/cpp/src/qpid/broker/ConnectionFactory.cpp +++ b/cpp/src/qpid/broker/ConnectionFactory.cpp @@ -19,27 +19,32 @@ * */ #include "ConnectionFactory.h" -#include "Connection.h" -#include "MultiVersionConnectionInputHandler.h" +#include "qpid/framing/ProtocolVersion.h" +#include "qpid/amqp_0_10/Connection.h" +#include "PreviewConnectionCodec.h" namespace qpid { namespace broker { +using framing::ProtocolVersion; -ConnectionFactory::ConnectionFactory(Broker& b) : broker(b) -{} +ConnectionFactory::ConnectionFactory(Broker& b) : broker(b) {} +ConnectionFactory::~ConnectionFactory() {} -ConnectionFactory::~ConnectionFactory() -{ - +sys::ConnectionCodec* +ConnectionFactory::create(ProtocolVersion v, sys::OutputControl& out, const std::string& id) { + if (v == ProtocolVersion(99, 0)) + return new PreviewConnectionCodec(out, broker, id); + if (v == ProtocolVersion(0, 10)) + return new amqp_0_10::Connection(out, broker, id); + return 0; } -qpid::sys::ConnectionInputHandler* -ConnectionFactory::create(qpid::sys::ConnectionOutputHandler* out, - const std::string& id) -{ - return new MultiVersionConnectionInputHandler(out, broker, id); +sys::ConnectionCodec* +ConnectionFactory::create(sys::OutputControl& out, const std::string& id) { + // FIXME aconway 2008-03-18: + return new PreviewConnectionCodec(out, broker, id); } }} // namespace qpid::broker |
