// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_SERVICE_SERVICE_PROCESS_PREFS_H_ #define CHROME_SERVICE_SERVICE_PROCESS_PREFS_H_ #include <string> #include "base/prefs/json_pref_store.h" namespace base { class DictionaryValue; class ListValue; class SequencedTaskRunner; } // Manages persistent preferences for the service process. This is basically a // thin wrapper around JsonPrefStore for more comfortable use. class ServiceProcessPrefs { public: // |sequenced_task_runner| must be a shutdown-blocking task runner. ServiceProcessPrefs(const base::FilePath& pref_filename, base::SequencedTaskRunner* task_runner); ~ServiceProcessPrefs(); // Read preferences from the backing file. void ReadPrefs(); // Write the data to the backing file. void WritePrefs(); // Returns a string preference for |key|. std::string GetString(const std::string& key, const std::string& default_value) const; // Set a string |value| for |key|. void SetString(const std::string& key, const std::string& value); // Returns a boolean preference for |key|. bool GetBoolean(const std::string& key, bool default_value) const; // Set a boolean |value| for |key|. void SetBoolean(const std::string& key, bool value); // Returns an int preference for |key|. int GetInt(const std::string& key, int default_value) const; // Set an int |value| for |key|. void SetInt(const std::string& key, int value); // Returns a dictionary preference for |key|. const base::DictionaryValue* GetDictionary(const std::string& key) const; // Returns a list for |key|. const base::ListValue* GetList(const std::string& key) const; // Set a |value| for |key|. void SetValue(const std::string& key, base::Value* value); // Removes the pref specified by |key|. void RemovePref(const std::string& key); private: scoped_refptr<JsonPrefStore> prefs_; DISALLOW_COPY_AND_ASSIGN(ServiceProcessPrefs); }; #endif // CHROME_SERVICE_SERVICE_PROCESS_PREFS_H_