1*6777b538SAndroid Build Coastguard Worker // Copyright 2020 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_FUCHSIA_PROCESS_CONTEXT_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_FUCHSIA_PROCESS_CONTEXT_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <fidl/fuchsia.io/cpp/fidl.h> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include <memory> 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker #include "base/base_export.h" 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker namespace sys { 15*6777b538SAndroid Build Coastguard Worker class ComponentContext; 16*6777b538SAndroid Build Coastguard Worker } // namespace sys 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker namespace base { 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Worker // Returns default sys::ComponentContext for the current process. 21*6777b538SAndroid Build Coastguard Worker BASE_EXPORT sys::ComponentContext* ComponentContextForProcess(); 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Worker // Returns the ClientEnd for the default service directory in this process 24*6777b538SAndroid Build Coastguard Worker // `ComponentContextForProcess()->svc()`. This can be passed to 25*6777b538SAndroid Build Coastguard Worker // `component::ConnectAt` in order to connect a client to a service in this 26*6777b538SAndroid Build Coastguard Worker // directory. 27*6777b538SAndroid Build Coastguard Worker BASE_EXPORT fidl::UnownedClientEnd<fuchsia_io::Directory> 28*6777b538SAndroid Build Coastguard Worker BorrowIncomingServiceDirectoryForProcess(); 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker // Replaces the default sys::ComponentContext for the current process, and 31*6777b538SAndroid Build Coastguard Worker // returns the previously-active one. 32*6777b538SAndroid Build Coastguard Worker // Use the base::TestComponentContextForProcess rather than calling this 33*6777b538SAndroid Build Coastguard Worker // directly. 34*6777b538SAndroid Build Coastguard Worker BASE_EXPORT std::unique_ptr<sys::ComponentContext> 35*6777b538SAndroid Build Coastguard Worker ReplaceComponentContextForProcessForTest( 36*6777b538SAndroid Build Coastguard Worker std::unique_ptr<sys::ComponentContext> context); 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker } // namespace base 39*6777b538SAndroid Build Coastguard Worker 40*6777b538SAndroid Build Coastguard Worker #endif // BASE_FUCHSIA_PROCESS_CONTEXT_H_ 41