Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(537)

Unified Diff: mojo/public/dart/src/service_provider.dart

Issue 934253003: Dart Bindings: ApplicationConnection (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Changes per review feedback Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/dart/src/application_connection.dart ('k') | services/dart/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/dart/src/service_provider.dart
diff --git a/mojo/public/dart/src/service_provider.dart b/mojo/public/dart/src/service_provider.dart
deleted file mode 100644
index 9b1ea44f8b2dfc684bea443b999b4bfbf27a4d8f..0000000000000000000000000000000000000000
--- a/mojo/public/dart/src/service_provider.dart
+++ /dev/null
@@ -1,77 +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 core.Listener InterfaceFactory(core.MojoMessagePipeEndpoint endpoint);
-typedef void FallbackInterfaceFactory(
- String interfaceName, core.MojoMessagePipeEndpoint endpoint);
-
-// ServiceProvider implementation used to provide services to a remote
-// application. Register a factory for service creation using either of the
-// following:
-// 1. When you know the interface use registerFactory(), e.g.
-// serviceProvider.registerFactory(ViewManagerClient.name, (pipe) =>
-// new ViewManagerClientImpl(pipe));
-// 2. To handle requests for any interface set the FallbackFactory. The
-// FallbackFactory is passed the name of the requested interface.
-//
-// If a factory has been registered based on the name, it is used. If the
-// factory returned null or there is no registered factory then the
-// fallbackFactory is used. The fallbackFactory does not return a type; the
-// factory takes ownership and if it does not want to use the pipe it must
-// call close().
-class ServiceProvider extends service_provider.ServiceProvider {
- FallbackInterfaceFactory fallbackFactory;
-
- service_provider.ServiceProviderProxy _proxy;
-
- Map<String, InterfaceFactory> _interfaceFactories;
-
- ServiceProvider(
- service_provider.ServiceProviderStub services,
- [service_provider.ServiceProviderProxy exposedServices = null])
- : _proxy = exposedServices,
- _interfaceFactories = new Map(),
- super.fromStub(services) {
- delegate = this;
- }
-
- connectToService(String interfaceName, core.MojoMessagePipeEndpoint pipe) {
- if (_interfaceFactories.containsKey(interfaceName)) {
- var listener = _interfaceFactories[interfaceName](pipe);
- if (listener != null) {
- listener.listen();
- return;
- }
- }
- if (fallbackFactory != null) {
- fallbackFactory(interfaceName, pipe);
- return;
- }
- // If we get here the interface isn't known. This is legal. Close the pipe
- // so the remote side sees we don't support this interface.
- pipe.handle.close();
- }
-
- requestService(String name, bindings.Proxy clientImpl) {
- assert(_proxy != null);
- assert(!clientImpl.isBound);
- var pipe = new core.MojoMessagePipe();
- clientImpl.bind(pipe.endpoints[0]);
- _proxy.connectToService(name, pipe.endpoints[1]);
- }
-
- registerFactory(String interfaceName, InterfaceFactory factory) {
- _interfaceFactories[interfaceName] = factory;
- }
-
- close({bool nodefer : false}) {
- if (_proxy != null) {
- _proxy.close();
- _proxy = null;
- }
- super.close(nodefer: nodefer);
- }
-}
« no previous file with comments | « mojo/public/dart/src/application_connection.dart ('k') | services/dart/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698