diff options
| author | Gordon Sim <gsim@apache.org> | 2013-02-15 14:05:52 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2013-02-15 14:05:52 +0000 |
| commit | 1d4fa18cdb67242f4ff2b3e1d563b6da9b66b78e (patch) | |
| tree | 4c73595d3f3588ea785108546b320a693c54847d /qpid | |
| parent | 0326944fa35eb035a001eaa5148eb22a2ccb8fab (diff) | |
| download | qpid-python-1d4fa18cdb67242f4ff2b3e1d563b6da9b66b78e.tar.gz | |
QPID-3833: convert int properties to strings if requested
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1446586 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid')
| -rw-r--r-- | qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp b/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp index db7a0f02d5..b78b69b2d6 100644 --- a/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp +++ b/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp @@ -29,6 +29,7 @@ #include "qpid/framing/TypeFilter.h" #include "qpid/framing/SendContent.h" #include "qpid/log/Statement.h" +#include "boost/lexical_cast.hpp" using namespace qpid::framing; @@ -51,7 +52,12 @@ std::string MessageTransfer::getAnnotationAsString(const std::string& key) const { const qpid::framing::MessageProperties* mp = getProperties<qpid::framing::MessageProperties>(); if (mp && mp->hasApplicationHeaders()) { - return mp->getApplicationHeaders().getAsString(key); + FieldTable::ValuePtr value = mp->getApplicationHeaders().get(key); + if (value) { + if (value->convertsTo<std::string>()) return value->get<std::string>(); + else if (value->convertsTo<int>()) return boost::lexical_cast<std::string>(value->get<int>()); + } + return std::string(); } else { return std::string(); } |
