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

// NOTE: This MUST match the value of MSG_ROUTING_NONE in src/ipc/ipc_message.h.
const int32 kRoutingIdNone = -2;

struct SerializedHandle {
  handle the_handle;

  enum Type {
    MOJO_HANDLE,
    PLATFORM_FILE,
    WIN_HANDLE,
    MACH_PORT,
    FUCHSIA_HANDLE,
  };

  Type type;
};

// 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(array<uint8> data, array<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 {};
