OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This provides a way to access the application's current preferences. | 5 // This provides a way to access the application's current preferences. |
6 | 6 |
7 #ifndef CHROME_BROWSER_PREFS_PREF_SERVICE_H_ | 7 #ifndef CHROME_BROWSER_PREFS_PREF_SERVICE_H_ |
8 #define CHROME_BROWSER_PREFS_PREF_SERVICE_H_ | 8 #define CHROME_BROWSER_PREFS_PREF_SERVICE_H_ |
9 #pragma once | 9 #pragma once |
10 | 10 |
(...skipping 20 matching lines...) Expand all Loading... |
31 class PrefMemberBase; | 31 class PrefMemberBase; |
32 }; | 32 }; |
33 | 33 |
34 class PrefService : public base::NonThreadSafe { | 34 class PrefService : public base::NonThreadSafe { |
35 public: | 35 public: |
36 // A helper class to store all the information associated with a preference. | 36 // A helper class to store all the information associated with a preference. |
37 class Preference { | 37 class Preference { |
38 public: | 38 public: |
39 | 39 |
40 // The type of the preference is determined by the type with which it is | 40 // The type of the preference is determined by the type with which it is |
41 // registered. This type needs to be a boolean, integer, real, string, | 41 // registered. This type needs to be a boolean, integer, double, string, |
42 // dictionary (a branch), or list. You shouldn't need to construct this on | 42 // dictionary (a branch), or list. You shouldn't need to construct this on |
43 // your own; use the PrefService::Register*Pref methods instead. | 43 // your own; use the PrefService::Register*Pref methods instead. |
44 Preference(const PrefService* service, | 44 Preference(const PrefService* service, |
45 const char* name, | 45 const char* name, |
46 Value::ValueType type); | 46 Value::ValueType type); |
47 ~Preference() {} | 47 ~Preference() {} |
48 | 48 |
49 // Returns the name of the Preference (i.e., the key, e.g., | 49 // Returns the name of the Preference (i.e., the key, e.g., |
50 // browser.window_placement). | 50 // browser.window_placement). |
51 const std::string name() const { return name_; } | 51 const std::string name() const { return name_; } |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 // we need to save immediately (basically, during shutdown). Otherwise, you | 135 // we need to save immediately (basically, during shutdown). Otherwise, you |
136 // should use ScheduleSavePersistentPrefs. | 136 // should use ScheduleSavePersistentPrefs. |
137 bool SavePersistentPrefs(); | 137 bool SavePersistentPrefs(); |
138 | 138 |
139 // Serializes the data and schedules save using ImportantFileWriter. | 139 // Serializes the data and schedules save using ImportantFileWriter. |
140 void ScheduleSavePersistentPrefs(); | 140 void ScheduleSavePersistentPrefs(); |
141 | 141 |
142 // Make the PrefService aware of a pref. | 142 // Make the PrefService aware of a pref. |
143 void RegisterBooleanPref(const char* path, bool default_value); | 143 void RegisterBooleanPref(const char* path, bool default_value); |
144 void RegisterIntegerPref(const char* path, int default_value); | 144 void RegisterIntegerPref(const char* path, int default_value); |
145 void RegisterRealPref(const char* path, double default_value); | 145 void RegisterDoublePref(const char* path, double default_value); |
146 void RegisterStringPref(const char* path, const std::string& default_value); | 146 void RegisterStringPref(const char* path, const std::string& default_value); |
147 void RegisterFilePathPref(const char* path, const FilePath& default_value); | 147 void RegisterFilePathPref(const char* path, const FilePath& default_value); |
148 void RegisterListPref(const char* path); | 148 void RegisterListPref(const char* path); |
149 void RegisterDictionaryPref(const char* path); | 149 void RegisterDictionaryPref(const char* path); |
150 | 150 |
151 // These variants use a default value from the locale dll instead. | 151 // These variants use a default value from the locale dll instead. |
152 void RegisterLocalizedBooleanPref(const char* path, | 152 void RegisterLocalizedBooleanPref(const char* path, |
153 int locale_default_message_id); | 153 int locale_default_message_id); |
154 void RegisterLocalizedIntegerPref(const char* path, | 154 void RegisterLocalizedIntegerPref(const char* path, |
155 int locale_default_message_id); | 155 int locale_default_message_id); |
156 void RegisterLocalizedRealPref(const char* path, | 156 void RegisterLocalizedDoublePref(const char* path, |
157 int locale_default_message_id); | 157 int locale_default_message_id); |
158 void RegisterLocalizedStringPref(const char* path, | 158 void RegisterLocalizedStringPref(const char* path, |
159 int locale_default_message_id); | 159 int locale_default_message_id); |
160 | 160 |
161 // If the path is valid and the value at the end of the path matches the type | 161 // If the path is valid and the value at the end of the path matches the type |
162 // specified, it will return the specified value. Otherwise, the default | 162 // specified, it will return the specified value. Otherwise, the default |
163 // value (set when the pref was registered) will be returned. | 163 // value (set when the pref was registered) will be returned. |
164 bool GetBoolean(const char* path) const; | 164 bool GetBoolean(const char* path) const; |
165 int GetInteger(const char* path) const; | 165 int GetInteger(const char* path) const; |
166 double GetReal(const char* path) const; | 166 double GetDouble(const char* path) const; |
167 std::string GetString(const char* path) const; | 167 std::string GetString(const char* path) const; |
168 FilePath GetFilePath(const char* path) const; | 168 FilePath GetFilePath(const char* path) const; |
169 | 169 |
170 // Returns the branch if it exists. If it's not a branch or the branch does | 170 // Returns the branch if it exists. If it's not a branch or the branch does |
171 // not exist, returns NULL. | 171 // not exist, returns NULL. |
172 const DictionaryValue* GetDictionary(const char* path) const; | 172 const DictionaryValue* GetDictionary(const char* path) const; |
173 const ListValue* GetList(const char* path) const; | 173 const ListValue* GetList(const char* path) const; |
174 | 174 |
175 // Removes a user pref and restores the pref to its default value. | 175 // Removes a user pref and restores the pref to its default value. |
176 void ClearPref(const char* path); | 176 void ClearPref(const char* path); |
177 | 177 |
178 // If the path is valid (i.e., registered), update the pref value in the user | 178 // If the path is valid (i.e., registered), update the pref value in the user |
179 // prefs. Seting a null value on a preference of List or Dictionary type is | 179 // prefs. Seting a null value on a preference of List or Dictionary type is |
180 // equivalent to removing the user value for that preference, allowing the | 180 // equivalent to removing the user value for that preference, allowing the |
181 // default value to take effect unless another value takes precedence. | 181 // default value to take effect unless another value takes precedence. |
182 void Set(const char* path, const Value& value); | 182 void Set(const char* path, const Value& value); |
183 void SetBoolean(const char* path, bool value); | 183 void SetBoolean(const char* path, bool value); |
184 void SetInteger(const char* path, int value); | 184 void SetInteger(const char* path, int value); |
185 void SetReal(const char* path, double value); | 185 void SetDouble(const char* path, double value); |
186 void SetString(const char* path, const std::string& value); | 186 void SetString(const char* path, const std::string& value); |
187 void SetFilePath(const char* path, const FilePath& value); | 187 void SetFilePath(const char* path, const FilePath& value); |
188 | 188 |
189 // Int64 helper methods that actually store the given value as a string. | 189 // Int64 helper methods that actually store the given value as a string. |
190 // Note that if obtaining the named value via GetDictionary or GetList, the | 190 // Note that if obtaining the named value via GetDictionary or GetList, the |
191 // Value type will be TYPE_STRING. | 191 // Value type will be TYPE_STRING. |
192 void SetInt64(const char* path, int64 value); | 192 void SetInt64(const char* path, int64 value); |
193 int64 GetInt64(const char* path) const; | 193 int64 GetInt64(const char* path) const; |
194 void RegisterInt64Pref(const char* path, int64 default_value); | 194 void RegisterInt64Pref(const char* path, int64 default_value); |
195 | 195 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 | 296 |
297 // Local cache of registered Preference objects. The default_store_ | 297 // Local cache of registered Preference objects. The default_store_ |
298 // is authoritative with respect to what the types and default values | 298 // is authoritative with respect to what the types and default values |
299 // of registered preferences are. | 299 // of registered preferences are. |
300 mutable PreferenceSet prefs_; | 300 mutable PreferenceSet prefs_; |
301 | 301 |
302 DISALLOW_COPY_AND_ASSIGN(PrefService); | 302 DISALLOW_COPY_AND_ASSIGN(PrefService); |
303 }; | 303 }; |
304 | 304 |
305 #endif // CHROME_BROWSER_PREFS_PREF_SERVICE_H_ | 305 #endif // CHROME_BROWSER_PREFS_PREF_SERVICE_H_ |
OLD | NEW |