// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_MEMORY_PRESSURE_MULTI_SOURCE_MEMORY_PRESSURE_MONITOR_H_ #define COMPONENTS_MEMORY_PRESSURE_MULTI_SOURCE_MEMORY_PRESSURE_MONITOR_H_ #include "base/memory/memory_pressure_monitor.h" #include "base/time/time.h" #include "base/timer/timer.h" #include "components/memory_pressure/memory_pressure_level_reporter.h" #include "components/memory_pressure/memory_pressure_voter.h" namespace memory_pressure { class SystemMemoryPressureEvaluator; // This is a specialization of a MemoryPressureMonitor that relies on a set of // MemoryPressureVoters to determine the memory pressure state. The // MemoryPressureVoteAggregator is in charge of receiving votes from these // voters and notifying MemoryPressureListeners of the MemoryPressureLevel via // the monitor's |dispatch_callback_|. The pressure level is calculated as the // most critical of all votes collected. // This class is not thread safe and should be used from a single sequence. class MultiSourceMemoryPressureMonitor : public base::MemoryPressureMonitor, public MemoryPressureVoteAggregator::Delegate { … }; } // namespace memory_pressure #endif // COMPONENTS_MEMORY_PRESSURE_MULTI_SOURCE_MEMORY_PRESSURE_MONITOR_H_