diff options
| author | Aidan Skinner <aidan@apache.org> | 2009-12-03 22:13:22 +0000 |
|---|---|---|
| committer | Aidan Skinner <aidan@apache.org> | 2009-12-03 22:13:22 +0000 |
| commit | 9bdc4125895b38815689e8920ea94687027caf7e (patch) | |
| tree | acf28a33b6a03328c8aa784cc0a890238e6aeed2 | |
| parent | e1c972fcabcdb5492f9a7eda1327d5584a101dc6 (diff) | |
| download | qpid-python-9bdc4125895b38815689e8920ea94687027caf7e.tar.gz | |
QPID-1987: make code generation match .Net conventions.
Patch from julien.lavigne
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@886946 13f79535-47bb-0310-9956-ffa450edef68
| -rw-r--r-- | qpid/dotnet/client-010/gentool/Composite.tpl | 61 | ||||
| -rw-r--r-- | qpid/dotnet/client-010/gentool/Enum.tpl | 2 | ||||
| -rw-r--r-- | qpid/dotnet/client-010/gentool/Invoker.tpl | 14 | ||||
| -rw-r--r-- | qpid/dotnet/client-010/gentool/MethodDelegate.tpl | 2 | ||||
| -rw-r--r-- | qpid/dotnet/client-010/gentool/build.xml | 2 | ||||
| -rw-r--r-- | qpid/dotnet/client-010/gentool/codegen | 1 | ||||
| -rw-r--r-- | qpid/dotnet/client-010/gentool/dotnetgenutil.py | 44 |
7 files changed, 61 insertions, 65 deletions
diff --git a/qpid/dotnet/client-010/gentool/Composite.tpl b/qpid/dotnet/client-010/gentool/Composite.tpl index 8f16d20189..c5a1099ef3 100644 --- a/qpid/dotnet/client-010/gentool/Composite.tpl +++ b/qpid/dotnet/client-010/gentool/Composite.tpl @@ -74,19 +74,19 @@ public sealed class $name : $base { public const int TYPE = $typecode; - public override int getStructType() { + public override int GetStructType() { return TYPE; } - public override int getSizeWidth() { + public override int GetSizeWidth() { return $size; } - public override int getPackWidth() { + public override int GetPackWidth() { return $pack; } - public $override bool hasPayload() { + public $override bool HasPayload() { return $payload; } @@ -131,8 +131,8 @@ if segments: if options or base == "Method": out(""" - for (int i=0; i < _options.Length; i++) { - switch (_options[i]) { + for (int i=0; i < options.Length; i++) { + switch (options[i]) { """) for f in options: @@ -143,26 +143,26 @@ if options or base == "Method": case Option.BATCH: Batch = true; break; """) out(""" case Option.NONE: break; - default: throw new Exception("invalid option: " + _options[i]); + default: throw new Exception("invalid option: " + options[i]); } } """) } } - public $override void dispatch<C>(C context, MethodDelegate<C> mdelegate) { - mdelegate.$(dromedary(name))(context, this); + public $override void Dispatch<C>(C context, MethodDelegate<C> mdelegate) { + mdelegate.$(name)(context, this); } ${ for f in fields: if pack > 0: out(""" - public bool $(f.has)() { + public bool $(f.has)() { return (packing_flags & $(f.flag_mask(pack))) != 0; } - public $name $(f.clear)() { + public $name $(f.clear)() { packing_flags = (byte) (packing_flags & ~$(f.flag_mask(pack))); ${ if (not f.empty and not (f.default == "null")): @@ -174,7 +174,7 @@ if (not f.empty and not (f.default == "null")): """) out(""" - public $(f.type) $(f.get)() { + public $(f.type) $(f.get)() { ${ if f.empty: out(" return $(f.has)();") @@ -183,7 +183,7 @@ else: } } - public $name $(f.set)($(f.type) value) { + public $name $(f.set)($(f.type) value) { ${ if not f.empty: out(" _$(f.name) = value;") @@ -196,9 +196,6 @@ if pack > 0: return this; } - public $name $(f.name)($(f.type) value) { - return $(f.set)(value); - } """) } @@ -209,18 +206,18 @@ if segments: set { _header = value;} } - public $name header(Header header) { + public $name SetHeader(Header header) { Header = header; return this; } - public override MemoryStream Body + public override MemoryStream Body { get{ return _body;} set{ _body = value;} } - public $name body(MemoryStream body) + public $name SetBody(MemoryStream body) { Body = body; return this; @@ -228,11 +225,11 @@ if segments: """) } - public override void write(Encoder enc) + public override void Write(IEncoder enc) { ${ if pack > 0: - out(" enc.writeUint%s(packing_flags);\n" % (pack*8)); + out(" enc.WriteUint%s(packing_flags);\n" % (pack*8)); for f in fields: if f.empty: @@ -246,15 +243,15 @@ for f in fields: elif f.type_node.name == "domain": post = "" pre = "(short)" - out(" enc.write$(f.coder)($(pre)_$(f.name)$(post));\n") + out(" enc.Write$(f.coder)($(pre)_$(f.name)$(post));\n") } } - public override void read(Decoder dec) + public override void Read(IDecoder dec) { ${ if pack > 0: - out(" packing_flags = ($(PACK_TYPES[pack])) dec.readUint%s();\n" % (pack*8)); + out(" packing_flags = ($(PACK_TYPES[pack])) dec.ReadUint%s();\n" % (pack*8)); for f in fields: if f.empty: @@ -268,25 +265,25 @@ for f in fields: pre = "(%s)" % cname(f.type_node) arg = "%s.TYPE" % cname(f.type_node) elif f.type_node.name == "domain": - pre = "%sGetter.get(" % cname(f.type_node) + pre = "%sGetter.Get(" % cname(f.type_node) post = ")" - out(" _$(f.name) = $(pre)dec.read$(f.coder)($(arg))$(post);\n") + out(" _$(f.name) = $(pre)dec.Read$(f.coder)($(arg))$(post);\n") } } public override Dictionary<String,Object> Fields { - get{ - Dictionary<String,Object> result = new Dictionary<String,Object>(); + get + { + Dictionary<String,Object> result = new Dictionary<String,Object>(); ${ for f in fields: if pack > 0: - out(" if ((packing_flags & $(f.flag_mask(pack))) != 0)\n ") - out(' result.Add("_$(f.name)", $(f.get)());\n') + out(" if ((packing_flags & $(f.flag_mask(pack))) != 0)\n ") + out(' result.Add("_$(f.name)", $(f.get)());\n') } - - return result; + return result; } } diff --git a/qpid/dotnet/client-010/gentool/Enum.tpl b/qpid/dotnet/client-010/gentool/Enum.tpl index b3b6d93f8a..33af038cc6 100644 --- a/qpid/dotnet/client-010/gentool/Enum.tpl +++ b/qpid/dotnet/client-010/gentool/Enum.tpl @@ -21,7 +21,7 @@ out(" public struct $name") out("Getter") } { - public static $name get($vtype value) + public static $name Get($vtype value) { switch (value) { diff --git a/qpid/dotnet/client-010/gentool/Invoker.tpl b/qpid/dotnet/client-010/gentool/Invoker.tpl index ca9abacc24..2f69aee66d 100644 --- a/qpid/dotnet/client-010/gentool/Invoker.tpl +++ b/qpid/dotnet/client-010/gentool/Invoker.tpl @@ -27,10 +27,10 @@ using common.org.apache.qpid.transport.util; namespace org.apache.qpid.transport { -public abstract class Invoker { +public abstract class Invoker : IInvoker { - protected abstract void invoke(Method method); - public abstract Future invoke(Method method, Future resultClass); + protected abstract void Invoke(Method method); + public abstract IFuture Invoke(Method method, IFuture resultClass); ${ from dotnetgenutil import * @@ -46,18 +46,18 @@ for c in composites: rname = cname(result["struct"]) else: rname = cname(result, "@type") - jresult = "Future" + jresult = "IFuture" jreturn = "return " jclass = ", new ResultFuture()" - jinvoke = "invoke" + jinvoke = "Invoke" else: - jinvoke = "invoke" + jinvoke = "Invoke" jresult = "void" jreturn = "" jclass = "" out(""" - public $jresult $(dromedary(name))($(", ".join(params))) { + public $jresult $(name)($(", ".join(params))) { $(jreturn)$jinvoke(new $name($(", ".join(args)))$jclass); } """) diff --git a/qpid/dotnet/client-010/gentool/MethodDelegate.tpl b/qpid/dotnet/client-010/gentool/MethodDelegate.tpl index 49891e2b08..788d2e29e6 100644 --- a/qpid/dotnet/client-010/gentool/MethodDelegate.tpl +++ b/qpid/dotnet/client-010/gentool/MethodDelegate.tpl @@ -29,7 +29,7 @@ from genutil import * for c in composites: name = cname(c) - out(" public virtual void $(dromedary(name))(C context, $name mystruct) {}\n") + out(" public virtual void $(name)(C context, $name mystruct) {}\n") } } } diff --git a/qpid/dotnet/client-010/gentool/build.xml b/qpid/dotnet/client-010/gentool/build.xml index 26fa65545c..76ddb1571d 100644 --- a/qpid/dotnet/client-010/gentool/build.xml +++ b/qpid/dotnet/client-010/gentool/build.xml @@ -43,7 +43,7 @@ <arg value="${xml.spec.dir}/amqp.0-10-qpid-errata.xml"/> <arg value="${basedir}"/> <classpath> - <pathelement location="${java.basedir}/../lib/jython-2.2-rc2.jar"/> + <pathelement location="../../../java/lib/jython-2.5.0.jar"/> </classpath> </java> <touch file="${jython.timestamp}" /> diff --git a/qpid/dotnet/client-010/gentool/codegen b/qpid/dotnet/client-010/gentool/codegen index 8a3a6de7ee..baebf378fd 100644 --- a/qpid/dotnet/client-010/gentool/codegen +++ b/qpid/dotnet/client-010/gentool/codegen @@ -72,6 +72,7 @@ for c in composites: execute("MethodDelegate.cs", "MethodDelegate.tpl", composites = composites) execute("Option.cs", "Option.tpl", composites = composites) execute("Invoker.cs", "Invoker.tpl", composites = controls + commands) +execute("IInvoker.cs", "IInvoker.tpl", composites = controls + commands) execute("StructFactory.cs", "StructFactory.tpl", composites = composites) def is_enum(nd): diff --git a/qpid/dotnet/client-010/gentool/dotnetgenutil.py b/qpid/dotnet/client-010/gentool/dotnetgenutil.py index a071ad3bde..4d9c8a69d7 100644 --- a/qpid/dotnet/client-010/gentool/dotnetgenutil.py +++ b/qpid/dotnet/client-010/gentool/dotnetgenutil.py @@ -20,14 +20,12 @@ # -def camel(offset, *args): +def pascal(offset, *args): parts = [] for a in args: parts.extend(a.split("-")) - return "".join(parts[:offset] + [p[0].upper() + p[1:] for p in parts[offset:]]) + return "".join([p[0].upper() + p[1:] for p in parts[:offset]] + [p[0].upper() + p[1:] for p in parts[offset:]]) -def dromedary(s): - return s[0].lower() + s[1:] def scream(*args): return "_".join([a.replace("-", "_").upper() for a in args]) @@ -132,11 +130,11 @@ def cname(nd, field="@name"): if (nd.name in ("struct", "result") and cls["@name"] != "session" and nd[field] != "header"): - return camel(0, nd[field]) + return pascal(0, nd[field]) else: - return camel(0, cls["@name"], nd[field]) + return pascal(0, cls["@name"], nd[field]) else: - return camel(0, nd[field]) + return pascal(0, nd[field]) def jtype(nd): if nd.name == "struct" or nd["enum"]: @@ -178,7 +176,7 @@ class Field: def __init__(self, index, nd): self.index = index - self.name = camel(1, nd["@name"]) + self.name = pascal(1, nd["@name"]) self.type_node = resolve_type(nd) if self.type_node.name == "domain": self.prim_type = resolve_type(self.type_node) @@ -189,23 +187,23 @@ class Field: self.empty = self.variable_width == 0 and self.fixed_width == 0 and self.prim_type.name != "struct" tname = cname(self.type_node) if self.type_node.name == "struct": - self.read = "(%s) dec.readStruct(%s.TYPE)" % (tname, tname) - self.write = "enc.writeStruct(%s.TYPE, check(struct).%s)" % (tname, self.name) + self.read = "(%s) dec.ReadStruct(%s.TYPE)" % (tname, tname) + self.write = "enc.WriteStruct(%s.TYPE, check(struct).%s)" % (tname, self.name) self.coder = "Struct" elif self.type_node.name == "domain": - self.coder = camel(0, self.prim_type["@name"]) - self.read = "%s.get(dec.read%s())" % (tname, self.coder) - self.write = "enc.write%s(check(struct).%s.getValue())" % (self.coder, self.name) + self.coder = pascal(0, self.prim_type["@name"]) + self.read = "%s.Get(dec.Read%s())" % (tname, self.coder) + self.write = "enc.Write%s(check(struct).%s.GetValue())" % (self.coder, self.name) else: - self.coder = camel(0, self.type_node["@name"]) - self.read = "dec.read%s()" % self.coder - self.write = "enc.write%s(check(struct).%s)" % (self.coder, self.name) + self.coder = pascal(0, self.type_node["@name"]) + self.read = "dec.Read%s()" % self.coder + self.write = "enc.Write%s(check(struct).%s)" % (self.coder, self.name) self.type = jtype(self.type_node) self.default = DEFAULTS.get(self.type, "null") - self.has = camel(1, "has", self.name) - self.get = camel(1, "get", self.name) - self.set = camel(1, "set", self.name) - self.clear = camel(1, "clear", self.name) + self.has = pascal(1, "Has", self.name) + self.get = pascal(1, "Get", self.name) + self.set = pascal(1, "Set", self.name) + self.clear = pascal(1, "clear", self.name) if self.type == "bool": self.option = scream(nd["@name"]) else: @@ -236,7 +234,7 @@ def get_parameters(type, fields): params.append("Header header") params.append("MemoryStream body") if options or type.name in ("control", "command"): - params.append("Option ... _options") + params.append("Option ... options") return params def get_arguments(type, fields): @@ -251,7 +249,7 @@ def get_arguments(type, fields): args.append("header") args.append("body") if options or type.name in ("control", "command"): - args.append("_options") + args.append("options") return args def get_options(fields): @@ -269,5 +267,5 @@ def get_dotnetparameters(type, fields): params.append("Header header") params.append("MemoryStream body") if options or type.name in ("control", "command"): - params.append("params Option[] _options") + params.append("params Option[] options") return params |
