// 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.

[DartPackage="_mojo_for_test_only"]
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);
};
