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 #include "base/prefs/pref_registry_simple.h"
7 #include "base/files/file_path.h"
8 #include "base/strings/string_number_conversions.h"
9 #include "base/values.h"
11 PrefRegistrySimple::PrefRegistrySimple() {
14 PrefRegistrySimple::~PrefRegistrySimple() {
17 void PrefRegistrySimple::RegisterBooleanPref(const std::string
& path
,
19 RegisterPrefAndNotify(path
, new base::FundamentalValue(default_value
),
20 NO_REGISTRATION_FLAGS
);
23 void PrefRegistrySimple::RegisterIntegerPref(const std::string
& path
,
25 RegisterPrefAndNotify(path
, new base::FundamentalValue(default_value
),
26 NO_REGISTRATION_FLAGS
);
29 void PrefRegistrySimple::RegisterDoublePref(const std::string
& path
,
30 double default_value
) {
31 RegisterPrefAndNotify(path
, new base::FundamentalValue(default_value
),
32 NO_REGISTRATION_FLAGS
);
35 void PrefRegistrySimple::RegisterStringPref(const std::string
& path
,
36 const std::string
& default_value
) {
37 RegisterPrefAndNotify(path
, new base::StringValue(default_value
),
38 NO_REGISTRATION_FLAGS
);
41 void PrefRegistrySimple::RegisterFilePathPref(
42 const std::string
& path
,
43 const base::FilePath
& default_value
) {
44 RegisterPrefAndNotify(path
, new base::StringValue(default_value
.value()),
45 NO_REGISTRATION_FLAGS
);
48 void PrefRegistrySimple::RegisterListPref(const std::string
& path
) {
49 RegisterPrefAndNotify(path
, new base::ListValue(), NO_REGISTRATION_FLAGS
);
52 void PrefRegistrySimple::RegisterListPref(const std::string
& path
,
53 base::ListValue
* default_value
) {
54 RegisterPrefAndNotify(path
, default_value
, NO_REGISTRATION_FLAGS
);
57 void PrefRegistrySimple::RegisterDictionaryPref(const std::string
& path
) {
58 RegisterPrefAndNotify(path
, new base::DictionaryValue(),
59 NO_REGISTRATION_FLAGS
);
62 void PrefRegistrySimple::RegisterDictionaryPref(
63 const std::string
& path
,
64 base::DictionaryValue
* default_value
) {
65 RegisterPrefAndNotify(path
, default_value
, NO_REGISTRATION_FLAGS
);
68 void PrefRegistrySimple::RegisterInt64Pref(const std::string
& path
,
69 int64 default_value
) {
70 RegisterPrefAndNotify(
71 path
, new base::StringValue(base::Int64ToString(default_value
)),
72 NO_REGISTRATION_FLAGS
);
75 void PrefRegistrySimple::RegisterUint64Pref(const std::string
& path
,
76 uint64 default_value
) {
77 RegisterPrefAndNotify(
78 path
, new base::StringValue(base::Uint64ToString(default_value
)),
79 NO_REGISTRATION_FLAGS
);
82 void PrefRegistrySimple::RegisterBooleanPref(const std::string
& path
,
85 RegisterPrefAndNotify(path
, new base::FundamentalValue(default_value
), flags
);
88 void PrefRegistrySimple::RegisterIntegerPref(const std::string
& path
,
91 RegisterPrefAndNotify(path
, new base::FundamentalValue(default_value
), flags
);
94 void PrefRegistrySimple::RegisterDoublePref(const std::string
& path
,
97 RegisterPrefAndNotify(path
, new base::FundamentalValue(default_value
), flags
);
100 void PrefRegistrySimple::RegisterStringPref(const std::string
& path
,
101 const std::string
& default_value
,
103 RegisterPrefAndNotify(path
, new base::StringValue(default_value
), flags
);
106 void PrefRegistrySimple::RegisterFilePathPref(
107 const std::string
& path
,
108 const base::FilePath
& default_value
,
110 RegisterPrefAndNotify(path
, new base::StringValue(default_value
.value()),
114 void PrefRegistrySimple::RegisterListPref(const std::string
& path
,
116 RegisterPrefAndNotify(path
, new base::ListValue(), flags
);
119 void PrefRegistrySimple::RegisterListPref(const std::string
& path
,
120 base::ListValue
* default_value
,
122 RegisterPrefAndNotify(path
, default_value
, flags
);
125 void PrefRegistrySimple::RegisterDictionaryPref(const std::string
& path
,
127 RegisterPrefAndNotify(path
, new base::DictionaryValue(), flags
);
130 void PrefRegistrySimple::RegisterDictionaryPref(
131 const std::string
& path
,
132 base::DictionaryValue
* default_value
,
134 RegisterPrefAndNotify(path
, default_value
, flags
);
137 void PrefRegistrySimple::RegisterInt64Pref(const std::string
& path
,
140 RegisterPrefAndNotify(
141 path
, new base::StringValue(base::Int64ToString(default_value
)), flags
);
144 void PrefRegistrySimple::RegisterUint64Pref(const std::string
& path
,
145 uint64 default_value
,
147 RegisterPrefAndNotify(
148 path
, new base::StringValue(base::Uint64ToString(default_value
)), flags
);
151 void PrefRegistrySimple::OnPrefRegistered(const std::string
& path
,
152 base::Value
* default_value
,
156 void PrefRegistrySimple::RegisterPrefAndNotify(const std::string
& path
,
157 base::Value
* default_value
,
159 RegisterPreference(path
, default_value
, flags
);
160 OnPrefRegistered(path
, default_value
, flags
);