OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 import 'dart:isolate'; | 6 import 'dart:isolate'; |
7 | 7 |
8 import 'package:mojo/public/dart/core.dart' as core; | 8 import 'package:mojo/core.dart' as core; |
9 | 9 |
10 main() { | 10 main() { |
11 var pipe = new core.MojoMessagePipe(); | 11 var pipe = new core.MojoMessagePipe(); |
12 assert(pipe != null); | 12 assert(pipe != null); |
13 | 13 |
14 var endpoint = pipe.endpoints[0]; | 14 var endpoint = pipe.endpoints[0]; |
15 assert(endpoint.handle.isValid); | 15 assert(endpoint.handle.isValid); |
16 | 16 |
17 var eventStream = new core.MojoEventStream(endpoint.handle); | 17 var eventStream = new core.MojoEventStream(endpoint.handle); |
18 var completer = new Completer(); | 18 var completer = new Completer(); |
19 int numEvents = 0; | 19 int numEvents = 0; |
20 | 20 |
21 eventStream.listen((_) { | 21 eventStream.listen((_) { |
22 numEvents++; | 22 numEvents++; |
23 eventStream.close(); | 23 eventStream.close(); |
24 }, onDone: () { | 24 }, onDone: () { |
25 completer.complete(numEvents); | 25 completer.complete(numEvents); |
26 }); | 26 }); |
27 eventStream.enableWriteEvents(); | 27 eventStream.enableWriteEvents(); |
28 | 28 |
29 completer.future.then((int numEvents) { | 29 completer.future.then((int numEvents) { |
30 assert(numEvents == 1); | 30 assert(numEvents == 1); |
31 }); | 31 }); |
32 } | 32 } |
OLD | NEW |