1a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch// found in the LICENSE file.
4a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
5a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch#include "chrome/browser/extensions/api/system_memory/system_memory_api.h"
6a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
7a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch#include "chrome/browser/extensions/api/system_memory/memory_info_provider.h"
8a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
9a3f7b4e666c476898878fa745f637129375cd889Ben Murdochnamespace extensions {
10a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
11a3f7b4e666c476898878fa745f637129375cd889Ben Murdochusing api::system_memory::MemoryInfo;
12a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
13a3f7b4e666c476898878fa745f637129375cd889Ben MurdochSystemMemoryGetInfoFunction::SystemMemoryGetInfoFunction() {}
14a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
15a3f7b4e666c476898878fa745f637129375cd889Ben MurdochSystemMemoryGetInfoFunction::~SystemMemoryGetInfoFunction() {}
16a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
17a3f7b4e666c476898878fa745f637129375cd889Ben Murdochbool SystemMemoryGetInfoFunction::RunImpl() {
18a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  MemoryInfoProvider::Get()->StartQueryInfo(
19a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch      base::Bind(&SystemMemoryGetInfoFunction::OnGetMemoryInfoCompleted, this));
20a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  return true;
21a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch}
22a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
23a3f7b4e666c476898878fa745f637129375cd889Ben Murdochvoid SystemMemoryGetInfoFunction::OnGetMemoryInfoCompleted(bool success) {
24a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  if (success)
25a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch    SetResult(MemoryInfoProvider::Get()->memory_info().ToValue().release());
26a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  else
27a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch    SetError("Error occurred when querying memory information.");
28a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  SendResponse(success);
29a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch}
30a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
31a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch}  // namespace extensions
32