summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAidan Skinner <aidan@apache.org>2009-12-03 22:13:22 +0000
committerAidan Skinner <aidan@apache.org>2009-12-03 22:13:22 +0000
commit9bdc4125895b38815689e8920ea94687027caf7e (patch)
treeacf28a33b6a03328c8aa784cc0a890238e6aeed2
parente1c972fcabcdb5492f9a7eda1327d5584a101dc6 (diff)
downloadqpid-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.tpl61
-rw-r--r--qpid/dotnet/client-010/gentool/Enum.tpl2
-rw-r--r--qpid/dotnet/client-010/gentool/Invoker.tpl14
-rw-r--r--qpid/dotnet/client-010/gentool/MethodDelegate.tpl2
-rw-r--r--qpid/dotnet/client-010/gentool/build.xml2
-rw-r--r--qpid/dotnet/client-010/gentool/codegen1
-rw-r--r--qpid/dotnet/client-010/gentool/dotnetgenutil.py44
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