You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2010/03/26 21:26:17 UTC

svn commit: r928043 - in /qpid/branches/qmf-devel0.7a/qpid/cpp: managementgen/qmfgen/management-types.xml src/qpid/management/ManagementAgent.cpp src/qpid/management/ManagementAgent.h

Author: kgiusti
Date: Fri Mar 26 20:26:17 2010
New Revision: 928043

URL: http://svn.apache.org/viewvc?rev=928043&view=rev
Log:
fix v2 list code gen

Modified:
    qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/management-types.xml
    qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp
    qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.h

Modified: qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/management-types.xml
URL: http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/management-types.xml?rev=928043&r1=928042&r2=928043&view=diff
==============================================================================
--- qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/management-types.xml (original)
+++ qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/management-types.xml Fri Mar 26 20:26:17 2010
@@ -51,9 +51,10 @@ stream="#.getV2Key()" size="16" accessor
  decode="{::qpid::framing::FieldTable _f; _f.decode(@); # = ManagementAgent::toMap(_f);}"
  size="::qpid::framing::FieldTable(ManagementAgent::fromMap(#)).encodedSize()"
 stream="#" accessor="direct" init="::qpid::messaging::VariantMap()" byRef="y" unmap="::qpid::messaging::VariantMap(); assert(false); /*TBD*/"/>
-<!-- not supported in V1
-<type name="list"      base="LIST"      cpp="::qpid::messaging::Variant::List" encode="#.encode(@)" decode="#.decode(@)"  stream="#" size="#.encodedSize()" accessor="direct" init="::qpid::messaging::Variant::List()" byRef="y" unmap="::qpid::messaging::Variant::List(); assert(false); /*TBD*/"/>
--->
+<type name="list"      base="LIST"      cpp="::qpid::messaging::Variant::List" 
+ encode="{::qpid::framing::List _l = ManagementAgent::fromList(#); _l.encode(@);}"
+ decode="{::qpid::framing::List _l; _l.decode(@); # = ManagementAgent::toList(_l);}"
+stream="#" size="#.encodedSize()" accessor="direct" init="::qpid::messaging::Variant::List()" byRef="y" unmap="::qpid::messaging::Variant::List(); assert(false); /*TBD*/"/>
 
 <type name="hilo8"   base="U8"   cpp="uint8_t"  encode="@.putOctet(#)"    decode="# = @.getOctet()"    style="wm" stream="#" size="1" accessor="counter" init="0"/>
 <type name="hilo16"  base="U16"  cpp="uint16_t" encode="@.putShort(#)"    decode="# = @.getShort()"    style="wm" stream="#" size="2" accessor="counter" init="0"/>

Modified: qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp?rev=928043&r1=928042&r2=928043&view=diff
==============================================================================
--- qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp (original)
+++ qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp Fri Mar 26 20:26:17 2010
@@ -34,6 +34,7 @@
 #include "qpid/messaging/Message.h"
 #include "qpid/messaging/ListContent.h"
 #include "qpid/messaging/ListView.h"
+#include "qpid/framing/List.h"
 #include <list>
 #include <iostream>
 #include <fstream>
@@ -2220,18 +2221,18 @@ qpid::messaging::Variant::Map Management
     return map;
 }
 
-// qpid::messaging::Variant::List ManagementAgent::toList(const qpid::framing::Array& from)
-// {
-//     qpid::messaging::Variant::List _list;
+qpid::messaging::Variant::List ManagementAgent::toList(const List& from)
+{
+    qpid::messaging::Variant::List _list;
 
-//     for (qpid::framing::Array::const_iterator iter = from.begin(); iter != from.end(); iter++) {
-//         const qpid::framing::Array::ValuePtr& val(*iter);
+    for (List::const_iterator iter = from.begin(); iter != from.end(); iter++) {
+        const List::ValuePtr& val(*iter);
 
-//         _list.push_back(toVariant(val));
-//     }
+        _list.push_back(toVariant(val));
+    }
 
-//     return _list;
-// }
+    return _list;
+}
 
 qpid::framing::FieldTable ManagementAgent::fromMap(const qpid::messaging::Variant::Map& from)
 {
@@ -2250,20 +2251,20 @@ qpid::framing::FieldTable ManagementAgen
 }
 
 
-// qpid::framing::Array ManagementAgent::fromList(const qpid::messaging::Variant::List& from)
-// {
-//     qpid::framing::Array fa;
-
-//     for (qpid::messaging::Variant::List::const_iterator iter = from.begin();
-//          iter != from.end();
-//          iter++) {
-//         const qpid::messaging::Variant& val(*iter);
+List ManagementAgent::fromList(const qpid::messaging::Variant::List& from)
+{
+    List fa;
 
-//         fa.push_back(toFieldValue(val));
-//     }
+    for (qpid::messaging::Variant::List::const_iterator iter = from.begin();
+         iter != from.end();
+         iter++) {
+        const qpid::messaging::Variant& val(*iter);
 
-//     return fa;
-// }
+        fa.push_back(toFieldValue(val));
+    }
+
+    return fa;
+}
 
 
 boost::shared_ptr<FieldValue> ManagementAgent::toFieldValue(const Variant& in)
@@ -2286,9 +2287,7 @@ boost::shared_ptr<FieldValue> Management
     case messaging::VAR_STRING: return boost::shared_ptr<FieldValue>(new Str16Value(in.asString()));
     case messaging::VAR_UUID:   return boost::shared_ptr<FieldValue>(new UuidValue(in.asUuid().data()));
     case messaging::VAR_MAP:    return boost::shared_ptr<FieldValue>(new FieldTableValue(ManagementAgent::fromMap(in.asMap())));
-    default:
-        break;
-        //case messaging::VAR_LIST:   return boost::shared_ptr<FieldValue>(new ArrayValue(ManagementAgent::fromList(in.asList())));
+    case messaging::VAR_LIST:   return boost::shared_ptr<FieldValue>(new ListValue(ManagementAgent::fromList(in.asList())));
     }
 
     QPID_LOG(error, "Unknown Variant type - not converted: [" << in.getType() << "]");
@@ -2385,10 +2384,9 @@ qpid::messaging::Variant ManagementAgent
         out = ManagementAgent::toMap(in->get<FieldTable>());
         break;
 
-        //case 0xa9: // list of variant types
-        // out = Variant::List();
-        // translate<List>(in, out.asList(), &toVariant);
-        // break;
+    case 0xa9: // list of variant types
+        out = ManagementAgent::toList(in->get<List>());
+        break;
         //case 0xaa: //convert amqp0-10 array (uniform type) into variant list
         // out = Variant::List();
         // translate<Array>(in, out.asList(), &toVariant);

Modified: qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.h
URL: http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.h?rev=928043&r1=928042&r2=928043&view=diff
==============================================================================
--- qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.h (original)
+++ qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.h Fri Mar 26 20:26:17 2010
@@ -136,8 +136,8 @@ public:
     // TODO: remove these when Variant API moved into common library.
     static messaging::Variant::Map toMap(const framing::FieldTable& from);
     static framing::FieldTable fromMap(const messaging::Variant::Map& from);
-    //static messaging::Variant::List toList(const framing::Array& from);
-    //static framing::Array fromList(const messaging::Variant::List& from);
+    static messaging::Variant::List toList(const framing::List& from);
+    static framing::List fromList(const messaging::Variant::List& from);
     static boost::shared_ptr<framing::FieldValue> toFieldValue(const messaging::Variant& in);
     static messaging::Variant toVariant(const boost::shared_ptr<framing::FieldValue>& val);
 



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org