Index: third_party/mojo/src/mojo/public/dart/lib/src/application_connection.dart |
diff --git a/third_party/mojo/src/mojo/public/dart/lib/src/application_connection.dart b/third_party/mojo/src/mojo/public/dart/lib/src/application_connection.dart |
deleted file mode 100644 |
index 2e80fc1a914db6288a68ca040d95f9ed1e157337..0000000000000000000000000000000000000000 |
--- a/third_party/mojo/src/mojo/public/dart/lib/src/application_connection.dart |
+++ /dev/null |
@@ -1,121 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-part of application; |
- |
-typedef Object ServiceFactory(core.MojoMessagePipeEndpoint endpoint); |
-typedef void FallbackServiceFactory( |
- String interfaceName, core.MojoMessagePipeEndpoint endpoint); |
- |
-class LocalServiceProvider implements ServiceProvider { |
- final ApplicationConnection connection; |
- ServiceProviderStub _stub; |
- |
- LocalServiceProvider(this.connection, this._stub) { |
- assert(_stub.isOpen); |
- _stub.impl = this; |
- } |
- |
- set onError(Function f) { |
- _stub.onError = f; |
- } |
- |
- Future close({bool immediate: false}) => _stub.close(immediate: immediate); |
- |
- void connectToService( |
- String interfaceName, core.MojoMessagePipeEndpoint pipe) { |
- if (connection._nameToServiceFactory.containsKey(interfaceName)) { |
- connection._nameToServiceFactory[interfaceName](pipe); |
- return; |
- } |
- if (connection.fallbackServiceFactory != null) { |
- connection.fallbackServiceFactory(interfaceName, pipe); |
- return; |
- } |
- // The specified interface isn't provided. Close the pipe so the |
- // remote endpoint sees that we don't support this interface. |
- pipe.close(); |
- } |
-} |
- |
-// Encapsulates a pair of ServiceProviders that enable services (interface |
-// implementations) to be provided to a remote application as well as exposing |
-// services provided by a remote application. ApplicationConnection |
-// objects are returned by the Application ConnectToApplication() method |
-// and they're passed to the Application AcceptConnection() method. |
-// |
-// To request a service from the remote application: |
-// var proxy = applicationConnection.requestService(ViewManagerClientName); |
-// |
-// To provide a service to the remote application, specify a function that |
-// returns a service. For example: |
-// applicationConnection.provideService(ViewManagerClientName, (pipe) => |
-// new ViewManagerClientImpl(pipe)); |
-// |
-// To handle requests for any interface, set fallbackServiceFactory to a |
-// function that takes ownership of the incoming message pipe endpoint. If the |
-// fallbackServiceFactory function doesn't bind the pipe, it should close it. |
-// |
-// The fallbackServiceFactory is only used if a service wasn't specified |
-// with provideService(). |
- |
-class ApplicationConnection { |
- ServiceProviderProxy remoteServiceProvider; |
- LocalServiceProvider _localServiceProvider; |
- final _nameToServiceFactory = new Map<String, ServiceFactory>(); |
- FallbackServiceFactory _fallbackServiceFactory; |
- core.ErrorHandler onError; |
- |
- ApplicationConnection(ServiceProviderStub stub, this.remoteServiceProvider) { |
- if (stub != null) { |
- _localServiceProvider = new LocalServiceProvider(this, stub); |
- _localServiceProvider.onError = _errorHandler; |
- } |
- } |
- |
- FallbackServiceFactory get fallbackServiceFactory => _fallbackServiceFactory; |
- set fallbackServiceFactory(FallbackServiceFactory f) { |
- assert(_localServiceProvider != null); |
- _fallbackServiceFactory = f; |
- } |
- |
- bindings.ProxyBase requestService(bindings.ProxyBase proxy) { |
- assert(!proxy.impl.isBound && |
- (remoteServiceProvider != null) && |
- remoteServiceProvider.impl.isBound); |
- var pipe = new core.MojoMessagePipe(); |
- proxy.impl.bind(pipe.endpoints[0]); |
- remoteServiceProvider.ptr.connectToService(proxy.name, pipe.endpoints[1]); |
- return proxy; |
- } |
- |
- void provideService(String interfaceName, ServiceFactory factory) { |
- assert(_localServiceProvider != null); |
- _nameToServiceFactory[interfaceName] = factory; |
- } |
- |
- void _errorHandler() { |
- close().then((_) { |
- if (onError != null) onError(); |
- }); |
- } |
- |
- Future close({bool immediate: false}) { |
- var rspCloseFuture; |
- var lspCloseFuture; |
- if (remoteServiceProvider != null) { |
- rspCloseFuture = remoteServiceProvider.close(); |
- remoteServiceProvider = null; |
- } else { |
- rspCloseFuture = new Future.value(null); |
- } |
- if (_localServiceProvider != null) { |
- lspCloseFuture = _localServiceProvider.close(immediate: immediate); |
- _localServiceProvider = null; |
- } else { |
- lspCloseFuture = new Future.value(null); |
- } |
- return rspCloseFuture.then((_) => lspCloseFuture); |
- } |
-} |