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

import "mojo/public/interfaces/bindings/native_struct.mojom";
import "mojo/public/mojom/base/generic_pending_associated_receiver.mojom";

// Typemapped such that arbitrarily large IPC::Message objects can be sent and
// received with minimal copying.
struct Message {
  array<uint8> bytes;
  array<mojo.native.SerializedHandle>? handles;
};

interface Channel {
  // Informs the remote end of this client's PID. Must be called exactly once,
  // before any calls to Receive() below.
  SetPeerPid(int32 pid);

  // Transmits a classical Chrome IPC message.
  [UnlimitedSize]
  Receive(Message message);

  // Requests a Channel-associated interface.
  GetAssociatedInterface(
      mojo_base.mojom.GenericPendingAssociatedReceiver receiver);
};

// A strictly nominal interface used to identify Channel bootstrap requests.
// This is only used in `AgentSchedulingGroup` initialization.
interface ChannelBootstrap {};

