// 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. #ifndef MOJO_PUBLIC_CPP_BINDINGS_GENERIC_PENDING_ASSOCIATED_RECEIVER_H_ #define MOJO_PUBLIC_CPP_BINDINGS_GENERIC_PENDING_ASSOCIATED_RECEIVER_H_ #include <optional> #include <string> #include <string_view> #include "base/component_export.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/runtime_features.h" #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h" namespace mojo { // GenericPendingAssociatedReceiver encapsulates a pairing of a receiving // associated interface endpoint with the name of the mojom interface assumed by // the corresponding remote endpoint. // // This is used by mojom C++ bindings to represent // |mojo_base.mojom.GenericAssociatedPendingReceiver|, and it serves as a // semi-safe wrapper for transporting arbitrary associated interface receivers // in a generic object. // // It is intended to be used in the (relatively rare) scenario where an // interface needs to support sharing its message ordering with interfaces // defined at higher application layers, such that knowledge of those associated // interface(s) would constitute a layering violation. class COMPONENT_EXPORT(MOJO_CPP_BINDINGS) GenericPendingAssociatedReceiver { … }; } // namespace mojo #endif // MOJO_PUBLIC_CPP_BINDINGS_GENERIC_PENDING_ASSOCIATED_RECEIVER_H_