
On Tue, Apr 13, 2010 at 05:33:02PM +0200, Matthias Bolte wrote:
Generate almost all SOAP method mapping code.
Update the driver code to use the complete paramater list of some methods that had parameters skipped before.
Improve the ESX_VI__METHOD marco to do automatic output deserialization based on output occurrence. Also incorporate automatic _this binding and output pointer check. --- src/esx/esx_driver.c | 26 +- src/esx/esx_vi.c | 7 +- src/esx/esx_vi_generator.input | 191 +++++++++- src/esx/esx_vi_generator.py | 489 ++++++++++++++++++------ src/esx/esx_vi_methods.c | 854 ++++++---------------------------------- src/esx/esx_vi_methods.h | 132 +------ 6 files changed, 723 insertions(+), 976 deletions(-)
[...]
diff --git a/src/esx/esx_vi_generator.input b/src/esx/esx_vi_generator.input index 9c545eb..a016c63 100644 --- a/src/esx/esx_vi_generator.input +++ b/src/esx/esx_vi_generator.input @@ -28,7 +28,22 @@ # - ol for an optional list # - i for an ignored item or list # -# Object member sequence has to match the WSDL sequence +# Object member sequence has to match the WSDL sequence. +# +# +# Method definition: +# +# method <name> [returns <type> <occurrence>] +# <type> <name> <occurrence> +# ... +# end +# +# The _this paramater can have a type attached to it: +# +# _this:<type> +# +# The <type> refers to one of the ServiceContent members. This make the +# generator auto-bind _this to the corresponding ServiceContent member. [...] +method CreateFilter returns ManagedObjectReference r + ManagedObjectReference _this:PropertyCollector r + PropertyFilterSpec spec r + Boolean partialUpdates r +end
Once again I really like the clarity of the generator input :-) The generator code is of course always a bit hairy, but that's normal. This makes for a nice cleanup, I also notice a lot of formatting changes too, ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/