Author: gsim
Date: Wed Oct 16 11:05:06 2013
New Revision: 1532716
URL: http://svn.apache.org/r1532716
Log:
QPID-5239: preserve type of 'annotations' i.e. application properties added by
broker
Modified:
qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp
qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.h
qpid/trunk/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp
Modified: qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp?rev=1532716&r1=1532715&r2=1532716&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp Wed Oct 16 11:05:06 2013
@@ -575,6 +575,11 @@ void translate(const boost::shared_ptr<F
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");
Modified: qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.h
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.h?rev=1532716&r1=1532715&r2=1532716&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.h Wed Oct 16 11:05:06 2013
@@ -80,6 +80,7 @@ QPID_COMMON_EXTERN void translate(const
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
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp?rev=1532716&r1=1532715&r2=1532716&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp_0_10/MessageTransfer.cpp Wed Oct
16 11:05:06 2013
@@ -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>
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;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]