chromium/mojo/public/mojom/base/generic_pending_receiver.mojom

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module mojo_base.mojom;

// Convenience helper to wrap the pairing of a receiving pipe endpoint and the
// name of the interface expected by the remote endpoint.
//
// This should be used sparingly, in cases where APIs need to dynamically pass
// different types of receivers that cannot or should not be known at compile
// time.
//
// NOTE: This type may be exposed to external binaries, so all changes MUST
// preserve backward-compatibility.
[Stable]
struct GenericPendingReceiver {
  // The name of the interface which defines the messages to be received by
  // |receiving_pipe|.
  string interface_name@0;

  // A message pipe endpoint which is expected to receive messages defined by
  // the interface named by |interface_name| above. This should be bound to
  // an implementation of the named interface.
  handle<message_pipe> receiving_pipe@1;
};