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 | cddf38ce163b61834ca84b7e65fd65582d344e97 (patch) | |
| tree | 605cf38c3a03c648825b609d00911dbae72136d4 /cpp | |
| parent | 738cde0ff1f1d9dc27752a3ba5bf2c8233ec9c9f (diff) | |
| download | qpid-python-cddf38ce163b61834ca84b7e65fd65582d344e97.tar.gz | |
QPID-3833: convert int properties to strings if requested
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1446586 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
| -rw-r--r-- | cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp b/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp index db7a0f02d5..b78b69b2d6 100644 --- a/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp +++ b/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(); } |
