blob: 6a1fe4aad0ea08e1cdb49671a9fdf8b74f44ac30 [file] [log] [blame]
// 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);
};