1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// found in the LICENSE file. 4effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#ifndef CONTENT_BROWSER_POWER_PROFILER_POWER_DATA_PROVIDER_IA_WIN_H_ 6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#define CONTENT_BROWSER_POWER_PROFILER_POWER_DATA_PROVIDER_IA_WIN_H_ 7effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "content/browser/power_profiler/power_data_provider.h" 9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "third_party/power_gadget/PowerGadgetLib.h" 10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace content { 12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// A class used to get power usage via Power Gadget API. 14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass PowerDataProviderIA : public PowerDataProvider { 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch public: 16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch PowerDataProviderIA(); 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual ~PowerDataProviderIA(); 19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch bool Initialize(); 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual PowerEventVector GetData() OVERRIDE; 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual base::TimeDelta GetSamplingRate() OVERRIDE; 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual AccuracyLevel GetAccuracyLevel() OVERRIDE { return High; } 24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch private: 26effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch CIntelPowerGadgetLib energy_lib_; 27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch int sockets_number_; 29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch int power_msr_ids_[PowerEvent::ID_COUNT]; 30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch bool is_open_; 31effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch DISALLOW_COPY_AND_ASSIGN(PowerDataProviderIA); 32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}; 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} // namespace content 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#endif // CONTENT_BROWSER_POWER_PROFILER_POWER_DATA_PROVIDER_IA_WIN_H_ 37