1// Copyright (c) 2011 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 CHROME_BROWSER_CHROMEOS_EXTENSIONS_INFO_PRIVATE_API_H_
6#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_INFO_PRIVATE_API_H_
7
8#include <string>
9
10#include "base/compiler_specific.h"
11#include "extensions/browser/extension_function.h"
12
13namespace base {
14class Value;
15}
16
17namespace extensions {
18
19class ChromeosInfoPrivateGetFunction : public AsyncExtensionFunction {
20 public:
21  ChromeosInfoPrivateGetFunction();
22
23 protected:
24  virtual ~ChromeosInfoPrivateGetFunction();
25
26  virtual bool RunAsync() OVERRIDE;
27
28 private:
29  // Returns a newly allocate value, or null.
30  base::Value* GetValue(const std::string& property_name);
31
32  // Gets boolean |pref| value from PrefService.
33  bool GetBooleanPrefValue(const char* pref);
34
35  DECLARE_EXTENSION_FUNCTION("chromeosInfoPrivate.get", CHROMEOSINFOPRIVATE_GET)
36};
37
38class ChromeosInfoPrivateSetFunction : public SyncExtensionFunction {
39 public:
40  ChromeosInfoPrivateSetFunction();
41
42 protected:
43  virtual ~ChromeosInfoPrivateSetFunction();
44
45  virtual bool RunSync() OVERRIDE;
46
47 private:
48  DECLARE_EXTENSION_FUNCTION("chromeosInfoPrivate.set", CHROMEOSINFOPRIVATE_SET)
49};
50
51
52}  // namespace extensions
53
54#endif  // CHROME_BROWSER_CHROMEOS_EXTENSIONS_INFO_PRIVATE_API_H_
55