| Index: mojo/dart/packages/mojo/lib/mojo/service_provider.mojom.dart
|
| diff --git a/mojo/dart/packages/mojo/lib/mojo/service_provider.mojom.dart b/mojo/dart/packages/mojo/lib/mojo/service_provider.mojom.dart
|
| index 9f859f7d206f87ff660be3fd738bcb6f4488be70..3956995ae8e12bf6373ee00443c624e132cc0215 100644
|
| --- a/mojo/dart/packages/mojo/lib/mojo/service_provider.mojom.dart
|
| +++ b/mojo/dart/packages/mojo/lib/mojo/service_provider.mojom.dart
|
| @@ -108,12 +108,50 @@ class _ServiceProviderServiceDescription implements service_describer.ServiceDes
|
|
|
| abstract class ServiceProvider {
|
| static const String serviceName = null;
|
| +
|
| + static service_describer.ServiceDescription _cachedServiceDescription;
|
| + static service_describer.ServiceDescription get serviceDescription {
|
| + if (_cachedServiceDescription == null) {
|
| + _cachedServiceDescription = new _ServiceProviderServiceDescription();
|
| + }
|
| + return _cachedServiceDescription;
|
| + }
|
| +
|
| + static ServiceProviderProxy connectToService(
|
| + bindings.ServiceConnector s, String url, [String serviceName]) {
|
| + ServiceProviderProxy p = new ServiceProviderProxy.unbound();
|
| + String name = serviceName ?? ServiceProvider.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 connectToService_(String interfaceName, core.MojoMessagePipeEndpoint pipe);
|
| }
|
|
|
| +abstract class ServiceProviderInterface
|
| + implements bindings.MojoInterface<ServiceProvider>,
|
| + ServiceProvider {
|
| + factory ServiceProviderInterface([ServiceProvider impl]) =>
|
| + new ServiceProviderStub.unbound(impl);
|
| + factory ServiceProviderInterface.fromEndpoint(
|
| + core.MojoMessagePipeEndpoint endpoint,
|
| + [ServiceProvider impl]) =>
|
| + new ServiceProviderStub.fromEndpoint(endpoint, impl);
|
| +}
|
| +
|
| +abstract class ServiceProviderInterfaceRequest
|
| + implements bindings.MojoInterface<ServiceProvider>,
|
| + ServiceProvider {
|
| + factory ServiceProviderInterfaceRequest() =>
|
| + new ServiceProviderProxy.unbound();
|
| +}
|
| +
|
| class _ServiceProviderProxyControl
|
| extends bindings.ProxyMessageHandler
|
| - implements bindings.ProxyControl {
|
| + implements bindings.ProxyControl<ServiceProvider> {
|
| _ServiceProviderProxyControl.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint);
|
|
|
| @@ -122,9 +160,6 @@ class _ServiceProviderProxyControl
|
|
|
| _ServiceProviderProxyControl.unbound() : super.unbound();
|
|
|
| - service_describer.ServiceDescription get serviceDescription =>
|
| - new _ServiceProviderServiceDescription();
|
| -
|
| String get serviceName => ServiceProvider.serviceName;
|
|
|
| void handleResponse(bindings.ServiceMessage message) {
|
| @@ -136,6 +171,11 @@ class _ServiceProviderProxyControl
|
| }
|
| }
|
|
|
| + ServiceProvider get impl => null;
|
| + set impl(ServiceProvider _) {
|
| + throw new core.MojoApiError("The impl of a Proxy cannot be set.");
|
| + }
|
| +
|
| @override
|
| String toString() {
|
| var superString = super.toString();
|
| @@ -144,8 +184,10 @@ class _ServiceProviderProxyControl
|
| }
|
|
|
| class ServiceProviderProxy
|
| - extends bindings.Proxy
|
| - implements ServiceProvider {
|
| + extends bindings.Proxy<ServiceProvider>
|
| + implements ServiceProvider,
|
| + ServiceProviderInterface,
|
| + ServiceProviderInterfaceRequest {
|
| ServiceProviderProxy.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint)
|
| : super(new _ServiceProviderProxyControl.fromEndpoint(endpoint));
|
| @@ -162,13 +204,6 @@ class ServiceProviderProxy
|
| return new ServiceProviderProxy.fromEndpoint(endpoint);
|
| }
|
|
|
| - factory ServiceProviderProxy.connectToService(
|
| - bindings.ServiceConnector s, String url, [String serviceName]) {
|
| - ServiceProviderProxy p = new ServiceProviderProxy.unbound();
|
| - s.connectToService(url, p, serviceName);
|
| - return p;
|
| - }
|
| -
|
|
|
| void connectToService_(String interfaceName, core.MojoMessagePipeEndpoint pipe) {
|
| if (!ctrl.isBound) {
|
| @@ -202,6 +237,8 @@ class _ServiceProviderStubControl
|
|
|
| _ServiceProviderStubControl.unbound([this._impl]) : super.unbound();
|
|
|
| + String get serviceName => ServiceProvider.serviceName;
|
| +
|
|
|
|
|
| dynamic handleMessage(bindings.ServiceMessage message) {
|
| @@ -252,19 +289,16 @@ class _ServiceProviderStubControl
|
| }
|
|
|
| int get version => 0;
|
| -
|
| - static service_describer.ServiceDescription _cachedServiceDescription;
|
| - static service_describer.ServiceDescription get serviceDescription {
|
| - if (_cachedServiceDescription == null) {
|
| - _cachedServiceDescription = new _ServiceProviderServiceDescription();
|
| - }
|
| - return _cachedServiceDescription;
|
| - }
|
| }
|
|
|
| class ServiceProviderStub
|
| extends bindings.Stub<ServiceProvider>
|
| - implements ServiceProvider {
|
| + implements ServiceProvider,
|
| + ServiceProviderInterface,
|
| + ServiceProviderInterfaceRequest {
|
| + ServiceProviderStub.unbound([ServiceProvider impl])
|
| + : super(new _ServiceProviderStubControl.unbound(impl));
|
| +
|
| ServiceProviderStub.fromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint, [ServiceProvider impl])
|
| : super(new _ServiceProviderStubControl.fromEndpoint(endpoint, impl));
|
| @@ -273,18 +307,12 @@ class ServiceProviderStub
|
| core.MojoHandle handle, [ServiceProvider impl])
|
| : super(new _ServiceProviderStubControl.fromHandle(handle, impl));
|
|
|
| - ServiceProviderStub.unbound([ServiceProvider impl])
|
| - : super(new _ServiceProviderStubControl.unbound(impl));
|
| -
|
| static ServiceProviderStub newFromEndpoint(
|
| core.MojoMessagePipeEndpoint endpoint) {
|
| assert(endpoint.setDescription("For ServiceProviderStub"));
|
| return new ServiceProviderStub.fromEndpoint(endpoint);
|
| }
|
|
|
| - static service_describer.ServiceDescription get serviceDescription =>
|
| - _ServiceProviderStubControl.serviceDescription;
|
| -
|
|
|
| void connectToService_(String interfaceName, core.MojoMessagePipeEndpoint pipe) {
|
| return impl.connectToService_(interfaceName, pipe);
|
|
|