| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module dart_to_cpp; |
| |
| // This struct encompasses all of the basic types, so that they |
| // may be sent from C++ to Dart and back for validation. |
| struct EchoArgs { |
| int64 si64; |
| int32 si32; |
| int16 si16; |
| int8 si8; |
| uint64 ui64; |
| uint32 ui32; |
| uint16 ui16; |
| uint8 ui8; |
| float float_val; |
| float float_inf; |
| float float_nan; |
| double double_val; |
| double double_inf; |
| double double_nan; |
| string? name; |
| array<string>? string_array; |
| handle<message_pipe>? message_handle; |
| handle<data_pipe_consumer>? data_handle; |
| }; |
| |
| struct EchoArgsList { |
| EchoArgsList? next; |
| EchoArgs? item; |
| }; |
| |
| // Note: For messages which control test flow, pick numbers that are unlikely |
| // to be hit as a result of our deliberate corruption of response messages. |
| interface CppSide { |
| // Sent for all tests to notify that the Dart side is now ready. |
| StartTest@88888888(); |
| |
| // Indicates end for echo, bit-flip, and back-pointer tests. |
| TestFinished@99999999(); |
| |
| // Responses from specific tests. |
| PingResponse(); |
| EchoResponse(EchoArgsList list); |
| }; |
| |
| interface DartSide { |
| SetClient(CppSide cppSide); |
| Ping(); |
| Echo(int32 numIterations, EchoArgs arg); |
| }; |