- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / service / service_process_prefs.h
1 // Copyright (c) 2012 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_SERVICE_SERVICE_PROCESS_PREFS_H_
6 #define CHROME_SERVICE_SERVICE_PROCESS_PREFS_H_
7
8 #include <string>
9
10 #include "base/prefs/json_pref_store.h"
11
12 namespace base {
13 class DictionaryValue;
14 class ListValue;
15 class SequencedTaskRunner;
16 }
17
18 // Manages persistent preferences for the service process. This is basically a
19 // thin wrapper around JsonPrefStore for more comfortable use.
20 class ServiceProcessPrefs {
21  public:
22   // |sequenced_task_runner| must be a shutdown-blocking task runner.
23   ServiceProcessPrefs(const base::FilePath& pref_filename,
24                       base::SequencedTaskRunner* task_runner);
25   ~ServiceProcessPrefs();
26
27   // Read preferences from the backing file.
28   void ReadPrefs();
29
30   // Write the data to the backing file.
31   void WritePrefs();
32
33   // Returns a string preference for |key|.
34   std::string GetString(const std::string& key,
35                         const std::string& default_value) const;
36
37   // Set a string |value| for |key|.
38   void SetString(const std::string& key, const std::string& value);
39
40   // Returns a boolean preference for |key|.
41   bool GetBoolean(const std::string& key, bool default_value) const;
42
43   // Set a boolean |value| for |key|.
44   void SetBoolean(const std::string& key, bool value);
45
46   // Returns an int preference for |key|.
47   int GetInt(const std::string& key, int default_value) const;
48
49   // Set an int |value| for |key|.
50   void SetInt(const std::string& key, int value);
51
52   // Returns a dictionary preference for |key|.
53   const base::DictionaryValue* GetDictionary(const std::string& key) const;
54
55   // Returns a list for |key|.
56   const base::ListValue* GetList(const std::string& key) const;
57
58   // Set a |value| for |key|.
59   void SetValue(const std::string& key, base::Value* value);
60
61   // Removes the pref specified by |key|.
62   void RemovePref(const std::string& key);
63
64  private:
65   scoped_refptr<JsonPrefStore> prefs_;
66
67   DISALLOW_COPY_AND_ASSIGN(ServiceProcessPrefs);
68 };
69
70 #endif  // CHROME_SERVICE_SERVICE_PROCESS_PREFS_H_