power_data_provider.h revision 46d4c2bc3267f3f028f39e7e311b0f89aba2e4fd
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_BROWSER_POWER_PROFILER_POWER_DATA_PROVIDER_H_
6#define CONTENT_BROWSER_POWER_PROFILER_POWER_DATA_PROVIDER_H_
7
8#include <vector>
9
10#include "base/memory/scoped_ptr.h"
11#include "content/browser/power_profiler/power_event.h"
12
13namespace base {
14class TimeDelta;
15}  // namespace base
16
17namespace content {
18
19typedef std::vector<PowerEvent> PowerEventVector;
20
21// A class used to get power usage.
22class PowerDataProvider {
23 public:
24  static scoped_ptr<PowerDataProvider> Create();
25
26  PowerDataProvider() {}
27  virtual ~PowerDataProvider() {}
28
29  // Returns a vector of power events, one per type, for the types it supports.
30  virtual PowerEventVector GetData() = 0;
31
32  // Returns sampling rate at which the provider can operate.
33  virtual base::TimeDelta GetSamplingRate() = 0;
34};
35
36}  // namespace content
37
38#endif  // CONTENT_BROWSER_POWER_PROFILER_POWER_DATA_PROVIDER_H_
39