1// Copyright 2016 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
5module IPC.mojom;
6
7interface SimpleTestDriver {
8  ExpectValue(int32 value);
9
10  [Sync]
11  GetExpectedValue() => (int32 value);
12
13  [Sync]
14  RequestValue() => (int32 value);
15
16  RequestQuit() => ();
17};
18
19interface SimpleTestClient {
20  [Sync]
21  RequestValue() => (int32 value);
22};
23
24interface PingReceiver {
25  Ping() => ();
26};
27
28struct TestStruct {};
29
30interface TestStructPasser {
31  Pass(TestStruct s);
32};
33
34interface IndirectTestDriver {
35  GetPingReceiver(pending_associated_receiver<PingReceiver> receiver);
36};
37
38interface Reflector {
39  Ping(string value) => (string value);
40  [Sync]
41  SyncPing(string value) => (string response);
42  Quit();
43};
44
45interface AssociatedInterfaceVendor {
46  GetTestInterface(pending_associated_receiver<SimpleTestDriver> receiver);
47};
48
49interface InterfacePassingTestDriver {
50  Init() => ();
51  GetPingReceiver(array<pending_receiver<PingReceiver>> receiver) => ();
52  GetAssociatedPingReceiver(
53      array<pending_associated_receiver<PingReceiver>> receiver) => ();
54  Quit();
55};
56