1*6777b538SAndroid Build Coastguard Worker // Copyright 2023 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_MEMINFO_DUMP_PROVIDER_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_ANDROID_MEMINFO_DUMP_PROVIDER_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "base/base_export.h" 9*6777b538SAndroid Build Coastguard Worker #include "base/no_destructor.h" 10*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h" 11*6777b538SAndroid Build Coastguard Worker #include "base/trace_event/base_tracing.h" 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker namespace base::android { 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker class BASE_EXPORT MeminfoDumpProvider 16*6777b538SAndroid Build Coastguard Worker : public base::trace_event::MemoryDumpProvider { 17*6777b538SAndroid Build Coastguard Worker public: 18*6777b538SAndroid Build Coastguard Worker // Returns the instance for testing. 19*6777b538SAndroid Build Coastguard Worker static MeminfoDumpProvider& Initialize(); 20*6777b538SAndroid Build Coastguard Worker bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, 21*6777b538SAndroid Build Coastguard Worker base::trace_event::ProcessMemoryDump* pmd) override; 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Worker static constexpr char kDumpProviderName[] = "android_meminfo"; 24*6777b538SAndroid Build Coastguard Worker static constexpr char kDumpName[] = "meminfo"; 25*6777b538SAndroid Build Coastguard Worker static constexpr char kIsStaleName[] = "is_stale"; 26*6777b538SAndroid Build Coastguard Worker static constexpr char kPssMetricName[] = "other_pss"; 27*6777b538SAndroid Build Coastguard Worker static constexpr char kPrivateDirtyMetricName[] = "other_private_dirty"; 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker private: 30*6777b538SAndroid Build Coastguard Worker friend class base::NoDestructor<MeminfoDumpProvider>; 31*6777b538SAndroid Build Coastguard Worker MeminfoDumpProvider(); 32*6777b538SAndroid Build Coastguard Worker 33*6777b538SAndroid Build Coastguard Worker base::TimeTicks last_collection_time_; 34*6777b538SAndroid Build Coastguard Worker }; 35*6777b538SAndroid Build Coastguard Worker 36*6777b538SAndroid Build Coastguard Worker } // namespace base::android 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker #endif // BASE_ANDROID_MEMINFO_DUMP_PROVIDER_H_ 39