summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2013-09-18 18:01:54 +0000
committerGordon Sim <gsim@apache.org>2013-09-18 18:01:54 +0000
commitbf305262b2b02b54ef455ee6da36263bb0f4b595 (patch)
tree6250a98636e303d34ff57b37e3aed05e71cf734d /qpid/cpp/src
parent3a6fcda9adccaad1910b3b49c183cacdb4cd8988 (diff)
downloadqpid-python-bf305262b2b02b54ef455ee6da36263bb0f4b595.tar.gz
QPID-5141: always set content object on 0-10 path (unless explicitly asked not to)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1524505 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp b/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp
index 27fbe41e34..c356bc298b 100644
--- a/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp
+++ b/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp
@@ -26,6 +26,7 @@
#include "qpid/messaging/Receiver.h"
#include "qpid/messaging/Session.h"
#include "qpid/amqp_0_10/Codecs.h"
+#include "qpid/types/encodings.h"
namespace qpid {
namespace client {
@@ -155,6 +156,10 @@ ReceiverImpl::ReceiverImpl(SessionImpl& p, const std::string& name,
parent(&p), destination(name), address(a), byteCredit(0xFFFFFFFF), autoDecode(autoDecode_),
state(UNRESOLVED), capacity(0), window(0) {}
+namespace {
+const std::string TEXT_PLAIN("text/plain");
+}
+
bool ReceiverImpl::getImpl(qpid::messaging::Message& message, qpid::messaging::Duration timeout)
{
{
@@ -169,6 +174,13 @@ bool ReceiverImpl::getImpl(qpid::messaging::Message& message, qpid::messaging::D
} else if (message.getContentType() == qpid::amqp_0_10::ListCodec::contentType) {
message.getContentObject() = qpid::types::Variant::List();
decode(message, message.getContentObject().asList());
+ } else if (!message.getContentBytes().empty()) {
+ message.getContentObject() = message.getContentBytes();
+ if (message.getContentType() == TEXT_PLAIN) {
+ message.getContentObject().setEncoding(qpid::types::encodings::UTF8);
+ } else {
+ message.getContentObject().setEncoding(qpid::types::encodings::BINARY);
+ }
}
}
return true;