summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp5
-rw-r--r--qpid/cpp/src/qpid/amqp_0_10/Codecs.h1
-rw-r--r--qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp4
3 files changed, 8 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp b/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp
index 930f402f85..49d152cc05 100644
--- a/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp
+++ b/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp
@@ -575,6 +575,11 @@ void translate(const boost::shared_ptr<FieldValue> from, Variant& to)
to = toVariant(from);
}
+boost::shared_ptr<framing::FieldValue> translate(const types::Variant& from)
+{
+ return toFieldValue(from);
+}
+
const std::string ListCodec::contentType("amqp/list");
const std::string MapCodec::contentType("amqp/map");
diff --git a/qpid/cpp/src/qpid/amqp_0_10/Codecs.h b/qpid/cpp/src/qpid/amqp_0_10/Codecs.h
index 408307eb7a..79d76bcc4b 100644
--- a/qpid/cpp/src/qpid/amqp_0_10/Codecs.h
+++ b/qpid/cpp/src/qpid/amqp_0_10/Codecs.h
@@ -80,6 +80,7 @@ QPID_COMMON_EXTERN void translate(const boost::shared_ptr<qpid::framing::FieldVa
qpid::types::Variant& to);
QPID_COMMON_EXTERN void translate(const types::Variant& from,
boost::shared_ptr<qpid::framing::FieldValue> to);
+QPID_COMMON_EXTERN boost::shared_ptr<qpid::framing::FieldValue> translate(const types::Variant& from);
}} // namespace qpid::amqp_0_10
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 0c8434f381..8055b3fe1a 100644
--- a/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp
+++ b/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp
@@ -185,7 +185,7 @@ class SendHeader
copy.castBody<AMQHeaderBody>()->get<MessageProperties>(true);
for (qpid::types::Variant::Map::const_iterator i = annotations.begin();
i != annotations.end(); ++i) {
- props->getApplicationHeaders().setString(i->first, i->second.asString());
+ props->getApplicationHeaders().set(i->first, qpid::amqp_0_10::translate(i->second));
}
}
if (redelivered || ttl || timestamp) {
@@ -402,7 +402,7 @@ boost::intrusive_ptr<PersistableMessage> MessageTransfer::merge(const std::map<s
boost::intrusive_ptr<MessageTransfer> clone(new MessageTransfer(this->frames));
qpid::framing::MessageProperties* mp = clone->frames.getHeaders()->get<qpid::framing::MessageProperties>(true);
for (qpid::types::Variant::Map::const_iterator i = annotations.begin(); i != annotations.end(); ++i) {
- mp->getApplicationHeaders().setString(i->first, i->second);
+ mp->getApplicationHeaders().set(i->first, qpid::amqp_0_10::translate(i->second));
}
return clone;
}