diff options
author | Ted Ross <tross@apache.org> | 2010-02-04 17:25:19 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2010-02-04 17:25:19 +0000 |
commit | 62b6eaea83d81155695d19dc716ad97094e89e54 (patch) | |
tree | 3b21154cf6f10b52e6fff31ffec7cbca689e032a /cpp/managementgen/qmfgen/schema.py | |
parent | 48417321a4e7ac68950e010a2514ce95a9b0aa42 (diff) | |
download | qpid-python-62b6eaea83d81155695d19dc716ad97094e89e54.tar.gz |
Added encode/decode/encodedSize methods for management objects.
Made methods on generated code public.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@906573 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/managementgen/qmfgen/schema.py')
-rwxr-xr-x | cpp/managementgen/qmfgen/schema.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cpp/managementgen/qmfgen/schema.py b/cpp/managementgen/qmfgen/schema.py index 51466c7860..b3d0f751d2 100755 --- a/cpp/managementgen/qmfgen/schema.py +++ b/cpp/managementgen/qmfgen/schema.py @@ -59,6 +59,7 @@ class SchemaType: self.decode = None self.style = "normal" self.stream = "#" + self.size = "1" self.accessor = None self.init = "0" self.perThread = False @@ -89,6 +90,9 @@ class SchemaType: elif key == 'stream': self.stream = val + elif key == 'size': + self.size = val + elif key == 'accessor': self.accessor = val @@ -388,6 +392,15 @@ class SchemaProperty: stream.write (" ft.setString (DESC, \"" + self.desc + "\");\n") stream.write (" buf.put (ft);\n\n") + def genSize (self, stream): + indent = " " + if self.isOptional: + stream.write(" if (presenceMask[presenceByte_%s] & presenceMask_%s) {\n" % (self.name, self.name)) + indent = " " + stream.write("%ssize += %s; // %s\n" % (indent, self.type.type.size.replace("#", self.name), self.name)) + if self.isOptional: + stream.write(" }\n") + def genRead (self, stream): indent = " " if self.isOptional: @@ -1211,6 +1224,10 @@ class SchemaClass: if inst.type.type.perThread: inst.genAssign (stream) + def genSizeProperties (self, stream, variables): + for prop in self.properties: + prop.genSize (stream) + def genReadProperties (self, stream, variables): for prop in self.properties: prop.genRead (stream) |