chromium/components/performance_manager/public/resource_attribution/cpu_measurement_delegate.h

// 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_