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_
10 #include "base/prefs/json_pref_store.h"
13 class DictionaryValue
;
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
{
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.
30 // Write the data to the backing file.
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
);
65 scoped_refptr
<JsonPrefStore
> prefs_
;
67 DISALLOW_COPY_AND_ASSIGN(ServiceProcessPrefs
);
70 #endif // CHROME_SERVICE_SERVICE_PROCESS_PREFS_H_