1*6777b538SAndroid Build Coastguard Worker // Copyright 2022 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_SYSTEM_INFO_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_FUCHSIA_SYSTEM_INFO_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "base/base_export.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace fuchsia_buildinfo { 11*6777b538SAndroid Build Coastguard Worker class BuildInfo; 12*6777b538SAndroid Build Coastguard Worker } 13*6777b538SAndroid Build Coastguard Worker namespace fuchsia_hwinfo { 14*6777b538SAndroid Build Coastguard Worker class ProductInfo; 15*6777b538SAndroid Build Coastguard Worker } 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker namespace base { 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker // Makes a blocking call to fetch the info from the system and caches it 20*6777b538SAndroid Build Coastguard Worker // before returning. Must be called in each process during the initialization 21*6777b538SAndroid Build Coastguard Worker // phase. 22*6777b538SAndroid Build Coastguard Worker // Returns whether the system info was successfully cached. 23*6777b538SAndroid Build Coastguard Worker [[nodiscard]] BASE_EXPORT bool FetchAndCacheSystemInfo(); 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker // Returns the cached build info. 26*6777b538SAndroid Build Coastguard Worker BASE_EXPORT const fuchsia_buildinfo::BuildInfo& GetCachedBuildInfo(); 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker // Synchronously fetches the system ProductInfo. 29*6777b538SAndroid Build Coastguard Worker // Returns empty ProductInfo if the required service is unavailable or returns 30*6777b538SAndroid Build Coastguard Worker // an error. 31*6777b538SAndroid Build Coastguard Worker BASE_EXPORT fuchsia_hwinfo::ProductInfo GetProductInfo(); 32*6777b538SAndroid Build Coastguard Worker 33*6777b538SAndroid Build Coastguard Worker // Resets the cached system info to empty so that 34*6777b538SAndroid Build Coastguard Worker // FetchAndCacheSystemInfo() can be called again in this process. 35*6777b538SAndroid Build Coastguard Worker BASE_EXPORT void ClearCachedSystemInfoForTesting(); 36*6777b538SAndroid Build Coastguard Worker 37*6777b538SAndroid Build Coastguard Worker } // namespace base 38*6777b538SAndroid Build Coastguard Worker 39*6777b538SAndroid Build Coastguard Worker #endif // BASE_FUCHSIA_SYSTEM_INFO_H_ 40