diff options
| author | Gordon Sim <gsim@apache.org> | 2013-09-20 18:35:07 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2013-09-20 18:35:07 +0000 |
| commit | f6c674897d34c1a78e3e9b20301267933cdf7001 (patch) | |
| tree | dce095b517b19c52cc1a74cfa8851a2fc77cbe89 /qpid/cpp/src | |
| parent | db7de0df31df32014f8b41ca9dc7c63c18911d9b (diff) | |
| download | qpid-python-f6c674897d34c1a78e3e9b20301267933cdf7001.tar.gz | |
QPID-5152: handling of exchange properties for create-on-demand with 1.0
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1525091 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp | 5 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/amqp/NodeProperties.h | 1 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/amqp/Session.cpp | 2 |
3 files changed, 8 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp b/qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp index eb30c78128..cc17d6e1a2 100644 --- a/qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp +++ b/qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp @@ -277,4 +277,9 @@ bool NodeProperties::trackControllingLink() const return lifetime == QueueSettings::DELETE_ON_CLOSE || lifetime == QueueSettings::DELETE_IF_EMPTY; } +const qpid::types::Variant::Map& NodeProperties::getProperties() const +{ + return properties; +} + }}} // namespace qpid::broker::amqp diff --git a/qpid/cpp/src/qpid/broker/amqp/NodeProperties.h b/qpid/cpp/src/qpid/broker/amqp/NodeProperties.h index 03780c10a9..8a759062c0 100644 --- a/qpid/cpp/src/qpid/broker/amqp/NodeProperties.h +++ b/qpid/cpp/src/qpid/broker/amqp/NodeProperties.h @@ -61,6 +61,7 @@ class NodeProperties : public qpid::amqp::MapReader std::string getExchangeType() const; std::string getAlternateExchange() const; bool trackControllingLink() const; + const qpid::types::Variant::Map& getProperties() const; private: bool queue; bool durable; diff --git a/qpid/cpp/src/qpid/broker/amqp/Session.cpp b/qpid/cpp/src/qpid/broker/amqp/Session.cpp index c0434afa47..99232d9f66 100644 --- a/qpid/cpp/src/qpid/broker/amqp/Session.cpp +++ b/qpid/cpp/src/qpid/broker/amqp/Session.cpp @@ -44,6 +44,7 @@ #include "qpid/framing/FieldTable.h" #include "qpid/framing/MessageTransferBody.h" #include "qpid/log/Statement.h" +#include "qpid/amqp_0_10/Codecs.h" #include <boost/intrusive_ptr.hpp> #include <boost/format.hpp> #include <map> @@ -215,6 +216,7 @@ Session::ResolvedNode Session::resolve(const std::string name, pn_terminus_t* te node.queue = connection.getBroker().createQueue(name, node.properties.getQueueSettings(), this, node.properties.getAlternateExchange(), connection.getUserId(), connection.getId()).first; } else { qpid::framing::FieldTable args; + qpid::amqp_0_10::translate(node.properties.getProperties(), args); node.exchange = connection.getBroker().createExchange(name, node.properties.getExchangeType(), node.properties.isDurable(), node.properties.getAlternateExchange(), args, connection.getUserId(), connection.getId()).first; } |
