summaryrefslogtreecommitdiff
path: root/cpp/src/client/ClientChannel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/client/ClientChannel.cpp')
-rw-r--r--cpp/src/client/ClientChannel.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/cpp/src/client/ClientChannel.cpp b/cpp/src/client/ClientChannel.cpp
index eda872fc30..99eece46bc 100644
--- a/cpp/src/client/ClientChannel.cpp
+++ b/cpp/src/client/ClientChannel.cpp
@@ -26,8 +26,7 @@
#include "MethodBodyInstances.h"
#include "Connection.h"
#include "BasicMessageChannel.h"
-// FIXME aconway 2007-03-21:
-//#include "MessageMessageChannel.h"
+#include "MessageMessageChannel.h"
// FIXME aconway 2007-01-26: Evaluate all throws, ensure consistent
// handling of errors that should close the connection or the channel.
@@ -39,14 +38,15 @@ using namespace qpid::client;
using namespace qpid::framing;
using namespace qpid::sys;
-Channel::Channel(bool _transactional, u_int16_t _prefetch,
- MessageChannel* impl) :
- // FIXME aconway 2007-03-21: MessageMessageChannel
- messaging(impl ? impl : new BasicMessageChannel(*this)),
- connection(0),
- prefetch(_prefetch),
- transactional(_transactional)
-{ }
+Channel::Channel(bool _transactional, u_int16_t _prefetch, InteropMode mode) :
+ connection(0), prefetch(_prefetch), transactional(_transactional)
+{
+ switch (mode) {
+ case AMQP_08: messaging.reset(new BasicMessageChannel(*this)); break;
+ case AMQP_09: messaging.reset(new MessageMessageChannel(*this)); break;
+ default: assert(0); QPID_ERROR(INTERNAL_ERROR, "Invalid interop-mode.");
+ }
+}
Channel::~Channel(){
close();