summaryrefslogtreecommitdiff
path: root/qpid/cpp/broker/src/SessionHandlerImpl.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2006-09-27 19:50:23 +0000
committerAlan Conway <aconway@apache.org>2006-09-27 19:50:23 +0000
commit3d9cd9a1f350c8970c6cd0da20d918b831342636 (patch)
tree18178234a4807121b06f35a78c23dc2a33076da5 /qpid/cpp/broker/src/SessionHandlerImpl.cpp
parentcb3fe168a5c4c0c91b5d32ff28b176d57c8eb870 (diff)
downloadqpid-python-3d9cd9a1f350c8970c6cd0da20d918b831342636.tar.gz
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@450556 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/broker/src/SessionHandlerImpl.cpp')
-rw-r--r--qpid/cpp/broker/src/SessionHandlerImpl.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/qpid/cpp/broker/src/SessionHandlerImpl.cpp b/qpid/cpp/broker/src/SessionHandlerImpl.cpp
index 2ce1c4b298..eb8f37030c 100644
--- a/qpid/cpp/broker/src/SessionHandlerImpl.cpp
+++ b/qpid/cpp/broker/src/SessionHandlerImpl.cpp
@@ -18,6 +18,8 @@
#include <iostream>
#include "SessionHandlerImpl.h"
#include "FanOutExchange.h"
+#include "TopicExchange.h"
+#include "HeadersExchange.h"
#include "assert.h"
using namespace std::tr1;
@@ -223,7 +225,9 @@ void SessionHandlerImpl::ExchangeHandlerImpl::declare(u_int16_t channel, u_int16
if(!passive && (
type != TopicExchange::typeName &&
type != DirectExchange::typeName &&
- type != FanOutExchange::typeName)
+ type != FanOutExchange::typeName &&
+ type != HeadersExchange::typeName
+ )
)
{
throw ChannelException(540, "Exchange type not implemented: " + type);
@@ -237,6 +241,8 @@ void SessionHandlerImpl::ExchangeHandlerImpl::declare(u_int16_t channel, u_int16
parent->exchanges->declare(new DirectExchange(exchange));
}else if(type == FanOutExchange::typeName){
parent->exchanges->declare(new DirectExchange(exchange));
+ }else if (type == HeadersExchange::typeName) {
+ parent->exchanges->declare(new HeadersExchange(exchange));
}
}
parent->exchanges->getLock()->release();