| Index: mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
|
| diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
|
| index 6acaaeedc31aaaa5504f6efc76823f5bbfed7bd7..9e0dc1ba7f6883a30839512e12bec240bb5d180c 100644
|
| --- a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
|
| +++ b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
|
| @@ -1366,7 +1366,7 @@ class _ServiceFrobinateParams extends bindings.Struct {
|
| ];
|
| Foo foo = null;
|
| ServiceBazOptions baz = null;
|
| - Object port = null;
|
| + PortInterface port = null;
|
|
|
| _ServiceFrobinateParams() : super(kVersions.last.size);
|
|
|
| @@ -1538,7 +1538,7 @@ class _ServiceGetPortParams extends bindings.Struct {
|
| static const List<bindings.StructDataHeader> kVersions = const [
|
| const bindings.StructDataHeader(16, 0)
|
| ];
|
| - Object port = null;
|
| + PortInterfaceRequest port = null;
|
|
|
| _ServiceGetPortParams() : super(kVersions.last.size);
|
|
|
| @@ -1610,7 +1610,7 @@ class _PortPostMessageParams extends bindings.Struct {
|
| const bindings.StructDataHeader(24, 0)
|
| ];
|
| String messageText = null;
|
| - Object port = null;
|
| + PortInterface port = null;
|
|
|
| _PortPostMessageParams() : super(kVersions.last.size);
|
|
|
| @@ -1756,14 +1756,52 @@ class _ServiceServiceDescription implements service_describer.ServiceDescription
|
|
|
| abstract class Service {
|
| static const String serviceName = null;
|
| - dynamic frobinate(Foo foo,ServiceBazOptions baz,Object port,[Function responseFactory = null]);
|
| - void getPort(Object port);
|
| +
|
| + static service_describer.ServiceDescription _cachedServiceDescription;
|
| + static service_describer.ServiceDescription get serviceDescription {
|
| + if (_cachedServiceDescription == null) {
|
| + _cachedServiceDescription = new _ServiceServiceDescription();
|
| + }
|
| + return _cachedServiceDescription;
|
| + }
|
| +
|
| + static ServiceProxy connectToService(
|
| + bindings.ServiceConnector s, String url, [String serviceName]) {
|
| + ServiceProxy p = new ServiceProxy.unbound();
|
| + String name = serviceName ?? Service.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;
|
| + }
|
| + dynamic frobinate(Foo foo,ServiceBazOptions baz,PortInterface port,[Function responseFactory = null]);
|
| + void getPort(PortInterfaceRequest port);
|
| static const int kFavoriteBaz = 1;
|
| }
|
|
|
| +abstract class ServiceInterface
|
| + implements bindings.MojoInterface<Service>,
|
| + Service {
|
| + factory ServiceInterface([Service impl]) =>
|
| + new ServiceStub.unbound(impl);
|
| + factory ServiceInterface.fromEndpoint(
|
| + core.MojoMessagePipeEndpoint endpoint,
|
| + [Service impl]) =>
|
| + new ServiceStub.fromEndpoint(endpoint, impl);
|
| +}
|
| +
|
| +abstract class ServiceInterfaceRequest
|
| + implements bindings.MojoInterface<Service>,
|
| + Service {
|
| + factory ServiceInterfaceRequest() =>
|
| + new ServiceProxy.unbound();
|
| +}
|
| +
|
| class _ServiceProxyControl
|
| extends bindings.ProxyMessageHandler
|
| - implements bindings.ProxyControl {
|
| + implements bindings.ProxyControl<Service> {
|
| _ServiceProxyControl.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint);
|
|
|
| @@ -1772,9 +1810,6 @@ class _ServiceProxyControl
|
|
|
| _ServiceProxyControl.unbound() : super.unbound();
|
|
|
| - service_describer.ServiceDescription get serviceDescription =>
|
| - new _ServiceServiceDescription();
|
| -
|
| String get serviceName => Service.serviceName;
|
|
|
| void handleResponse(bindings.ServiceMessage message) {
|
| @@ -1806,6 +1841,11 @@ class _ServiceProxyControl
|
| }
|
| }
|
|
|
| + Service get impl => null;
|
| + set impl(Service _) {
|
| + throw new core.MojoApiError("The impl of a Proxy cannot be set.");
|
| + }
|
| +
|
| @override
|
| String toString() {
|
| var superString = super.toString();
|
| @@ -1814,8 +1854,10 @@ class _ServiceProxyControl
|
| }
|
|
|
| class ServiceProxy
|
| - extends bindings.Proxy
|
| - implements Service {
|
| + extends bindings.Proxy<Service>
|
| + implements Service,
|
| + ServiceInterface,
|
| + ServiceInterfaceRequest {
|
| ServiceProxy.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint)
|
| : super(new _ServiceProxyControl.fromEndpoint(endpoint));
|
| @@ -1832,15 +1874,8 @@ class ServiceProxy
|
| return new ServiceProxy.fromEndpoint(endpoint);
|
| }
|
|
|
| - factory ServiceProxy.connectToService(
|
| - bindings.ServiceConnector s, String url, [String serviceName]) {
|
| - ServiceProxy p = new ServiceProxy.unbound();
|
| - s.connectToService(url, p, serviceName);
|
| - return p;
|
| - }
|
|
|
| -
|
| - dynamic frobinate(Foo foo,ServiceBazOptions baz,Object port,[Function responseFactory = null]) {
|
| + dynamic frobinate(Foo foo,ServiceBazOptions baz,PortInterface port,[Function responseFactory = null]) {
|
| var params = new _ServiceFrobinateParams();
|
| params.foo = foo;
|
| params.baz = baz;
|
| @@ -1851,7 +1886,7 @@ class ServiceProxy
|
| -1,
|
| bindings.MessageHeader.kMessageExpectsResponse);
|
| }
|
| - void getPort(Object port) {
|
| + void getPort(PortInterfaceRequest port) {
|
| if (!ctrl.isBound) {
|
| ctrl.proxyError("The Proxy is closed.");
|
| return;
|
| @@ -1882,6 +1917,8 @@ class _ServiceStubControl
|
|
|
| _ServiceStubControl.unbound([this._impl]) : super.unbound();
|
|
|
| + String get serviceName => Service.serviceName;
|
| +
|
|
|
| ServiceFrobinateResponseParams _serviceFrobinateResponseParamsFactory(int result) {
|
| var result = new ServiceFrobinateResponseParams();
|
| @@ -1959,19 +1996,16 @@ class _ServiceStubControl
|
| }
|
|
|
| int get version => 0;
|
| -
|
| - static service_describer.ServiceDescription _cachedServiceDescription;
|
| - static service_describer.ServiceDescription get serviceDescription {
|
| - if (_cachedServiceDescription == null) {
|
| - _cachedServiceDescription = new _ServiceServiceDescription();
|
| - }
|
| - return _cachedServiceDescription;
|
| - }
|
| }
|
|
|
| class ServiceStub
|
| extends bindings.Stub<Service>
|
| - implements Service {
|
| + implements Service,
|
| + ServiceInterface,
|
| + ServiceInterfaceRequest {
|
| + ServiceStub.unbound([Service impl])
|
| + : super(new _ServiceStubControl.unbound(impl));
|
| +
|
| ServiceStub.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint, [Service impl])
|
| : super(new _ServiceStubControl.fromEndpoint(endpoint, impl));
|
| @@ -1980,23 +2014,17 @@ class ServiceStub
|
| core.MojoHandle handle, [Service impl])
|
| : super(new _ServiceStubControl.fromHandle(handle, impl));
|
|
|
| - ServiceStub.unbound([Service impl])
|
| - : super(new _ServiceStubControl.unbound(impl));
|
| -
|
| static ServiceStub newFromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) {
|
| assert(endpoint.setDescription("For ServiceStub"));
|
| return new ServiceStub.fromEndpoint(endpoint);
|
| }
|
|
|
| - static service_describer.ServiceDescription get serviceDescription =>
|
| - _ServiceStubControl.serviceDescription;
|
| -
|
|
|
| - dynamic frobinate(Foo foo,ServiceBazOptions baz,Object port,[Function responseFactory = null]) {
|
| + dynamic frobinate(Foo foo,ServiceBazOptions baz,PortInterface port,[Function responseFactory = null]) {
|
| return impl.frobinate(foo,baz,port,responseFactory);
|
| }
|
| - void getPort(Object port) {
|
| + void getPort(PortInterfaceRequest port) {
|
| return impl.getPort(port);
|
| }
|
| }
|
| @@ -2016,12 +2044,50 @@ class _PortServiceDescription implements service_describer.ServiceDescription {
|
|
|
| abstract class Port {
|
| static const String serviceName = null;
|
| - void postMessage(String messageText, Object port);
|
| +
|
| + static service_describer.ServiceDescription _cachedServiceDescription;
|
| + static service_describer.ServiceDescription get serviceDescription {
|
| + if (_cachedServiceDescription == null) {
|
| + _cachedServiceDescription = new _PortServiceDescription();
|
| + }
|
| + return _cachedServiceDescription;
|
| + }
|
| +
|
| + static PortProxy connectToService(
|
| + bindings.ServiceConnector s, String url, [String serviceName]) {
|
| + PortProxy p = new PortProxy.unbound();
|
| + String name = serviceName ?? Port.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;
|
| + }
|
| + void postMessage(String messageText, PortInterface port);
|
| +}
|
| +
|
| +abstract class PortInterface
|
| + implements bindings.MojoInterface<Port>,
|
| + Port {
|
| + factory PortInterface([Port impl]) =>
|
| + new PortStub.unbound(impl);
|
| + factory PortInterface.fromEndpoint(
|
| + core.MojoMessagePipeEndpoint endpoint,
|
| + [Port impl]) =>
|
| + new PortStub.fromEndpoint(endpoint, impl);
|
| +}
|
| +
|
| +abstract class PortInterfaceRequest
|
| + implements bindings.MojoInterface<Port>,
|
| + Port {
|
| + factory PortInterfaceRequest() =>
|
| + new PortProxy.unbound();
|
| }
|
|
|
| class _PortProxyControl
|
| extends bindings.ProxyMessageHandler
|
| - implements bindings.ProxyControl {
|
| + implements bindings.ProxyControl<Port> {
|
| _PortProxyControl.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint);
|
|
|
| @@ -2030,9 +2096,6 @@ class _PortProxyControl
|
|
|
| _PortProxyControl.unbound() : super.unbound();
|
|
|
| - service_describer.ServiceDescription get serviceDescription =>
|
| - new _PortServiceDescription();
|
| -
|
| String get serviceName => Port.serviceName;
|
|
|
| void handleResponse(bindings.ServiceMessage message) {
|
| @@ -2044,6 +2107,11 @@ class _PortProxyControl
|
| }
|
| }
|
|
|
| + Port get impl => null;
|
| + set impl(Port _) {
|
| + throw new core.MojoApiError("The impl of a Proxy cannot be set.");
|
| + }
|
| +
|
| @override
|
| String toString() {
|
| var superString = super.toString();
|
| @@ -2052,8 +2120,10 @@ class _PortProxyControl
|
| }
|
|
|
| class PortProxy
|
| - extends bindings.Proxy
|
| - implements Port {
|
| + extends bindings.Proxy<Port>
|
| + implements Port,
|
| + PortInterface,
|
| + PortInterfaceRequest {
|
| PortProxy.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint)
|
| : super(new _PortProxyControl.fromEndpoint(endpoint));
|
| @@ -2070,15 +2140,8 @@ class PortProxy
|
| return new PortProxy.fromEndpoint(endpoint);
|
| }
|
|
|
| - factory PortProxy.connectToService(
|
| - bindings.ServiceConnector s, String url, [String serviceName]) {
|
| - PortProxy p = new PortProxy.unbound();
|
| - s.connectToService(url, p, serviceName);
|
| - return p;
|
| - }
|
|
|
| -
|
| - void postMessage(String messageText, Object port) {
|
| + void postMessage(String messageText, PortInterface port) {
|
| if (!ctrl.isBound) {
|
| ctrl.proxyError("The Proxy is closed.");
|
| return;
|
| @@ -2110,6 +2173,8 @@ class _PortStubControl
|
|
|
| _PortStubControl.unbound([this._impl]) : super.unbound();
|
|
|
| + String get serviceName => Port.serviceName;
|
| +
|
|
|
|
|
| dynamic handleMessage(bindings.ServiceMessage message) {
|
| @@ -2160,19 +2225,16 @@ class _PortStubControl
|
| }
|
|
|
| int get version => 0;
|
| -
|
| - static service_describer.ServiceDescription _cachedServiceDescription;
|
| - static service_describer.ServiceDescription get serviceDescription {
|
| - if (_cachedServiceDescription == null) {
|
| - _cachedServiceDescription = new _PortServiceDescription();
|
| - }
|
| - return _cachedServiceDescription;
|
| - }
|
| }
|
|
|
| class PortStub
|
| extends bindings.Stub<Port>
|
| - implements Port {
|
| + implements Port,
|
| + PortInterface,
|
| + PortInterfaceRequest {
|
| + PortStub.unbound([Port impl])
|
| + : super(new _PortStubControl.unbound(impl));
|
| +
|
| PortStub.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint, [Port impl])
|
| : super(new _PortStubControl.fromEndpoint(endpoint, impl));
|
| @@ -2181,20 +2243,14 @@ class PortStub
|
| core.MojoHandle handle, [Port impl])
|
| : super(new _PortStubControl.fromHandle(handle, impl));
|
|
|
| - PortStub.unbound([Port impl])
|
| - : super(new _PortStubControl.unbound(impl));
|
| -
|
| static PortStub newFromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) {
|
| assert(endpoint.setDescription("For PortStub"));
|
| return new PortStub.fromEndpoint(endpoint);
|
| }
|
|
|
| - static service_describer.ServiceDescription get serviceDescription =>
|
| - _PortStubControl.serviceDescription;
|
| -
|
|
|
| - void postMessage(String messageText, Object port) {
|
| + void postMessage(String messageText, PortInterface port) {
|
| return impl.postMessage(messageText, port);
|
| }
|
| }
|
|
|