| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_METRICS_POWER_POWER_METRICS_PROVIDER_MAC_H_ |
| #define CHROME_BROWSER_METRICS_POWER_POWER_METRICS_PROVIDER_MAC_H_ |
| |
| #include <optional> |
| |
| #include "base/threading/sequence_bound.h" |
| #include "components/metrics/metrics_provider.h" |
| |
| class PowerMetricsProvider : public metrics::MetricsProvider { |
| public: |
| PowerMetricsProvider(); |
| ~PowerMetricsProvider() override; |
| |
| PowerMetricsProvider(const PowerMetricsProvider& other) = delete; |
| PowerMetricsProvider& operator=(const PowerMetricsProvider& other) = delete; |
| |
| // metrics::MetricsProvider overrides |
| void OnRecordingEnabled() override; |
| void OnRecordingDisabled() override; |
| |
| private: |
| // Records metrics from the ThreadPool. |
| class Impl; |
| std::optional<base::SequenceBound<Impl>> impl_; |
| }; |
| |
| #endif // CHROME_BROWSER_METRICS_POWER_POWER_METRICS_PROVIDER_MAC_H_ |