diff options
Diffstat (limited to 'cpp/src/qpid/broker/ExchangeRegistry.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/ExchangeRegistry.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/cpp/src/qpid/broker/ExchangeRegistry.cpp b/cpp/src/qpid/broker/ExchangeRegistry.cpp index edc9a5b63b..ae1afe5abb 100644 --- a/cpp/src/qpid/broker/ExchangeRegistry.cpp +++ b/cpp/src/qpid/broker/ExchangeRegistry.cpp @@ -23,6 +23,7 @@ #include "FanOutExchange.h" #include "HeadersExchange.h" #include "TopicExchange.h" +#include "ManagementExchange.h" using namespace qpid::broker; using namespace qpid::sys; @@ -41,7 +42,7 @@ pair<Exchange::shared_ptr, bool> ExchangeRegistry::declare(const string& name, c RWlock::ScopedWlock locker(lock); ExchangeMap::iterator i = exchanges.find(name); if (i == exchanges.end()) { - Exchange::shared_ptr exchange; + Exchange::shared_ptr exchange; if(type == TopicExchange::typeName){ exchange = Exchange::shared_ptr(new TopicExchange(name, durable, args)); @@ -51,13 +52,15 @@ pair<Exchange::shared_ptr, bool> ExchangeRegistry::declare(const string& name, c exchange = Exchange::shared_ptr(new FanOutExchange(name, durable, args)); }else if (type == HeadersExchange::typeName) { exchange = Exchange::shared_ptr(new HeadersExchange(name, durable, args)); + }else if (type == ManagementExchange::typeName) { + exchange = Exchange::shared_ptr(new ManagementExchange(name, durable, args)); }else{ throw UnknownExchangeTypeException(); } - exchanges[name] = exchange; - return std::pair<Exchange::shared_ptr, bool>(exchange, true); + exchanges[name] = exchange; + return std::pair<Exchange::shared_ptr, bool>(exchange, true); } else { - return std::pair<Exchange::shared_ptr, bool>(i->second, false); + return std::pair<Exchange::shared_ptr, bool>(i->second, false); } } |
