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

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

Issue 958673002: Added ServiceRegistry interface (Closed) Base URL: https://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
« no previous file with comments | « services/service_registry/service_registry.mojom ('k') | sky/viewer/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:services/service_registry/service_registry.mojom.dart";
11 12
12 final _EmbedderImpl embedder = new _EmbedderImpl(); 13 final _EmbedderImpl embedder = new _EmbedderImpl();
13 14
14 class _EmbedderImpl { 15 class _EmbedderImpl {
15 ApplicationConnection _connection; 16 ApplicationConnection _connection;
17 ServiceRegistry _serviceRegistry;
16 18
17 final ShellProxy shell = new ShellProxy.fromHandle( 19 final ShellProxy shell = new ShellProxy.fromHandle(
18 new core.MojoHandle(internals.takeShellProxyHandle())); 20 new core.MojoHandle(internals.takeShellProxyHandle()));
19 21
20 ApplicationConnection get connection { 22 ApplicationConnection get connection {
21 if (_connection == null) { 23 if (_connection == null) {
22 var stubHandle = new core.MojoHandle( 24 var stubHandle =
23 internals.takeServicesProvidedToEmbedder()); 25 new core.MojoHandle(internals.takeServicesProvidedToEmbedder());
24 var proxyHandle = new core.MojoHandle( 26 var proxyHandle =
25 internals.takeServicesProvidedByEmbedder()); 27 new core.MojoHandle(internals.takeServicesProvidedByEmbedder());
26 _connection = new ApplicationConection( 28 _connection = new ApplicationConection(
27 stubHandle.isValid ? ServiceProviderStub.fromHandle(stubHandle) 29 stubHandle.isValid ? new ServiceProviderStub.fromHandle(stubHandle) : null,
28 : null; 30 proxyHandle.isValid ? new ServiceProviderProxy.fromHandle(proxyHandle) : null);
29 proxyHandle.isValid ? ServiceProviderProxy.fromHandle(proxyHandle)
30 : null;
31 );
32 } 31 }
33 return _connection; 32 return _connection;
34 } 33 }
35 34
36 ApplicationConnection connectToApplication(String url) { 35 ApplicationConnection connectToApplication(String url) {
37 var proxy = new ServiceProviderProxy.unbound(); 36 var proxy = new ServiceProviderProxy.unbound();
38 var stub = new ServiceProviderStub.unbound(); 37 var stub = new ServiceProviderStub.unbound();
39 shell.ptr.connectToApplication(url, proxy, stub); 38 shell.ptr.connectToApplication(url, proxy, stub);
40 return new ApplicationConnection(stub, proxy); 39 return new ApplicationConnection(stub, proxy);
41 } 40 }
42 41
43 void connectToService(String url, bindings.ProxyBase proxy) { 42 void connectToService(String url, bindings.ProxyBase proxy) {
44 var appSp = new ServiceProviderProxy.unbound(); 43 var appSp = new ServiceProviderProxy.unbound();
45 shell.ptr.connectToApplication(url, appSp, null); 44 shell.ptr.connectToApplication(url, appSp, null);
46 var pipe = new core.MojoMessagePipe(); 45 var pipe = new core.MojoMessagePipe();
47 proxy.impl.bind(pipe.endpoints[0]); 46 proxy.impl.bind(pipe.endpoints[0]);
48 appSp.ptr.connectToService(proxy.name, pipe.endpoints[1]); 47 appSp.ptr.connectToService(proxy.name, pipe.endpoints[1]);
49 appSp.close(); 48 appSp.close();
50 } 49 }
50
51 ServiceRegistryProxy get serviceRegistry {
52 if (_serviceRegistry == null) {
53 _serviceRegistry = new ServiceRegistryProxy.fromHandle(
54 new core.MojoHandle(internals.takeServiceRegistry()));
55 }
56 return _serviceRegistry;
57 }
51 } 58 }
52 59
60
OLDNEW
« no previous file with comments | « services/service_registry/service_registry.mojom ('k') | sky/viewer/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698