xref: /aosp_15_r20/external/cronet/base/android/pmf_utils.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2024 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_ANDROID_PMF_UTILS_H_
6*6777b538SAndroid Build Coastguard Worker #define BASE_ANDROID_PMF_UTILS_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include "base/files/file.h"
9*6777b538SAndroid Build Coastguard Worker #include "base/gtest_prod_util.h"
10*6777b538SAndroid Build Coastguard Worker #include "base/process/process.h"
11*6777b538SAndroid Build Coastguard Worker 
12*6777b538SAndroid Build Coastguard Worker namespace base::android {
13*6777b538SAndroid Build Coastguard Worker 
14*6777b538SAndroid Build Coastguard Worker class BASE_EXPORT PmfUtils {
15*6777b538SAndroid Build Coastguard Worker  public:
16*6777b538SAndroid Build Coastguard Worker   static std::optional<uint64_t> GetPrivateMemoryFootprintForCurrentProcess();
17*6777b538SAndroid Build Coastguard Worker 
18*6777b538SAndroid Build Coastguard Worker  private:
19*6777b538SAndroid Build Coastguard Worker   FRIEND_TEST_ALL_PREFIXES(PmfUtilsTest, CalculatePrivateMemoryFootprint);
20*6777b538SAndroid Build Coastguard Worker   static std::optional<uint64_t> CalculatePrivateMemoryFootprintForTesting(
21*6777b538SAndroid Build Coastguard Worker       base::File& statm_file,
22*6777b538SAndroid Build Coastguard Worker       base::File& status_file);
23*6777b538SAndroid Build Coastguard Worker };
24*6777b538SAndroid Build Coastguard Worker 
25*6777b538SAndroid Build Coastguard Worker }  // namespace base::android
26*6777b538SAndroid Build Coastguard Worker 
27*6777b538SAndroid Build Coastguard Worker #endif  // BASE_ANDROID_PMF_UTILS_H_
28