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