// Copyright 2023 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_FUCHSIA_FUCHSIA_COMPONENT_CONNECT_H_ #define BASE_FUCHSIA_FUCHSIA_COMPONENT_CONNECT_H_ #include #include #include #include #include #include "base/base_export.h" #include "base/fuchsia/process_context.h" // This namespace is designed to be consistent with the `component::Connect` // calls used within Fuchsia. Consistency keeps Fuchsia documentation more // relevant for developers working on Chromium as well as creating less mental // overhead when working in both domains. See go/natural-component-context for // more details (Googlers only). namespace base::fuchsia_component { template >> BASE_EXPORT zx::result<> Connect( fidl::ServerEnd server_end, std::string name = fidl::DiscoverableProtocolName) { return component::ConnectAt( base::BorrowIncomingServiceDirectoryForProcess(), std::move(server_end), name); } template >> BASE_EXPORT zx::result> Connect( std::string name = fidl::DiscoverableProtocolName) { return component::ConnectAt( base::BorrowIncomingServiceDirectoryForProcess(), name); } template >> BASE_EXPORT zx::result> ConnectAt( fidl::UnownedClientEnd service_directory, std::string name = fidl::DiscoverableProtocolName) { return component::ConnectAt(service_directory, name); } } // namespace base::fuchsia_component #endif // BASE_FUCHSIA_FUCHSIA_COMPONENT_CONNECT_H_