From 7a0d795940c5c68383b0224740f085e8e6b4e60b Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Fri, 9 Apr 2010 03:53:30 +0000 Subject: QPID-2489 - Remove references to boost:: and qpid::framing:: from QMF-generated cpp files Added a wrapper class for framing::Buffer in the qpid::management namespace. This wrapper class has no reference to framing or boost and is now used in the generated C++ code to encode QMFv1 content. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@932236 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/managementgen/qmfgen/management-types.xml | 29 +++++++------ cpp/managementgen/qmfgen/schema.py | 62 +++++++++++++-------------- cpp/managementgen/qmfgen/templates/Args.h | 2 - cpp/managementgen/qmfgen/templates/Class.cpp | 17 ++++---- cpp/managementgen/qmfgen/templates/Event.cpp | 11 ++--- 5 files changed, 62 insertions(+), 59 deletions(-) (limited to 'cpp/managementgen') diff --git a/cpp/managementgen/qmfgen/management-types.xml b/cpp/managementgen/qmfgen/management-types.xml index 857f8af212..61c91fed2d 100644 --- a/cpp/managementgen/qmfgen/management-types.xml +++ b/cpp/managementgen/qmfgen/management-types.xml @@ -24,9 +24,9 @@ --> + encode="{std::string _s; #.encode(_s); @.putRawData(_s);}" + decode="{std::string _s; @.getRawData(_s, #.encodedSize()); #.decode(_s);}" + stream="#.getV2Key()" size="16" accessor="direct" init="::qpid::management::ObjectId()" byRef="y"/> @@ -43,18 +43,21 @@ stream="#.getV2Key()" size="16" accessor="direct" init="::qpid::management::Obje + encode="@.putRawData(#.data(), 16)" + decode="{ unsigned char d[16]; @.getRawData(d, 16); # = ::qpid::types::Uuid(d); }" + stream="#" size="16" accessor="direct" init="::qpid::types::Uuid()" byRef="y" + unmap="(#).asUuid().data()" + map="::qpid::types::Uuid((#).data())" /> + encode="@.putMap(#)" + decode="@.getMap(#)" + size="::qpid::amqp_0_10::MapCodec::encodedSize(#)" + stream="#" accessor="direct" init="::qpid::types::Variant::Map()" byRef="y" unmap="::qpid::types::Variant::Map(); assert(false); /*TBD*/"/> + encode="@.putList(#)" + decode="@.getList(#)" + size="::qpid::amqp_0_10::ListCodec::encodedSize(#)" + stream="#" accessor="direct" init="::qpid::types::Variant::List()" byRef="y" unmap="::qpid::types::Variant::List(); assert(false); /*TBD*/"/> diff --git a/cpp/managementgen/qmfgen/schema.py b/cpp/managementgen/qmfgen/schema.py index c1bb507d84..1206b0082d 100755 --- a/cpp/managementgen/qmfgen/schema.py +++ b/cpp/managementgen/qmfgen/schema.py @@ -425,22 +425,22 @@ class SchemaProperty: def genSchema (self, stream): stream.write (" ft.clear();\n") - stream.write (" ft.setString (NAME, \"" + self.name + "\");\n") - stream.write (" ft.setInt (TYPE, TYPE_" + self.type.type.base +");\n") - stream.write (" ft.setInt (ACCESS, ACCESS_" + self.access + ");\n") - stream.write (" ft.setInt (IS_INDEX, " + str (self.isIndex) + ");\n") - stream.write (" ft.setInt (IS_OPTIONAL, " + str (self.isOptional) + ");\n") + stream.write (" ft[NAME] = \"" + self.name + "\";\n") + stream.write (" ft[TYPE] = TYPE_" + self.type.type.base +";\n") + stream.write (" ft[ACCESS] = ACCESS_" + self.access + ";\n") + stream.write (" ft[IS_INDEX] = " + str (self.isIndex) + ";\n") + stream.write (" ft[IS_OPTIONAL] = " + str (self.isOptional) + ";\n") if self.unit != None: - stream.write (" ft.setString (UNIT, \"" + self.unit + "\");\n") + stream.write (" ft[UNIT] = \"" + self.unit + "\";\n") if self.min != None: - stream.write (" ft.setInt (MIN, " + self.min + ");\n") + stream.write (" ft[MIN] = " + self.min + ";\n") if self.max != None: - stream.write (" ft.setInt (MAX, " + self.max + ");\n") + stream.write (" ft[MAX] = " + self.max + ";\n") if self.maxLen != None: - stream.write (" ft.setInt (MAXLEN, " + self.maxLen + ");\n") + stream.write (" ft[MAXLEN] = " + self.maxLen + ";\n") if self.desc != None: - stream.write (" ft.setString (DESC, \"" + self.desc + "\");\n") - stream.write (" buf.put (ft);\n\n") + stream.write (" ft[DESC] = \"" + self.desc + "\";\n") + stream.write (" buf.putMap(ft);\n\n") def genSchemaMap(self, stream): @@ -594,13 +594,13 @@ class SchemaStatistic: def genSchemaText (self, stream, name, desc): stream.write (" ft.clear();\n") - stream.write (" ft.setString (NAME, \"" + name + "\");\n") - stream.write (" ft.setInt (TYPE, TYPE_" + self.type.type.base +");\n") + stream.write (" ft[NAME] = \"" + name + "\";\n") + stream.write (" ft[TYPE] = TYPE_" + self.type.type.base +";\n") if self.unit != None: - stream.write (" ft.setString (UNIT, \"" + self.unit + "\");\n") + stream.write (" ft[UNIT] = \"" + self.unit + "\";\n") if desc != None: - stream.write (" ft.setString (DESC, \"" + desc + "\");\n") - stream.write (" buf.put (ft);\n\n") + stream.write (" ft[DESC] = \"" + desc + "\";\n") + stream.write (" buf.putMap(ft);\n\n") def genSchemaTextMap(self, stream, name, desc): stream.write (" {\n") @@ -782,24 +782,24 @@ class SchemaArg: def genSchema (self, stream, event=False): stream.write (" ft.clear();\n") - stream.write (" ft.setString (NAME, \"" + self.name + "\");\n") - stream.write (" ft.setInt (TYPE, TYPE_" + self.type.type.base +");\n") + stream.write (" ft[NAME] = \"" + self.name + "\";\n") + stream.write (" ft[TYPE] = TYPE_" + self.type.type.base +";\n") if (not event): - stream.write (" ft.setString (DIR, \"" + self.dir + "\");\n") + stream.write (" ft[DIR] = \"" + self.dir + "\";\n") if self.unit != None: - stream.write (" ft.setString (UNIT, \"" + self.unit + "\");\n") + stream.write (" ft[UNIT] = \"" + self.unit + "\";\n") if not event: if self.min != None: - stream.write (" ft.setInt (MIN, " + self.min + ");\n") + stream.write (" ft[MIN] = " + self.min + ";\n") if self.max != None: - stream.write (" ft.setInt (MAX, " + self.max + ");\n") + stream.write (" ft[MAX] = " + self.max + ";\n") if self.maxLen != None: - stream.write (" ft.setInt (MAXLEN, " + self.maxLen + ");\n") + stream.write (" ft[MAXLEN] = " + self.maxLen + ";\n") if self.default != None: - stream.write (" ft.setString (DEFAULT, \"" + self.default + "\");\n") + stream.write (" ft[DEFAULT] = \"" + self.default + "\";\n") if self.desc != None: - stream.write (" ft.setString (DESC, \"" + self.desc + "\");\n") - stream.write (" buf.put (ft);\n\n") + stream.write (" ft[DESC] = \"" + self.desc + "\";\n") + stream.write (" buf.putMap(ft);\n\n") def genSchemaMap (self, stream, event=False): stream.write (" {\n") @@ -896,11 +896,11 @@ class SchemaMethod: def genSchema (self, stream, variables): stream.write (" ft.clear();\n") - stream.write (" ft.setString (NAME, \"" + self.name + "\");\n") - stream.write (" ft.setInt (ARGCOUNT, " + str (len (self.args)) + ");\n") + stream.write (" ft[NAME] = \"" + self.name + "\";\n") + stream.write (" ft[ARGCOUNT] = " + str (len (self.args)) + ";\n") if self.desc != None: - stream.write (" ft.setString (DESC, \"" + self.desc + "\");\n") - stream.write (" buf.put (ft);\n\n") + stream.write (" ft[DESC] = \"" + self.desc + "\";\n") + stream.write (" buf.putMap(ft);\n\n") for arg in self.args: arg.genSchema (stream) @@ -1349,7 +1349,7 @@ class SchemaClass: stream.write("\n") stream.write(" char *_tmpBuf = new char[inStr.length()];\n") stream.write(" memcpy(_tmpBuf, inStr.data(), inStr.length());\n") - stream.write(" ::qpid::framing::Buffer inBuf(_tmpBuf, inStr.length());\n") + stream.write(" ::qpid::management::Buffer inBuf(_tmpBuf, inStr.length());\n") for method in self.methods: stream.write ("\n if (methodName == \"" + method.getName () + "\") {\n") diff --git a/cpp/managementgen/qmfgen/templates/Args.h b/cpp/managementgen/qmfgen/templates/Args.h index 20681ab477..89a5bec9b9 100644 --- a/cpp/managementgen/qmfgen/templates/Args.h +++ b/cpp/managementgen/qmfgen/templates/Args.h @@ -24,8 +24,6 @@ /*MGEN:Root.Disclaimer*/ #include "qpid/management/Args.h" -//#include "qpid/framing/FieldTable.h" -//#include "qpid/framing/Uuid.h" #include namespace qmf { diff --git a/cpp/managementgen/qmfgen/templates/Class.cpp b/cpp/managementgen/qmfgen/templates/Class.cpp index ed4e17720f..9a9af07b28 100644 --- a/cpp/managementgen/qmfgen/templates/Class.cpp +++ b/cpp/managementgen/qmfgen/templates/Class.cpp @@ -22,8 +22,9 @@ #include "qpid/log/Statement.h" #include "qpid/management/Manageable.h" -#include "qpid/framing/FieldTable.h" -#include "qpid/framing/Buffer.h" +#include "qpid/management/Buffer.h" +#include "qpid/types/Variant.h" +#include "qpid/amqp_0_10/Codecs.h" #include "qpid//*MGEN:Class.AgentHeaderLocation*//ManagementAgent.h" #include "/*MGEN:Class.NameCap*/.h" /*MGEN:Class.MethodArgIncludes*/ @@ -94,8 +95,8 @@ void /*MGEN:Class.NameCap*/::writeSchema (std::string& schema) { const int _bufSize=65536; char _msgChars[_bufSize]; - ::qpid::framing::Buffer buf(_msgChars, _bufSize); - ::qpid::framing::FieldTable ft; + ::qpid::management::Buffer buf(_msgChars, _bufSize); + ::qpid::types::Variant::Map ft; // Schema class header: buf.putOctet (CLASS_KIND_TABLE); @@ -147,7 +148,7 @@ void /*MGEN:Class.NameCap*/::readProperties (const std::string& _sBuf) { char *_tmpBuf = new char[_sBuf.length()]; memcpy(_tmpBuf, _sBuf.data(), _sBuf.length()); - ::qpid::framing::Buffer buf(_tmpBuf, _sBuf.length()); + ::qpid::management::Buffer buf(_tmpBuf, _sBuf.length()); ::qpid::sys::Mutex::ScopedLock mutex(accessLock); { @@ -169,7 +170,7 @@ void /*MGEN:Class.NameCap*/::writeProperties (std::string& _sBuf) const { const int _bufSize=65536; char _msgChars[_bufSize]; - ::qpid::framing::Buffer buf(_msgChars, _bufSize); + ::qpid::management::Buffer buf(_msgChars, _bufSize); ::qpid::sys::Mutex::ScopedLock mutex(accessLock); configChanged = false; @@ -197,7 +198,7 @@ void /*MGEN:Class.NameCap*/::writeStatistics (std::string& _sBuf, bool skipHeade { const int _bufSize=65536; char _msgChars[_bufSize]; - ::qpid::framing::Buffer buf(_msgChars, _bufSize); + ::qpid::management::Buffer buf(_msgChars, _bufSize); ::qpid::sys::Mutex::ScopedLock mutex(accessLock); instChanged = false; @@ -248,7 +249,7 @@ void /*MGEN:Class.NameCap*/::doMethod (/*MGEN:Class.DoMethodArgs*/) const int _bufSize=65536; char _msgChars[_bufSize]; - ::qpid::framing::Buffer outBuf(_msgChars, _bufSize); + ::qpid::management::Buffer outBuf(_msgChars, _bufSize); /*MGEN:Class.MethodHandlers*/ diff --git a/cpp/managementgen/qmfgen/templates/Event.cpp b/cpp/managementgen/qmfgen/templates/Event.cpp index d760fd9014..94de331611 100644 --- a/cpp/managementgen/qmfgen/templates/Event.cpp +++ b/cpp/managementgen/qmfgen/templates/Event.cpp @@ -22,8 +22,9 @@ #include "qpid/log/Statement.h" #include "qpid/management/Manageable.h" -#include "qpid/framing/FieldTable.h" -#include "qpid/framing/Buffer.h" +#include "qpid/management/Buffer.h" +#include "qpid/types/Variant.h" +#include "qpid/amqp_0_10/Codecs.h" #include "qpid//*MGEN:Event.AgentHeaderLocation*//ManagementAgent.h" #include "Event/*MGEN:Event.NameCap*/.h" @@ -60,8 +61,8 @@ void Event/*MGEN:Event.NameCap*/::writeSchema (std::string& schema) { const int _bufSize = 65536; char _msgChars[_bufSize]; - ::qpid::framing::Buffer buf(_msgChars, _bufSize); - ::qpid::framing::FieldTable ft; + ::qpid::management::Buffer buf(_msgChars, _bufSize); + ::qpid::types::Variant::Map ft; // Schema class header: buf.putOctet (CLASS_KIND_EVENT); @@ -83,7 +84,7 @@ void Event/*MGEN:Event.NameCap*/::encode(std::string& _sBuf) const { const int _bufSize=65536; char _msgChars[_bufSize]; - ::qpid::framing::Buffer buf(_msgChars, _bufSize); + ::qpid::management::Buffer buf(_msgChars, _bufSize); /*MGEN:Event.ArgEncodes*/ -- cgit v1.2.1