From bb268e3e0a84a2cd0ec306aaa2d651c34b777d65 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Tue, 3 Dec 2013 17:52:49 +0000 Subject: QPID-5383: retain encoding information in queue properties git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1547495 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'qpid/cpp/src') diff --git a/qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp b/qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp index f1d29fe00e..40e970c2f6 100644 --- a/qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp +++ b/qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp @@ -27,6 +27,7 @@ #include "qpid/amqp/Descriptor.h" #include "qpid/amqp/descriptors.h" #include "qpid/amqp_0_10/Codecs.h" +#include "qpid/types/encodings.h" #include "qpid/types/Variant.h" #include "qpid/broker/QueueSettings.h" #include "qpid/log/Statement.h" @@ -305,14 +306,23 @@ void NodeProperties::onTimestampValue(const CharSequence& key, int64_t value, co process(key.str(), value, d); } +namespace { +qpid::types::Variant utf8(const std::string& s) +{ + qpid::types::Variant v(s); + v.setEncoding(qpid::types::encodings::UTF8); + return v; +} +} + void NodeProperties::onStringValue(const CharSequence& key, const CharSequence& value, const Descriptor* d) { - process(key.str(), value.str(), d); + process(key.str(), utf8(value.str()), d); } void NodeProperties::onSymbolValue(const CharSequence& key, const CharSequence& value, const Descriptor* d) { - process(key.str(), value.str(), d); + process(key.str(), utf8(value.str()), d); } QueueSettings NodeProperties::getQueueSettings() -- cgit v1.2.1