// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_INTERFACE_PROVIDER_H_ #define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_INTERFACE_PROVIDER_H_ #include "base/functional/bind.h" #include "base/memory/raw_ptr.h" #include "base/task/sequenced_task_runner.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/service_manager/public/cpp/export.h" #include "services/service_manager/public/mojom/interface_provider.mojom.h" namespace service_manager { // Encapsulates a mojo::PendingRemote|Remote<mojom::InterfaceProvider> // implemented in a remote application. Provides two main features: // - a typesafe GetInterface() method for binding Interface remotes. // - a testing API that allows local callbacks to be registered that bind // requests for remote interfaces. // An instance of this class is used by the GetInterface() methods on // Connection. class SERVICE_MANAGER_PUBLIC_CPP_EXPORT InterfaceProvider { … }; } // namespace service_manager #endif // SERVICES_SERVICE_MANAGER_PUBLIC_CPP_INTERFACE_PROVIDER_H_