OLD | NEW |
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 'dart:async'; | 5 import 'dart:async'; |
6 | 6 |
7 import 'package:mojo/application.dart'; | 7 import 'package:mojo/application.dart'; |
8 import 'package:mojo/bindings.dart'; | 8 import 'package:mojo/bindings.dart'; |
9 import 'package:mojo/core.dart'; | 9 import 'package:mojo/core.dart'; |
10 | 10 |
(...skipping 10 matching lines...) Expand all Loading... |
21 | 21 |
22 void setClient(ProxyBase proxyBase) { | 22 void setClient(ProxyBase proxyBase) { |
23 assert(_pingPongClient == null); | 23 assert(_pingPongClient == null); |
24 _pingPongClient = proxyBase; | 24 _pingPongClient = proxyBase; |
25 } | 25 } |
26 | 26 |
27 void ping(int pingValue) => _pingPongClient.ptr.pong(pingValue + 1); | 27 void ping(int pingValue) => _pingPongClient.ptr.pong(pingValue + 1); |
28 | 28 |
29 // These methods are unimplemented; they merely throw on invocation. | 29 // These methods are unimplemented; they merely throw on invocation. |
30 Future<PingPongServicePingTargetUrlResponseParams> pingTargetUrl( | 30 Future<PingPongServicePingTargetUrlResponseParams> pingTargetUrl( |
31 String url, int count, [Function responseFactory]) => | 31 String url, int count, |
| 32 [Function responseFactory]) => |
32 throw "Unimplemented"; | 33 throw "Unimplemented"; |
33 Future<PingPongServicePingTargetServiceResponseParams> pingTargetService( | 34 Future<PingPongServicePingTargetServiceResponseParams> pingTargetService( |
34 Object service, int count, [Function responseFactory]) => | 35 Object service, int count, |
| 36 [Function responseFactory]) => |
35 throw "Unimplemented"; | 37 throw "Unimplemented"; |
36 void getPingPongService(Object service) => throw "Unimplemented"; | 38 void getPingPongService(Object service) => throw "Unimplemented"; |
37 | 39 |
38 void quit() { | 40 void quit() { |
39 if (_pingPongClient != null) { | 41 if (_pingPongClient != null) { |
40 _pingPongClient.close(); | 42 _pingPongClient.close(); |
41 _pingPongClient = null; | 43 _pingPongClient = null; |
42 } | 44 } |
43 _stub.close(); | 45 _stub.close(); |
44 } | 46 } |
45 } | 47 } |
46 | 48 |
47 class PingPongApplication extends Application { | 49 class PingPongApplication extends Application { |
48 PingPongApplication.fromHandle(MojoHandle handle) : super.fromHandle(handle); | 50 PingPongApplication.fromHandle(MojoHandle handle) : super.fromHandle(handle); |
49 | 51 |
50 @override | 52 @override |
51 void acceptConnection(String requestorUrl, String resolvedUrl, | 53 void acceptConnection(String requestorUrl, String resolvedUrl, |
52 ApplicationConnection connection) { | 54 ApplicationConnection connection) { |
53 connection.provideService(PingPongServiceName, | 55 connection.provideService(PingPongServiceName, |
54 (endpoint) => new PingPongServiceImpl(this, endpoint)); | 56 (endpoint) => new PingPongServiceImpl(this, endpoint)); |
55 // Close the application when the first connection goes down. | 57 // Close the application when the first connection goes down. |
56 connection.onError = closeApplication; | 58 connection.onError = ((_) => closeApplication()); |
57 } | 59 } |
58 | 60 |
59 Future closeApplication() async { | 61 Future closeApplication() async { |
60 await close(); | 62 await close(); |
61 MojoHandle.reportLeakedHandles(); | 63 MojoHandle.reportLeakedHandles(); |
62 } | 64 } |
63 } | 65 } |
64 | 66 |
65 main(List args) { | 67 main(List args) { |
66 MojoHandle appHandle = new MojoHandle(args[0]); | 68 MojoHandle appHandle = new MojoHandle(args[0]); |
67 String url = args[1]; | 69 String url = args[1]; |
68 new PingPongApplication.fromHandle(appHandle); | 70 new PingPongApplication.fromHandle(appHandle); |
69 } | 71 } |
OLD | NEW |