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]

Reply via email to