OLD | NEW |
(Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 import 'dart:async'; |
| 6 import 'dart:isolate'; |
| 7 import 'dart:typed_data'; |
| 8 |
| 9 import 'package:mojo/public/dart/utils/lib/expect.dart'; |
| 10 import 'package:mojo/public/dart/bindings/lib/bindings.dart' as bindings; |
| 11 import 'package:mojo/public/dart/system/lib/core.dart' as core; |
| 12 import 'package:mojo/public/dart/system/lib/embedder.dart' as embedder; |
| 13 |
| 14 import 'package:mojo/public/interfaces/bindings/tests/sample_interfaces.mojom.da
rt' as sample; |
| 15 |
| 16 |
| 17 class ProviderInterfaceImpl extends sample.ProviderInterface { |
| 18 ProviderInterfaceImpl(core.MojoMessagePipeEndpoint endpoint) : super(endpoint)
; |
| 19 |
| 20 Future echoString(Object params) { |
| 21 Expect.isTrue(params is sample.Provider_EchoString_Params); |
| 22 var response = new sample.Provider_EchoString_ResponseParams(); |
| 23 response.a = params.a; |
| 24 return new Future.value(response); |
| 25 } |
| 26 |
| 27 Future echoStrings(Object params) { |
| 28 Expect.isTrue(params is sample.Provider_EchoStrings_Params); |
| 29 var response = new sample.Provider_EchoStrings_ResponseParams(); |
| 30 response.a = params.a; |
| 31 response.b = params.b; |
| 32 return new Future.value(response); |
| 33 } |
| 34 |
| 35 Future echoMessagePipeHandle(Object params) { |
| 36 Expect.isTrue(params is sample.Provider_EchoMessagePipeHandle_Params); |
| 37 var response = new sample.Provider_EchoMessagePipeHandle_ResponseParams(); |
| 38 response.a = params.a; |
| 39 return new Future.value(response); |
| 40 } |
| 41 |
| 42 Future echoEnum(Object params) { |
| 43 var response = new sample.Provider_EchoEnum_ResponseParams(); |
| 44 response.a = params.a; |
| 45 return new Future.value(response); |
| 46 } |
| 47 } |
| 48 |
| 49 |
| 50 void providerIsolate(core.MojoMessagePipeEndpoint endpoint) { |
| 51 var provider = new ProviderInterfaceImpl(endpoint); |
| 52 } |
| 53 |
| 54 |
| 55 main() { |
| 56 embedder.mojoEmbedderInit().then((status) { |
| 57 var pipe = new core.MojoMessagePipe(); |
| 58 var client = new sample.ProviderClient(pipe.endpoints[0]); |
| 59 Isolate.spawn(providerIsolate, pipe.endpoints[1]).then((_) { |
| 60 client.echoString("hello!").then((response) { |
| 61 Expect.equals("hello!", response.a); |
| 62 client.close(); |
| 63 }); |
| 64 }); |
| 65 }); |
| 66 } |
OLD | NEW |