// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SERVICES_DEVICE_COMPUTE_PRESSURE_CPU_PROBE_MANAGER_H_ #define SERVICES_DEVICE_COMPUTE_PRESSURE_CPU_PROBE_MANAGER_H_ #include <memory> #include "base/functional/callback_forward.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/thread_annotations.h" #include "base/time/time.h" #include "base/timer/timer.h" #include "components/system_cpu/cpu_sample.h" #include "services/device/public/mojom/pressure_update.mojom-shared.h" namespace system_cpu { class CpuProbe; } namespace device { // Interface for retrieving the compute pressure state for CPU from the // underlying OS at regular intervals. // // This class uses system_cpu::CpuProbe to get CPU samples. Instances maintain a // CpuProbe and a timer, so that at each time interval CpuProbe::RequestSample // is called to get the CPU pressure state since the last sample. // // Instances are not thread-safe and should be used on the same sequence. // // The instance is owned by a PressureManagerImpl. class CpuProbeManager { … }; } // namespace device #endif // SERVICES_DEVICE_COMPUTE_PRESSURE_CPU_PROBE_MANAGER_H_