summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2013-02-15 14:05:52 +0000
committerGordon Sim <gsim@apache.org>2013-02-15 14:05:52 +0000
commit1d4fa18cdb67242f4ff2b3e1d563b6da9b66b78e (patch)
tree4c73595d3f3588ea785108546b320a693c54847d /qpid/cpp/src
parent0326944fa35eb035a001eaa5148eb22a2ccb8fab (diff)
downloadqpid-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/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp8
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();
}