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