From 786c13d1833f626bf47262dd16ea48c81ac3887f Mon Sep 17 00:00:00 2001 From: "Carl C. Trieloff" Date: Wed, 20 Dec 2006 22:29:38 +0000 Subject: Support for multi version, merge part 1. - can still refactor out dup use of version object in client and server opperations. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@489212 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/lib/client/ClientChannel.h | 2 +- cpp/lib/client/Connection.cpp | 8 +++----- cpp/lib/client/Connection.h | 6 +++++- 3 files changed, 9 insertions(+), 7 deletions(-) (limited to 'cpp/lib/client') diff --git a/cpp/lib/client/ClientChannel.h b/cpp/lib/client/ClientChannel.h index 27509a10d9..066f837430 100644 --- a/cpp/lib/client/ClientChannel.h +++ b/cpp/lib/client/ClientChannel.h @@ -92,7 +92,7 @@ namespace client { u_int16_t prefetch; const bool transactional; - qpid::framing::ProtocolVersion version; + qpid::framing::ProtocolVersion version; void enqueue(); void retrieve(Message& msg); diff --git a/cpp/lib/client/Connection.cpp b/cpp/lib/client/Connection.cpp index 9c81192573..78aeafb37b 100644 --- a/cpp/lib/client/Connection.cpp +++ b/cpp/lib/client/Connection.cpp @@ -32,10 +32,8 @@ using namespace qpid::sys; u_int16_t Connection::channelIdCounter; -Connection::Connection(bool debug, u_int32_t _max_frame_size) : max_frame_size(_max_frame_size), closed(true), -// AMQP version management change - kpvdr 2006-11-20 -// TODO: Make this class version-aware and link these hard-wired numbers to that version - version(8, 0) +Connection::Connection( bool debug, u_int32_t _max_frame_size, qpid::framing::ProtocolVersion* _version) : max_frame_size(_max_frame_size), closed(true), + version(_version->getMajor(),_version->getMinor()) { connector = new Connector(debug, _max_frame_size); } @@ -53,7 +51,7 @@ void Connection::open(const std::string& _host, int _port, const std::string& ui out = connector->getOutputHandler(); connector->connect(host, port); - ProtocolInitiation* header = new ProtocolInitiation(8, 0); + ProtocolInitiation* header = new ProtocolInitiation(version); responses.expect(); connector->init(header); responses.receive(method_bodies.connection_start); diff --git a/cpp/lib/client/Connection.h b/cpp/lib/client/Connection.h index 7d3f1a1446..3de9b6bf31 100644 --- a/cpp/lib/client/Connection.h +++ b/cpp/lib/client/Connection.h @@ -38,6 +38,7 @@ #include namespace qpid { + /** * The client namespace contains all classes that make up a client * implementation of the AMQP protocol. The key classes that form @@ -93,6 +94,8 @@ namespace client { * Creates a connection object, but does not open the * connection. * + * @param _version the version of the protocol to connect with + * * @param debug turns on tracing for the connection * (i.e. prints details of the frames sent and received to std * out). Optional and defaults to false. @@ -100,7 +103,8 @@ namespace client { * @param max_frame_size the maximum frame size that the * client will accept. Optional and defaults to 65536. */ - Connection(bool debug = false, u_int32_t max_frame_size = 65536); + Connection( bool debug = false, u_int32_t max_frame_size = 65536, + qpid::framing::ProtocolVersion* _version = &(qpid::framing::highestVersion)); ~Connection(); /** -- cgit v1.2.1