Chromium Code Reviews| Index: mojo/public/tools/bindings/generators/dart_templates/interface_definition.tmpl |
| diff --git a/mojo/public/tools/bindings/generators/dart_templates/interface_definition.tmpl b/mojo/public/tools/bindings/generators/dart_templates/interface_definition.tmpl |
| index 8a844c5f89ff38e7a7e6e74ac0199c26f7b4f705..d647c6dc7085629758e6ec24c5dba85746d7298a 100644 |
| --- a/mojo/public/tools/bindings/generators/dart_templates/interface_definition.tmpl |
| +++ b/mojo/public/tools/bindings/generators/dart_templates/interface_definition.tmpl |
| @@ -8,10 +8,45 @@ const String {{interface|name}}Name = |
| {#--- Interface Enums #} |
| {%- from "enum_definition.tmpl" import enum_def -%} |
| {%- for enum in interface.enums %} |
| - {{ enum_def(enum) }} |
| + {{ enum_def(enum, typepkg, package) }} |
| {%- endfor %} |
| +{{ mojom_type_macros.writeMojomTypeDef(interface, typepkg, package) }} |
| + |
| +class _{{interface|name}}ServiceDescription extends {{descpkg}}ServiceDescription { |
| + // Avoid infinite loop by overriding serviceDescription field. |
| + final {{descpkg}}ServiceDescription serviceDescription = null; |
| +{% if should_gen_mojom_types -%} |
| + dynamic getTopLevelInterface([Function responseFactory = null]) { |
| + return {{interface|mojom_type_identifier}}(); |
| + } |
| + dynamic getTypeDefinition(String typeKey,[Function responseFactory = null]) { |
| + return getAllMojomTypeDefinitions()[typeKey]; |
| + } |
| + dynamic getAllTypeDefinitions([Function responseFactory = null]) { |
| + return getAllMojomTypeDefinitions(); |
| + } |
| +{%- else -%} |
| + dynamic getTopLevelInterface([Function responseFactory = null]) { |
| + return null; |
| + } |
| + dynamic getTypeDefinition(String typeKey,[Function responseFactory = null]) { |
| + return null; |
| + } |
| + dynamic getAllTypeDefinitions([Function responseFactory = null]) { |
| + return null; |
| + } |
| +{%- endif %} |
| +} |
| + |
| abstract class {{interface|name}} { |
| + final {{descpkg}}ServiceDescription serviceDescription = |
|
zra
2015/11/18 19:24:35
This is probably not the right place for this. See
|
| + {% if descpkg != '' -%} |
| + new _{{interface|name}}ServiceDescription(); |
| + {%- else -%} |
| + null; |
| + {%- endif %} |
| + |
| {%- for method in interface.methods %} |
| {%- if method.response_parameters == None %} |
| void {{method|name}}( |
| @@ -53,6 +88,9 @@ class {{interface|name}}ProxyImpl extends bindings.Proxy { |
| String get name => {{interface|name}}Name; |
| + {{descpkg}}ServiceDescription get serviceDescription => |
|
zra
2015/11/18 19:24:36
This seems like the right place. See comment below
|
| + new _{{interface|name}}ServiceDescription(); |
| + |
| void handleResponse(bindings.ServiceMessage message) { |
| switch (message.header.type) { |
| {%- for method in interface.methods %} |
| @@ -94,7 +132,7 @@ class {{interface|name}}ProxyImpl extends bindings.Proxy { |
| } |
| -class _{{interface|name}}ProxyCalls implements {{interface|name}} { |
| +class _{{interface|name}}ProxyCalls extends {{interface|name}} { |
|
zra
2015/11/18 19:24:36
Sorry for the lack of comments here. The ProxyCall
alexfandrianto
2015/11/19 23:27:23
As discussed offline, the reason for these changes
|
| {{interface|name}}ProxyImpl _proxyImpl; |
| _{{interface|name}}ProxyCalls(this._proxyImpl); |