xref: /aosp_15_r20/external/cronet/base/fuchsia/system_info.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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