You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2013/09/11 18:05:46 UTC

svn commit: r1521919 - /qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp

Author: gsim
Date: Wed Sep 11 16:05:46 2013
New Revision: 1521919

URL: http://svn.apache.org/r1521919
Log:
QPID-5130: map type to exchange-type when translating old x-declare clause into node properties

Modified:
    qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp?rev=1521919&r1=1521918&r2=1521919&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp Wed Sep 11 16:05:46 2013
@@ -96,6 +96,7 @@ const std::string X_DECLARE("x-declare")
 const std::string X_BINDINGS("x-bindings");
 const std::string X_SUBSCRIBE("x-subscribe");
 const std::string ARGUMENTS("arguments");
+const std::string EXCHANGE_TYPE("exchange-type");
 
 const std::vector<std::string> RECEIVER_MODES = boost::assign::list_of<std::string>(ALWAYS) (RECEIVER);
 const std::vector<std::string> SENDER_MODES = boost::assign::list_of<std::string>(ALWAYS) (SENDER);
@@ -225,6 +226,18 @@ void flatten(Variant::Map& base, const s
         base.erase(i);
     }
 }
+bool replace(Variant::Map& map, const std::string& original, const std::string& desired)
+{
+    Variant::Map::iterator i = map.find(original);
+    if (i != map.end()) {
+        map[desired] = i->second;
+        map.erase(original);
+        return true;
+    } else {
+        return false;
+    }
+}
+
 void write(pn_data_t* data, const Variant& value);
 
 void write(pn_data_t* data, const Variant::Map& map)
@@ -331,6 +344,7 @@ AddressHelper::AddressHelper(const Addre
     Variant::Map::iterator i = node.find(X_DECLARE);
     if (i != node.end()) {
         Variant::Map x_declare = i->second.asMap();
+        replace(x_declare, TYPE, EXCHANGE_TYPE);
         flatten(x_declare, ARGUMENTS);
         add(properties, x_declare);
         node.erase(i);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org