summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2013-12-03 17:52:49 +0000
committerGordon Sim <gsim@apache.org>2013-12-03 17:52:49 +0000
commitbb268e3e0a84a2cd0ec306aaa2d651c34b777d65 (patch)
tree1d47fac50e8ddba2f376a1a9b190612fcb3f4121 /qpid/cpp/src
parentf4c03ddf9ebadf89b9208554b873d016893723ba (diff)
downloadqpid-python-bb268e3e0a84a2cd0ec306aaa2d651c34b777d65.tar.gz
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
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/broker/amqp/NodeProperties.cpp14
1 files changed, 12 insertions, 2 deletions
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()