19ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/command_line.h"
69ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "chrome/browser/extensions/api/system_cpu/cpu_info_provider.h"
79ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "chrome/browser/extensions/api/system_cpu/system_cpu_api.h"
8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "chrome/common/chrome_switches.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "chrome/common/extensions/features/base_feature_provider.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
139ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochusing api::system_cpu::CpuInfo;
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
159ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben MurdochSystemCpuGetInfoFunction::SystemCpuGetInfoFunction() {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
189ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben MurdochSystemCpuGetInfoFunction::~SystemCpuGetInfoFunction() {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
219ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochbool SystemCpuGetInfoFunction::RunImpl() {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CpuInfoProvider::Get()->StartQueryInfo(
239ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch      base::Bind(&SystemCpuGetInfoFunction::OnGetCpuInfoCompleted, this));
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
279ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochvoid SystemCpuGetInfoFunction::OnGetCpuInfoCompleted(bool success) {
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (success)
297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    SetResult(CpuInfoProvider::Get()->cpu_info().ToValue().release());
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  else
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SetError("Error occurred when querying cpu information.");
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SendResponse(success);
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace extensions
36