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

Side by Side Diff: sky/framework/embedder.dart

Issue 968243003: Dart: Adds optional named arguments for creating bindings. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import "/mojo/public/dart/application.dart"; 5 import "/mojo/public/dart/application.dart";
6 import "dart:sky.internals" as internals; 6 import "dart:sky.internals" as internals;
7 import "mojo:bindings" as bindings; 7 import "mojo:bindings" as bindings;
8 import "mojo:core" as core; 8 import "mojo:core" as core;
9 import "package:mojo/public/interfaces/application/service_provider.mojom.dart"; 9 import "package:mojo/public/interfaces/application/service_provider.mojom.dart";
10 import "package:mojo/public/interfaces/application/shell.mojom.dart"; 10 import "package:mojo/public/interfaces/application/shell.mojom.dart";
11 import "package:mojo/services/service_registry/public/interfaces/service_registr y.mojom.dart"; 11 import "package:mojo/services/service_registry/public/interfaces/service_registr y.mojom.dart";
12 12
13 final _EmbedderImpl embedder = new _EmbedderImpl(); 13 final _EmbedderImpl embedder = new _EmbedderImpl();
14 14
15 class _EmbedderImpl { 15 class _EmbedderImpl {
16 ApplicationConnection _connection; 16 ApplicationConnection _connection;
17 ServiceRegistry _serviceRegistry; 17 ServiceRegistry _serviceRegistry;
18 18
19 final ShellProxy shell = new ShellProxy.fromHandle( 19 final ShellProxy shell = new ShellProxy.fromHandle(
20 new core.MojoHandle(internals.takeShellProxyHandle())); 20 new core.MojoHandle(internals.takeShellProxyHandle()));
21 21
22 ApplicationConnection get connection { 22 ApplicationConnection get connection {
23 if (_connection == null) { 23 if (_connection == null) {
24 var stubHandle = 24 var stubHandle =
25 new core.MojoHandle(internals.takeServicesProvidedToEmbedder()); 25 new core.MojoHandle(internals.takeServicesProvidedToEmbedder());
26 var proxyHandle = 26 var proxyHandle =
27 new core.MojoHandle(internals.takeServicesProvidedByEmbedder()); 27 new core.MojoHandle(internals.takeServicesProvidedByEmbedder());
28 _connection = new ApplicationConection( 28 _connection = new ApplicationConection(
29 stubHandle.isValid ? new ServiceProviderStub.fromHandle(stubHandle) : null, 29 stubHandle.isValid ? new ServiceProviderBinding.fromHandle(stubHandle) : null,
30 proxyHandle.isValid ? new ServiceProviderProxy.fromHandle(proxyHandle) : null); 30 proxyHandle.isValid ? new ServiceProviderProxy.fromHandle(proxyHandle) : null);
31 } 31 }
32 return _connection; 32 return _connection;
33 } 33 }
34 34
35 ApplicationConnection connectToApplication(String url) { 35 ApplicationConnection connectToApplication(String url) {
36 var proxy = new ServiceProviderProxy.unbound(); 36 var proxy = new ServiceProviderProxy.unbound();
37 var stub = new ServiceProviderStub.unbound(); 37 var binding = new ServiceProviderBinding.unbound();
hansmuller1 2015/03/02 20:42:18 Calling the stub class a "binding" has its merits.
38 shell.ptr.connectToApplication(url, proxy, stub); 38 shell.ptr.connectToApplication(url, proxy, binding);
39 return new ApplicationConnection(stub, proxy); 39 return new ApplicationConnection(binding, proxy);
40 } 40 }
41 41
42 void connectToService(String url, bindings.ProxyBase proxy) { 42 void connectToService(String url, bindings.ProxyBase proxy) {
43 var appSp = new ServiceProviderProxy.unbound(); 43 var appSp = new ServiceProviderProxy.unbound();
44 shell.ptr.connectToApplication(url, appSp, null); 44 shell.ptr.connectToApplication(url, appSp, null);
45 var pipe = new core.MojoMessagePipe(); 45 var pipe = new core.MojoMessagePipe();
46 proxy.impl.bind(pipe.endpoints[0]); 46 proxy.impl.bind(pipe.endpoints[0]);
47 appSp.ptr.connectToService(proxy.name, pipe.endpoints[1]); 47 appSp.ptr.connectToService(proxy.name, pipe.endpoints[1]);
48 appSp.close(); 48 appSp.close();
49 } 49 }
50 50
51 ServiceRegistryProxy get serviceRegistry { 51 ServiceRegistryProxy get serviceRegistry {
52 if (_serviceRegistry == null) { 52 if (_serviceRegistry == null) {
53 _serviceRegistry = new ServiceRegistryProxy.fromHandle( 53 _serviceRegistry = new ServiceRegistryProxy.fromHandle(
54 new core.MojoHandle(internals.takeServiceRegistry())); 54 new core.MojoHandle(internals.takeServiceRegistry()));
55 } 55 }
56 return _serviceRegistry; 56 return _serviceRegistry;
57 } 57 }
58 } 58 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698