// Copyright 2023 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_PERFORMANCE_MANAGER_PUBLIC_RESOURCE_ATTRIBUTION_CPU_MEASUREMENT_DELEGATE_H_ #define COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_RESOURCE_ATTRIBUTION_CPU_MEASUREMENT_DELEGATE_H_ #include <memory> #include "base/process/process_metrics.h" #include "base/time/time.h" #include "base/types/expected.h" namespace performance_manager { class Graph; class ProcessNode; } // namespace performance_manager namespace resource_attribution { // A shim that Resource Attribution queries use to request CPU measurements for // a process. A new CPUMeasurementDelegate object will be created for each // ProcessNode to be measured. Public so that users of the API can inject a test // override by passing a factory object to SetDelegateFactoryForTesting(). class CPUMeasurementDelegate { … }; class CPUMeasurementDelegate::Factory { … }; } // namespace resource_attribution #endif // COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_RESOURCE_ATTRIBUTION_CPU_MEASUREMENT_DELEGATE_H_