// Copyright 2016 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 IPC.mojom;

interface SimpleTestDriver {
  ExpectValue(int32 value);

  [Sync]
  GetExpectedValue() => (int32 value);

  [Sync]
  RequestValue() => (int32 value);

  RequestQuit() => ();
};

interface SimpleTestClient {
  [Sync]
  RequestValue() => (int32 value);
};

interface PingReceiver {
  Ping() => ();
};

interface IndirectTestDriver {
  GetPingReceiver(associated PingReceiver& request);
};

interface Reflector {
  Ping(string value) => (string value);
  [Sync]
  SyncPing(string value) => (string response);
  Quit();
};

interface AssociatedInterfaceVendor {
  GetTestInterface(associated SimpleTestDriver& interface_reqest);
};
