// 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/mojom/base/read_only_buffer.mojom";
import "mojo/public/interfaces/bindings/native_struct.mojom";

// A placeholder interface type since we don't yet support generic associated
// message pipe handles.
interface GenericInterface {};

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.
  Receive(mojo_base.mojom.ReadOnlyBuffer data,
          array<mojo.native.SerializedHandle>? handles);

  // Requests a Channel-associated interface.
  GetAssociatedInterface(string name, associated GenericInterface& request);
};

// A strictly nominal interface used to identify Channel bootstrap requests.
interface ChannelBootstrap {};

