chromium/mojo/public/mojom/base/generic_pending_associated_receiver.mojom

// Copyright 2021 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 associated interface
// 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 asspcoated receivers that cannot or should not be known at
// compile time.
struct GenericPendingAssociatedReceiver {
  // The name of the interface which defines the messages to be received by
  // `receiver`.
  string interface_name;

  // A generic associated interface receiver which is actually expected to
  // receive messages defined by the interface named by `interface_name` above.
  pending_associated_receiver<GenericAssociatedInterface> receiver;
};

// A generic placeholder interface for the associated endpoint to be passed by a
// GenericPendingAssociatedReceiver.
interface GenericAssociatedInterface {};