Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(175)

Side by Side Diff: base/json/json_value_converter.h

Issue 611153004: replace OVERRIDE and FINAL with override and final in base/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CC_ -> BASE_ Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/json/json_string_value_serializer.h ('k') | base/json/json_value_serializer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 #ifndef BASE_JSON_JSON_VALUE_CONVERTER_H_ 5 #ifndef BASE_JSON_JSON_VALUE_CONVERTER_H_
6 #define BASE_JSON_JSON_VALUE_CONVERTER_H_ 6 #define BASE_JSON_JSON_VALUE_CONVERTER_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 public: 116 public:
117 explicit FieldConverter(const std::string& path, 117 explicit FieldConverter(const std::string& path,
118 FieldType StructType::* field, 118 FieldType StructType::* field,
119 ValueConverter<FieldType>* converter) 119 ValueConverter<FieldType>* converter)
120 : FieldConverterBase<StructType>(path), 120 : FieldConverterBase<StructType>(path),
121 field_pointer_(field), 121 field_pointer_(field),
122 value_converter_(converter) { 122 value_converter_(converter) {
123 } 123 }
124 124
125 virtual bool ConvertField( 125 virtual bool ConvertField(
126 const base::Value& value, StructType* dst) const OVERRIDE { 126 const base::Value& value, StructType* dst) const override {
127 return value_converter_->Convert(value, &(dst->*field_pointer_)); 127 return value_converter_->Convert(value, &(dst->*field_pointer_));
128 } 128 }
129 129
130 private: 130 private:
131 FieldType StructType::* field_pointer_; 131 FieldType StructType::* field_pointer_;
132 scoped_ptr<ValueConverter<FieldType> > value_converter_; 132 scoped_ptr<ValueConverter<FieldType> > value_converter_;
133 DISALLOW_COPY_AND_ASSIGN(FieldConverter); 133 DISALLOW_COPY_AND_ASSIGN(FieldConverter);
134 }; 134 };
135 135
136 template <typename FieldType> 136 template <typename FieldType>
137 class BasicValueConverter; 137 class BasicValueConverter;
138 138
139 template <> 139 template <>
140 class BasicValueConverter<int> : public ValueConverter<int> { 140 class BasicValueConverter<int> : public ValueConverter<int> {
141 public: 141 public:
142 BasicValueConverter() {} 142 BasicValueConverter() {}
143 143
144 virtual bool Convert(const base::Value& value, int* field) const OVERRIDE { 144 virtual bool Convert(const base::Value& value, int* field) const override {
145 return value.GetAsInteger(field); 145 return value.GetAsInteger(field);
146 } 146 }
147 147
148 private: 148 private:
149 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter); 149 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter);
150 }; 150 };
151 151
152 template <> 152 template <>
153 class BasicValueConverter<std::string> : public ValueConverter<std::string> { 153 class BasicValueConverter<std::string> : public ValueConverter<std::string> {
154 public: 154 public:
155 BasicValueConverter() {} 155 BasicValueConverter() {}
156 156
157 virtual bool Convert( 157 virtual bool Convert(
158 const base::Value& value, std::string* field) const OVERRIDE { 158 const base::Value& value, std::string* field) const override {
159 return value.GetAsString(field); 159 return value.GetAsString(field);
160 } 160 }
161 161
162 private: 162 private:
163 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter); 163 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter);
164 }; 164 };
165 165
166 template <> 166 template <>
167 class BasicValueConverter<string16> : public ValueConverter<string16> { 167 class BasicValueConverter<string16> : public ValueConverter<string16> {
168 public: 168 public:
169 BasicValueConverter() {} 169 BasicValueConverter() {}
170 170
171 virtual bool Convert( 171 virtual bool Convert(
172 const base::Value& value, string16* field) const OVERRIDE { 172 const base::Value& value, string16* field) const override {
173 return value.GetAsString(field); 173 return value.GetAsString(field);
174 } 174 }
175 175
176 private: 176 private:
177 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter); 177 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter);
178 }; 178 };
179 179
180 template <> 180 template <>
181 class BasicValueConverter<double> : public ValueConverter<double> { 181 class BasicValueConverter<double> : public ValueConverter<double> {
182 public: 182 public:
183 BasicValueConverter() {} 183 BasicValueConverter() {}
184 184
185 virtual bool Convert(const base::Value& value, double* field) const OVERRIDE { 185 virtual bool Convert(const base::Value& value, double* field) const override {
186 return value.GetAsDouble(field); 186 return value.GetAsDouble(field);
187 } 187 }
188 188
189 private: 189 private:
190 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter); 190 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter);
191 }; 191 };
192 192
193 template <> 193 template <>
194 class BasicValueConverter<bool> : public ValueConverter<bool> { 194 class BasicValueConverter<bool> : public ValueConverter<bool> {
195 public: 195 public:
196 BasicValueConverter() {} 196 BasicValueConverter() {}
197 197
198 virtual bool Convert(const base::Value& value, bool* field) const OVERRIDE { 198 virtual bool Convert(const base::Value& value, bool* field) const override {
199 return value.GetAsBoolean(field); 199 return value.GetAsBoolean(field);
200 } 200 }
201 201
202 private: 202 private:
203 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter); 203 DISALLOW_COPY_AND_ASSIGN(BasicValueConverter);
204 }; 204 };
205 205
206 template <typename FieldType> 206 template <typename FieldType>
207 class ValueFieldConverter : public ValueConverter<FieldType> { 207 class ValueFieldConverter : public ValueConverter<FieldType> {
208 public: 208 public:
209 typedef bool(*ConvertFunc)(const base::Value* value, FieldType* field); 209 typedef bool(*ConvertFunc)(const base::Value* value, FieldType* field);
210 210
211 ValueFieldConverter(ConvertFunc convert_func) 211 ValueFieldConverter(ConvertFunc convert_func)
212 : convert_func_(convert_func) {} 212 : convert_func_(convert_func) {}
213 213
214 virtual bool Convert(const base::Value& value, 214 virtual bool Convert(const base::Value& value,
215 FieldType* field) const OVERRIDE { 215 FieldType* field) const override {
216 return convert_func_(&value, field); 216 return convert_func_(&value, field);
217 } 217 }
218 218
219 private: 219 private:
220 ConvertFunc convert_func_; 220 ConvertFunc convert_func_;
221 221
222 DISALLOW_COPY_AND_ASSIGN(ValueFieldConverter); 222 DISALLOW_COPY_AND_ASSIGN(ValueFieldConverter);
223 }; 223 };
224 224
225 template <typename FieldType> 225 template <typename FieldType>
226 class CustomFieldConverter : public ValueConverter<FieldType> { 226 class CustomFieldConverter : public ValueConverter<FieldType> {
227 public: 227 public:
228 typedef bool(*ConvertFunc)(const StringPiece& value, FieldType* field); 228 typedef bool(*ConvertFunc)(const StringPiece& value, FieldType* field);
229 229
230 CustomFieldConverter(ConvertFunc convert_func) 230 CustomFieldConverter(ConvertFunc convert_func)
231 : convert_func_(convert_func) {} 231 : convert_func_(convert_func) {}
232 232
233 virtual bool Convert(const base::Value& value, 233 virtual bool Convert(const base::Value& value,
234 FieldType* field) const OVERRIDE { 234 FieldType* field) const override {
235 std::string string_value; 235 std::string string_value;
236 return value.GetAsString(&string_value) && 236 return value.GetAsString(&string_value) &&
237 convert_func_(string_value, field); 237 convert_func_(string_value, field);
238 } 238 }
239 239
240 private: 240 private:
241 ConvertFunc convert_func_; 241 ConvertFunc convert_func_;
242 242
243 DISALLOW_COPY_AND_ASSIGN(CustomFieldConverter); 243 DISALLOW_COPY_AND_ASSIGN(CustomFieldConverter);
244 }; 244 };
245 245
246 template <typename NestedType> 246 template <typename NestedType>
247 class NestedValueConverter : public ValueConverter<NestedType> { 247 class NestedValueConverter : public ValueConverter<NestedType> {
248 public: 248 public:
249 NestedValueConverter() {} 249 NestedValueConverter() {}
250 250
251 virtual bool Convert( 251 virtual bool Convert(
252 const base::Value& value, NestedType* field) const OVERRIDE { 252 const base::Value& value, NestedType* field) const override {
253 return converter_.Convert(value, field); 253 return converter_.Convert(value, field);
254 } 254 }
255 255
256 private: 256 private:
257 JSONValueConverter<NestedType> converter_; 257 JSONValueConverter<NestedType> converter_;
258 DISALLOW_COPY_AND_ASSIGN(NestedValueConverter); 258 DISALLOW_COPY_AND_ASSIGN(NestedValueConverter);
259 }; 259 };
260 260
261 template <typename Element> 261 template <typename Element>
262 class RepeatedValueConverter : public ValueConverter<ScopedVector<Element> > { 262 class RepeatedValueConverter : public ValueConverter<ScopedVector<Element> > {
263 public: 263 public:
264 RepeatedValueConverter() {} 264 RepeatedValueConverter() {}
265 265
266 virtual bool Convert( 266 virtual bool Convert(
267 const base::Value& value, ScopedVector<Element>* field) const OVERRIDE { 267 const base::Value& value, ScopedVector<Element>* field) const override {
268 const base::ListValue* list = NULL; 268 const base::ListValue* list = NULL;
269 if (!value.GetAsList(&list)) { 269 if (!value.GetAsList(&list)) {
270 // The field is not a list. 270 // The field is not a list.
271 return false; 271 return false;
272 } 272 }
273 273
274 field->reserve(list->GetSize()); 274 field->reserve(list->GetSize());
275 for (size_t i = 0; i < list->GetSize(); ++i) { 275 for (size_t i = 0; i < list->GetSize(); ++i) {
276 const base::Value* element = NULL; 276 const base::Value* element = NULL;
277 if (!list->Get(i, &element)) 277 if (!list->Get(i, &element))
(...skipping 15 matching lines...) Expand all
293 DISALLOW_COPY_AND_ASSIGN(RepeatedValueConverter); 293 DISALLOW_COPY_AND_ASSIGN(RepeatedValueConverter);
294 }; 294 };
295 295
296 template <typename NestedType> 296 template <typename NestedType>
297 class RepeatedMessageConverter 297 class RepeatedMessageConverter
298 : public ValueConverter<ScopedVector<NestedType> > { 298 : public ValueConverter<ScopedVector<NestedType> > {
299 public: 299 public:
300 RepeatedMessageConverter() {} 300 RepeatedMessageConverter() {}
301 301
302 virtual bool Convert(const base::Value& value, 302 virtual bool Convert(const base::Value& value,
303 ScopedVector<NestedType>* field) const OVERRIDE { 303 ScopedVector<NestedType>* field) const override {
304 const base::ListValue* list = NULL; 304 const base::ListValue* list = NULL;
305 if (!value.GetAsList(&list)) 305 if (!value.GetAsList(&list))
306 return false; 306 return false;
307 307
308 field->reserve(list->GetSize()); 308 field->reserve(list->GetSize());
309 for (size_t i = 0; i < list->GetSize(); ++i) { 309 for (size_t i = 0; i < list->GetSize(); ++i) {
310 const base::Value* element = NULL; 310 const base::Value* element = NULL;
311 if (!list->Get(i, &element)) 311 if (!list->Get(i, &element))
312 continue; 312 continue;
313 313
(...skipping 16 matching lines...) Expand all
330 template <typename NestedType> 330 template <typename NestedType>
331 class RepeatedCustomValueConverter 331 class RepeatedCustomValueConverter
332 : public ValueConverter<ScopedVector<NestedType> > { 332 : public ValueConverter<ScopedVector<NestedType> > {
333 public: 333 public:
334 typedef bool(*ConvertFunc)(const base::Value* value, NestedType* field); 334 typedef bool(*ConvertFunc)(const base::Value* value, NestedType* field);
335 335
336 RepeatedCustomValueConverter(ConvertFunc convert_func) 336 RepeatedCustomValueConverter(ConvertFunc convert_func)
337 : convert_func_(convert_func) {} 337 : convert_func_(convert_func) {}
338 338
339 virtual bool Convert(const base::Value& value, 339 virtual bool Convert(const base::Value& value,
340 ScopedVector<NestedType>* field) const OVERRIDE { 340 ScopedVector<NestedType>* field) const override {
341 const base::ListValue* list = NULL; 341 const base::ListValue* list = NULL;
342 if (!value.GetAsList(&list)) 342 if (!value.GetAsList(&list))
343 return false; 343 return false;
344 344
345 field->reserve(list->GetSize()); 345 field->reserve(list->GetSize());
346 for (size_t i = 0; i < list->GetSize(); ++i) { 346 for (size_t i = 0; i < list->GetSize(); ++i) {
347 const base::Value* element = NULL; 347 const base::Value* element = NULL;
348 if (!list->Get(i, &element)) 348 if (!list->Get(i, &element))
349 continue; 349 continue;
350 350
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 518
519 private: 519 private:
520 ScopedVector<internal::FieldConverterBase<StructType> > fields_; 520 ScopedVector<internal::FieldConverterBase<StructType> > fields_;
521 521
522 DISALLOW_COPY_AND_ASSIGN(JSONValueConverter); 522 DISALLOW_COPY_AND_ASSIGN(JSONValueConverter);
523 }; 523 };
524 524
525 } // namespace base 525 } // namespace base
526 526
527 #endif // BASE_JSON_JSON_VALUE_CONVERTER_H_ 527 #endif // BASE_JSON_JSON_VALUE_CONVERTER_H_
OLDNEW
« no previous file with comments | « base/json/json_string_value_serializer.h ('k') | base/json/json_value_serializer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698