| 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 a44dc8b7cc4a4622de2f79c317ba949e594df64f..8d8b48f1fa8657762cc8b60708649a31500f1235 100644
|
| --- a/mojo/public/tools/bindings/generators/dart_templates/interface_definition.tmpl
|
| +++ b/mojo/public/tools/bindings/generators/dart_templates/interface_definition.tmpl
|
| @@ -40,6 +40,26 @@ abstract class {{interface|name}} {
|
| static const String serviceName = null;
|
| {%- endif %}
|
|
|
| + static {{descpkg}}ServiceDescription _cachedServiceDescription;
|
| + static {{descpkg}}ServiceDescription get serviceDescription {
|
| + if (_cachedServiceDescription == null) {
|
| + _cachedServiceDescription = new _{{interface|name}}ServiceDescription();
|
| + }
|
| + return _cachedServiceDescription;
|
| + }
|
| +
|
| + static {{interface|name}}Proxy connectToService(
|
| + bindings.ServiceConnector s, String url, [String serviceName]) {
|
| + {{interface|name}}Proxy p = new {{interface|name}}Proxy.unbound();
|
| + String name = serviceName ?? {{interface|name}}.serviceName;
|
| + if ((name == null) || name.isEmpty) {
|
| + throw new core.MojoApiError(
|
| + "If an interface has no ServiceName, then one must be provided.");
|
| + }
|
| + s.connectToService(url, p, name);
|
| + return p;
|
| + }
|
| +
|
| {%- for method in interface.methods %}
|
| {%- if method.response_parameters == None %}
|
| void {{method|name}}(
|
| @@ -62,9 +82,27 @@ abstract class {{interface|name}} {
|
| {%- endfor %}
|
| }
|
|
|
| +abstract class {{interface|name}}Interface
|
| + implements bindings.MojoInterface<{{interface|name}}>,
|
| + {{interface|name}} {
|
| + factory {{interface|name}}Interface([{{interface|name}} impl]) =>
|
| + new {{interface|name}}Stub.unbound(impl);
|
| + factory {{interface|name}}Interface.fromEndpoint(
|
| + core.MojoMessagePipeEndpoint endpoint,
|
| + [{{interface|name}} impl]) =>
|
| + new {{interface|name}}Stub.fromEndpoint(endpoint, impl);
|
| +}
|
| +
|
| +abstract class {{interface|name}}InterfaceRequest
|
| + implements bindings.MojoInterface<{{interface|name}}>,
|
| + {{interface|name}} {
|
| + factory {{interface|name}}InterfaceRequest() =>
|
| + new {{interface|name}}Proxy.unbound();
|
| +}
|
| +
|
| class _{{interface|name}}ProxyControl
|
| extends bindings.ProxyMessageHandler
|
| - implements bindings.ProxyControl {
|
| + implements bindings.ProxyControl<{{interface|name}}> {
|
| _{{interface|name}}ProxyControl.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint);
|
|
|
| @@ -73,9 +111,6 @@ class _{{interface|name}}ProxyControl
|
|
|
| _{{interface|name}}ProxyControl.unbound() : super.unbound();
|
|
|
| - {{descpkg}}ServiceDescription get serviceDescription =>
|
| - new _{{interface|name}}ServiceDescription();
|
| -
|
| String get serviceName => {{interface|name}}.serviceName;
|
|
|
| void handleResponse(bindings.ServiceMessage message) {
|
| @@ -112,6 +147,11 @@ class _{{interface|name}}ProxyControl
|
| }
|
| }
|
|
|
| + {{interface|name}} get impl => null;
|
| + set impl({{interface|name}} _) {
|
| + throw new core.MojoApiError("The impl of a Proxy cannot be set.");
|
| + }
|
| +
|
| @override
|
| String toString() {
|
| var superString = super.toString();
|
| @@ -120,8 +160,10 @@ class _{{interface|name}}ProxyControl
|
| }
|
|
|
| class {{interface|name}}Proxy
|
| - extends bindings.Proxy
|
| - implements {{interface|name}} {
|
| + extends bindings.Proxy<{{interface|name}}>
|
| + implements {{interface|name}},
|
| + {{interface|name}}Interface,
|
| + {{interface|name}}InterfaceRequest {
|
| {{interface|name}}Proxy.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint)
|
| : super(new _{{interface|name}}ProxyControl.fromEndpoint(endpoint));
|
| @@ -138,13 +180,6 @@ class {{interface|name}}Proxy
|
| return new {{interface|name}}Proxy.fromEndpoint(endpoint);
|
| }
|
|
|
| - factory {{interface|name}}Proxy.connectToService(
|
| - bindings.ServiceConnector s, String url, [String serviceName]) {
|
| - {{interface|name}}Proxy p = new {{interface|name}}Proxy.unbound();
|
| - s.connectToService(url, p, serviceName);
|
| - return p;
|
| - }
|
| -
|
| {% for method in interface.methods %}
|
| {%- if method.response_parameters == None %}
|
| void {{method|name}}(
|
| @@ -204,6 +239,8 @@ class _{{interface|name}}StubControl
|
|
|
| _{{interface|name}}StubControl.unbound([this._impl]) : super.unbound();
|
|
|
| + String get serviceName => {{interface|name}}.serviceName;
|
| +
|
| {% for method in interface.methods %}
|
| {%- if method.response_parameters != None %}
|
| {%- set response_struct = method.response_param_struct %}
|
| @@ -304,19 +341,16 @@ class _{{interface|name}}StubControl
|
| }
|
|
|
| int get version => {{interface.version}};
|
| -
|
| - static {{descpkg}}ServiceDescription _cachedServiceDescription;
|
| - static {{descpkg}}ServiceDescription get serviceDescription {
|
| - if (_cachedServiceDescription == null) {
|
| - _cachedServiceDescription = new _{{interface|name}}ServiceDescription();
|
| - }
|
| - return _cachedServiceDescription;
|
| - }
|
| }
|
|
|
| class {{interface|name}}Stub
|
| extends bindings.Stub<{{interface|name}}>
|
| - implements {{interface|name}} {
|
| + implements {{interface|name}},
|
| + {{interface|name}}Interface,
|
| + {{interface|name}}InterfaceRequest {
|
| + {{interface|name}}Stub.unbound([{{interface|name}} impl])
|
| + : super(new _{{interface|name}}StubControl.unbound(impl));
|
| +
|
| {{interface|name}}Stub.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint, [{{interface|name}} impl])
|
| : super(new _{{interface|name}}StubControl.fromEndpoint(endpoint, impl));
|
| @@ -325,18 +359,12 @@ class {{interface|name}}Stub
|
| core.MojoHandle handle, [{{interface|name}} impl])
|
| : super(new _{{interface|name}}StubControl.fromHandle(handle, impl));
|
|
|
| - {{interface|name}}Stub.unbound([{{interface|name}} impl])
|
| - : super(new _{{interface|name}}StubControl.unbound(impl));
|
| -
|
| static {{interface|name}}Stub newFromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) {
|
| assert(endpoint.setDescription("For {{interface|name}}Stub"));
|
| return new {{interface|name}}Stub.fromEndpoint(endpoint);
|
| }
|
|
|
| - static {{descpkg}}ServiceDescription get serviceDescription =>
|
| - _{{interface|name}}StubControl.serviceDescription;
|
| -
|
| {% for method in interface.methods %}
|
| {%- if method.response_parameters == None %}
|
| void {{method|name}}(
|
|
|