blob: 851d59127a531b6fc370bf7ece9f9ac54a3f1a17 [file] [log] [blame]
module js_to_cpp {
// This struct encompasses all of the basic types, so that they
// may be sent from C++ to JS 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;
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 JS 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);
BitFlipResponse(EchoArgsList arg);
BackPointerResponse(EchoArgsList arg);
};
[Client=CppSide]
interface JsSide {
Ping();
Echo(int32 numIterations, EchoArgs arg);
BitFlip(EchoArgs arg);
BackPointer(EchoArgs arg);
};
}