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_IA_WIN_H_
6#define CONTENT_BROWSER_POWER_PROFILER_POWER_DATA_PROVIDER_IA_WIN_H_
7
8#include "content/browser/power_profiler/power_data_provider.h"
9#include "third_party/power_gadget/PowerGadgetLib.h"
10
11namespace content {
12
13// A class used to get power usage via Power Gadget API.
14class PowerDataProviderIA : public PowerDataProvider {
15 public:
16  PowerDataProviderIA();
17
18  virtual ~PowerDataProviderIA();
19
20  bool Initialize();
21  virtual PowerEventVector GetData() OVERRIDE;
22  virtual base::TimeDelta GetSamplingRate() OVERRIDE;
23  virtual AccuracyLevel GetAccuracyLevel() OVERRIDE { return High; }
24
25 private:
26  CIntelPowerGadgetLib energy_lib_;
27
28  int sockets_number_;
29  int power_msr_ids_[PowerEvent::ID_COUNT];
30  bool is_open_;
31  DISALLOW_COPY_AND_ASSIGN(PowerDataProviderIA);
32};
33
34}  // namespace content
35
36#endif  // CONTENT_BROWSER_POWER_PROFILER_POWER_DATA_PROVIDER_IA_WIN_H_
37