// 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);
  Quit();
};
