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:typed_data'; | 6 import 'dart:typed_data'; |
7 | 7 |
8 import 'package:_mojo_for_test_only/dart_to_cpp/dart_to_cpp.mojom.dart'; | 8 import 'package:_mojo_for_test_only/dart_to_cpp/dart_to_cpp.mojom.dart'; |
9 import 'package:mojo/bindings.dart' as bindings; | 9 import 'package:mojo/bindings.dart' as bindings; |
10 import 'package:mojo/core.dart' as core; | 10 import 'package:mojo/core.dart' as core; |
(...skipping 25 matching lines...) Expand all Loading... |
36 | 36 |
37 EchoArgsList createEchoArgsList(List<EchoArgs> list) { | 37 EchoArgsList createEchoArgsList(List<EchoArgs> list) { |
38 return list.fold(null, (result, arg) { | 38 return list.fold(null, (result, arg) { |
39 var element = new EchoArgsList(); | 39 var element = new EchoArgsList(); |
40 element.item = arg; | 40 element.item = arg; |
41 element.next = result; | 41 element.next = result; |
42 return element; | 42 return element; |
43 }); | 43 }); |
44 } | 44 } |
45 | 45 |
46 void setClient(bindings.ProxyBase proxy) { | 46 void setClient(bindings.Proxy proxy) { |
47 assert(cppSide == null); | 47 assert(cppSide == null); |
48 cppSide = proxy; | 48 cppSide = proxy; |
49 cppSide.ptr.startTest(); | 49 cppSide.startTest(); |
50 } | 50 } |
51 | 51 |
52 void ping() { | 52 void ping() { |
53 cppSide.ptr.pingResponse(); | 53 cppSide.pingResponse(); |
54 _completer.complete(null); | 54 _completer.complete(null); |
55 cppSide.close(); | 55 cppSide.close(); |
56 } | 56 } |
57 | 57 |
58 void echo(int numIterations, EchoArgs arg) { | 58 void echo(int numIterations, EchoArgs arg) { |
59 if (arg.si64 > 0) { | 59 if (arg.si64 > 0) { |
60 arg.si64 = BAD_VALUE; | 60 arg.si64 = BAD_VALUE; |
61 } | 61 } |
62 if (arg.si32 > 0) { | 62 if (arg.si32 > 0) { |
63 arg.si32 = BAD_VALUE; | 63 arg.si32 = BAD_VALUE; |
(...skipping 21 matching lines...) Expand all Loading... |
85 specialArg.si8 = -1; | 85 specialArg.si8 = -1; |
86 specialArg.name = 'going'; | 86 specialArg.name = 'going'; |
87 specialArg.dataHandle = dataPipe2.consumer; | 87 specialArg.dataHandle = dataPipe2.consumer; |
88 specialArg.messageHandle = messagePipe2.endpoints[0]; | 88 specialArg.messageHandle = messagePipe2.endpoints[0]; |
89 | 89 |
90 dataPipe1.producer.write(_sampleData.buffer.asByteData()); | 90 dataPipe1.producer.write(_sampleData.buffer.asByteData()); |
91 dataPipe2.producer.write(_sampleData.buffer.asByteData()); | 91 dataPipe2.producer.write(_sampleData.buffer.asByteData()); |
92 messagePipe1.endpoints[1].write(_sampleMessage.buffer.asByteData()); | 92 messagePipe1.endpoints[1].write(_sampleMessage.buffer.asByteData()); |
93 messagePipe2.endpoints[1].write(_sampleMessage.buffer.asByteData()); | 93 messagePipe2.endpoints[1].write(_sampleMessage.buffer.asByteData()); |
94 | 94 |
95 cppSide.ptr.echoResponse(createEchoArgsList([arg, specialArg])); | 95 cppSide.echoResponse(createEchoArgsList([arg, specialArg])); |
96 | 96 |
97 dataPipe1.producer.handle.close(); | 97 dataPipe1.producer.handle.close(); |
98 dataPipe2.producer.handle.close(); | 98 dataPipe2.producer.handle.close(); |
99 messagePipe1.endpoints[1].handle.close(); | 99 messagePipe1.endpoints[1].handle.close(); |
100 messagePipe2.endpoints[1].handle.close(); | 100 messagePipe2.endpoints[1].handle.close(); |
101 } | 101 } |
102 cppSide.ptr.testFinished(); | 102 cppSide.testFinished(); |
103 _completer.complete(null); | 103 _completer.complete(null); |
104 cppSide.close(); | 104 cppSide.close(); |
105 } | 105 } |
106 | 106 |
107 Future<bool> get future => _completer.future; | 107 Future<bool> get future => _completer.future; |
108 } | 108 } |
109 | 109 |
110 main(List args, Object handleToken) { | 110 main(List args, Object handleToken) { |
111 var rawHandle = new core.MojoHandle(handleToken); | 111 var rawHandle = new core.MojoHandle(handleToken); |
112 var endpoint = new core.MojoMessagePipeEndpoint(rawHandle); | 112 var endpoint = new core.MojoMessagePipeEndpoint(rawHandle); |
113 var dartSide = new DartSideImpl(endpoint); | 113 var dartSide = new DartSideImpl(endpoint); |
114 dartSide.future.then((_) { | 114 dartSide.future.then((_) { |
115 print('Success'); | 115 print('Success'); |
116 }); | 116 }); |
117 } | 117 } |
OLD | NEW |