Mac Overlays: Allow multiple overlays with sandwich strategy.
[chromium-blink-merge.git] / chrome / service / service_process_prefs.h
blob237b4ede9328471e69fe1841e31ef3dd72bceaee
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.
5 #ifndef CHROME_SERVICE_SERVICE_PROCESS_PREFS_H_
6 #define CHROME_SERVICE_SERVICE_PROCESS_PREFS_H_
8 #include <string>
10 #include "base/prefs/json_pref_store.h"
12 namespace base {
13 class DictionaryValue;
14 class ListValue;
15 class SequencedTaskRunner;
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();
27 // Read preferences from the backing file.
28 void ReadPrefs();
30 // Write the data to the backing file.
31 void WritePrefs();
33 // Returns a string preference for |key|.
34 std::string GetString(const std::string& key,
35 const std::string& default_value) const;
37 // Set a string |value| for |key|.
38 void SetString(const std::string& key, const std::string& value);
40 // Returns a boolean preference for |key|.
41 bool GetBoolean(const std::string& key, bool default_value) const;
43 // Set a boolean |value| for |key|.
44 void SetBoolean(const std::string& key, bool value);
46 // Returns an int preference for |key|.
47 int GetInt(const std::string& key, int default_value) const;
49 // Set an int |value| for |key|.
50 void SetInt(const std::string& key, int value);
52 // Returns a dictionary preference for |key|.
53 const base::DictionaryValue* GetDictionary(const std::string& key) const;
55 // Returns a list for |key|.
56 const base::ListValue* GetList(const std::string& key) const;
58 // Set a |value| for |key|.
59 void SetValue(const std::string& key, scoped_ptr<base::Value> value);
61 // Removes the pref specified by |key|.
62 void RemovePref(const std::string& key);
64 private:
65 scoped_refptr<JsonPrefStore> prefs_;
67 DISALLOW_COPY_AND_ASSIGN(ServiceProcessPrefs);
70 #endif // CHROME_SERVICE_SERVICE_PROCESS_PREFS_H_