| Index: mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
|
| diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
|
| index 3fa894a93dab20e4f5640955ed0f1b6e2c51de55..a912f9ef3035d037f32e5b9de4a52a23c95767a3 100644
|
| --- a/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
|
| +++ b/mojo/dart/packages/_mojo_for_test_only/lib/dart_to_cpp/dart_to_cpp.mojom.dart
|
| @@ -660,7 +660,7 @@ class _DartSideSetClientParams extends bindings.Struct {
|
| static const List<bindings.StructDataHeader> kVersions = const [
|
| const bindings.StructDataHeader(16, 0)
|
| ];
|
| - Object cppSide = null;
|
| + CppSideInterface cppSide = null;
|
|
|
| _DartSideSetClientParams() : super(kVersions.last.size);
|
|
|
| @@ -887,15 +887,53 @@ class _CppSideServiceDescription implements service_describer.ServiceDescription
|
|
|
| abstract class CppSide {
|
| static const String serviceName = null;
|
| +
|
| + static service_describer.ServiceDescription _cachedServiceDescription;
|
| + static service_describer.ServiceDescription get serviceDescription {
|
| + if (_cachedServiceDescription == null) {
|
| + _cachedServiceDescription = new _CppSideServiceDescription();
|
| + }
|
| + return _cachedServiceDescription;
|
| + }
|
| +
|
| + static CppSideProxy connectToService(
|
| + bindings.ServiceConnector s, String url, [String serviceName]) {
|
| + CppSideProxy p = new CppSideProxy.unbound();
|
| + String name = serviceName ?? CppSide.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 startTest();
|
| void testFinished();
|
| void pingResponse();
|
| void echoResponse(EchoArgsList list);
|
| }
|
|
|
| +abstract class CppSideInterface
|
| + implements bindings.MojoInterface<CppSide>,
|
| + CppSide {
|
| + factory CppSideInterface([CppSide impl]) =>
|
| + new CppSideStub.unbound(impl);
|
| + factory CppSideInterface.fromEndpoint(
|
| + core.MojoMessagePipeEndpoint endpoint,
|
| + [CppSide impl]) =>
|
| + new CppSideStub.fromEndpoint(endpoint, impl);
|
| +}
|
| +
|
| +abstract class CppSideInterfaceRequest
|
| + implements bindings.MojoInterface<CppSide>,
|
| + CppSide {
|
| + factory CppSideInterfaceRequest() =>
|
| + new CppSideProxy.unbound();
|
| +}
|
| +
|
| class _CppSideProxyControl
|
| extends bindings.ProxyMessageHandler
|
| - implements bindings.ProxyControl {
|
| + implements bindings.ProxyControl<CppSide> {
|
| _CppSideProxyControl.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint);
|
|
|
| @@ -904,9 +942,6 @@ class _CppSideProxyControl
|
|
|
| _CppSideProxyControl.unbound() : super.unbound();
|
|
|
| - service_describer.ServiceDescription get serviceDescription =>
|
| - new _CppSideServiceDescription();
|
| -
|
| String get serviceName => CppSide.serviceName;
|
|
|
| void handleResponse(bindings.ServiceMessage message) {
|
| @@ -918,6 +953,11 @@ class _CppSideProxyControl
|
| }
|
| }
|
|
|
| + CppSide get impl => null;
|
| + set impl(CppSide _) {
|
| + throw new core.MojoApiError("The impl of a Proxy cannot be set.");
|
| + }
|
| +
|
| @override
|
| String toString() {
|
| var superString = super.toString();
|
| @@ -926,8 +966,10 @@ class _CppSideProxyControl
|
| }
|
|
|
| class CppSideProxy
|
| - extends bindings.Proxy
|
| - implements CppSide {
|
| + extends bindings.Proxy<CppSide>
|
| + implements CppSide,
|
| + CppSideInterface,
|
| + CppSideInterfaceRequest {
|
| CppSideProxy.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint)
|
| : super(new _CppSideProxyControl.fromEndpoint(endpoint));
|
| @@ -944,13 +986,6 @@ class CppSideProxy
|
| return new CppSideProxy.fromEndpoint(endpoint);
|
| }
|
|
|
| - factory CppSideProxy.connectToService(
|
| - bindings.ServiceConnector s, String url, [String serviceName]) {
|
| - CppSideProxy p = new CppSideProxy.unbound();
|
| - s.connectToService(url, p, serviceName);
|
| - return p;
|
| - }
|
| -
|
|
|
| void startTest() {
|
| if (!ctrl.isBound) {
|
| @@ -1010,6 +1045,8 @@ class _CppSideStubControl
|
|
|
| _CppSideStubControl.unbound([this._impl]) : super.unbound();
|
|
|
| + String get serviceName => CppSide.serviceName;
|
| +
|
|
|
|
|
| dynamic handleMessage(bindings.ServiceMessage message) {
|
| @@ -1069,19 +1106,16 @@ class _CppSideStubControl
|
| }
|
|
|
| int get version => 0;
|
| -
|
| - static service_describer.ServiceDescription _cachedServiceDescription;
|
| - static service_describer.ServiceDescription get serviceDescription {
|
| - if (_cachedServiceDescription == null) {
|
| - _cachedServiceDescription = new _CppSideServiceDescription();
|
| - }
|
| - return _cachedServiceDescription;
|
| - }
|
| }
|
|
|
| class CppSideStub
|
| extends bindings.Stub<CppSide>
|
| - implements CppSide {
|
| + implements CppSide,
|
| + CppSideInterface,
|
| + CppSideInterfaceRequest {
|
| + CppSideStub.unbound([CppSide impl])
|
| + : super(new _CppSideStubControl.unbound(impl));
|
| +
|
| CppSideStub.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint, [CppSide impl])
|
| : super(new _CppSideStubControl.fromEndpoint(endpoint, impl));
|
| @@ -1090,18 +1124,12 @@ class CppSideStub
|
| core.MojoHandle handle, [CppSide impl])
|
| : super(new _CppSideStubControl.fromHandle(handle, impl));
|
|
|
| - CppSideStub.unbound([CppSide impl])
|
| - : super(new _CppSideStubControl.unbound(impl));
|
| -
|
| static CppSideStub newFromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) {
|
| assert(endpoint.setDescription("For CppSideStub"));
|
| return new CppSideStub.fromEndpoint(endpoint);
|
| }
|
|
|
| - static service_describer.ServiceDescription get serviceDescription =>
|
| - _CppSideStubControl.serviceDescription;
|
| -
|
|
|
| void startTest() {
|
| return impl.startTest();
|
| @@ -1134,14 +1162,52 @@ class _DartSideServiceDescription implements service_describer.ServiceDescriptio
|
|
|
| abstract class DartSide {
|
| static const String serviceName = null;
|
| - void setClient(Object cppSide);
|
| +
|
| + static service_describer.ServiceDescription _cachedServiceDescription;
|
| + static service_describer.ServiceDescription get serviceDescription {
|
| + if (_cachedServiceDescription == null) {
|
| + _cachedServiceDescription = new _DartSideServiceDescription();
|
| + }
|
| + return _cachedServiceDescription;
|
| + }
|
| +
|
| + static DartSideProxy connectToService(
|
| + bindings.ServiceConnector s, String url, [String serviceName]) {
|
| + DartSideProxy p = new DartSideProxy.unbound();
|
| + String name = serviceName ?? DartSide.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 setClient(CppSideInterface cppSide);
|
| void ping();
|
| void echo(int numIterations, EchoArgs arg);
|
| }
|
|
|
| +abstract class DartSideInterface
|
| + implements bindings.MojoInterface<DartSide>,
|
| + DartSide {
|
| + factory DartSideInterface([DartSide impl]) =>
|
| + new DartSideStub.unbound(impl);
|
| + factory DartSideInterface.fromEndpoint(
|
| + core.MojoMessagePipeEndpoint endpoint,
|
| + [DartSide impl]) =>
|
| + new DartSideStub.fromEndpoint(endpoint, impl);
|
| +}
|
| +
|
| +abstract class DartSideInterfaceRequest
|
| + implements bindings.MojoInterface<DartSide>,
|
| + DartSide {
|
| + factory DartSideInterfaceRequest() =>
|
| + new DartSideProxy.unbound();
|
| +}
|
| +
|
| class _DartSideProxyControl
|
| extends bindings.ProxyMessageHandler
|
| - implements bindings.ProxyControl {
|
| + implements bindings.ProxyControl<DartSide> {
|
| _DartSideProxyControl.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint);
|
|
|
| @@ -1150,9 +1216,6 @@ class _DartSideProxyControl
|
|
|
| _DartSideProxyControl.unbound() : super.unbound();
|
|
|
| - service_describer.ServiceDescription get serviceDescription =>
|
| - new _DartSideServiceDescription();
|
| -
|
| String get serviceName => DartSide.serviceName;
|
|
|
| void handleResponse(bindings.ServiceMessage message) {
|
| @@ -1164,6 +1227,11 @@ class _DartSideProxyControl
|
| }
|
| }
|
|
|
| + DartSide get impl => null;
|
| + set impl(DartSide _) {
|
| + throw new core.MojoApiError("The impl of a Proxy cannot be set.");
|
| + }
|
| +
|
| @override
|
| String toString() {
|
| var superString = super.toString();
|
| @@ -1172,8 +1240,10 @@ class _DartSideProxyControl
|
| }
|
|
|
| class DartSideProxy
|
| - extends bindings.Proxy
|
| - implements DartSide {
|
| + extends bindings.Proxy<DartSide>
|
| + implements DartSide,
|
| + DartSideInterface,
|
| + DartSideInterfaceRequest {
|
| DartSideProxy.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint)
|
| : super(new _DartSideProxyControl.fromEndpoint(endpoint));
|
| @@ -1190,15 +1260,8 @@ class DartSideProxy
|
| return new DartSideProxy.fromEndpoint(endpoint);
|
| }
|
|
|
| - factory DartSideProxy.connectToService(
|
| - bindings.ServiceConnector s, String url, [String serviceName]) {
|
| - DartSideProxy p = new DartSideProxy.unbound();
|
| - s.connectToService(url, p, serviceName);
|
| - return p;
|
| - }
|
|
|
| -
|
| - void setClient(Object cppSide) {
|
| + void setClient(CppSideInterface cppSide) {
|
| if (!ctrl.isBound) {
|
| ctrl.proxyError("The Proxy is closed.");
|
| return;
|
| @@ -1249,6 +1312,8 @@ class _DartSideStubControl
|
|
|
| _DartSideStubControl.unbound([this._impl]) : super.unbound();
|
|
|
| + String get serviceName => DartSide.serviceName;
|
| +
|
|
|
|
|
| dynamic handleMessage(bindings.ServiceMessage message) {
|
| @@ -1307,19 +1372,16 @@ class _DartSideStubControl
|
| }
|
|
|
| int get version => 0;
|
| -
|
| - static service_describer.ServiceDescription _cachedServiceDescription;
|
| - static service_describer.ServiceDescription get serviceDescription {
|
| - if (_cachedServiceDescription == null) {
|
| - _cachedServiceDescription = new _DartSideServiceDescription();
|
| - }
|
| - return _cachedServiceDescription;
|
| - }
|
| }
|
|
|
| class DartSideStub
|
| extends bindings.Stub<DartSide>
|
| - implements DartSide {
|
| + implements DartSide,
|
| + DartSideInterface,
|
| + DartSideInterfaceRequest {
|
| + DartSideStub.unbound([DartSide impl])
|
| + : super(new _DartSideStubControl.unbound(impl));
|
| +
|
| DartSideStub.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint, [DartSide impl])
|
| : super(new _DartSideStubControl.fromEndpoint(endpoint, impl));
|
| @@ -1328,20 +1390,14 @@ class DartSideStub
|
| core.MojoHandle handle, [DartSide impl])
|
| : super(new _DartSideStubControl.fromHandle(handle, impl));
|
|
|
| - DartSideStub.unbound([DartSide impl])
|
| - : super(new _DartSideStubControl.unbound(impl));
|
| -
|
| static DartSideStub newFromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) {
|
| assert(endpoint.setDescription("For DartSideStub"));
|
| return new DartSideStub.fromEndpoint(endpoint);
|
| }
|
|
|
| - static service_describer.ServiceDescription get serviceDescription =>
|
| - _DartSideStubControl.serviceDescription;
|
| -
|
|
|
| - void setClient(Object cppSide) {
|
| + void setClient(CppSideInterface cppSide) {
|
| return impl.setClient(cppSide);
|
| }
|
| void ping() {
|
|
|