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

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

Issue 1094903006: Update {virtual,override} to follow C++11 style in base. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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/files/file_path_watcher_stub.cc ('k') | base/observer_list_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 class FieldConverter : public FieldConverterBase<StructType> { 116 class FieldConverter : public FieldConverterBase<StructType> {
117 public: 117 public:
118 explicit FieldConverter(const std::string& path, 118 explicit FieldConverter(const std::string& path,
119 FieldType StructType::* field, 119 FieldType StructType::* field,
120 ValueConverter<FieldType>* converter) 120 ValueConverter<FieldType>* converter)
121 : FieldConverterBase<StructType>(path), 121 : FieldConverterBase<StructType>(path),
122 field_pointer_(field), 122 field_pointer_(field),
123 value_converter_(converter) { 123 value_converter_(converter) {
124 } 124 }
125 125
126 virtual bool ConvertField( 126 bool ConvertField(const base::Value& value, StructType* dst) const override {
127 const base::Value& value, StructType* dst) const override {
128 return value_converter_->Convert(value, &(dst->*field_pointer_)); 127 return value_converter_->Convert(value, &(dst->*field_pointer_));
129 } 128 }
130 129
131 private: 130 private:
132 FieldType StructType::* field_pointer_; 131 FieldType StructType::* field_pointer_;
133 scoped_ptr<ValueConverter<FieldType> > value_converter_; 132 scoped_ptr<ValueConverter<FieldType> > value_converter_;
134 DISALLOW_COPY_AND_ASSIGN(FieldConverter); 133 DISALLOW_COPY_AND_ASSIGN(FieldConverter);
135 }; 134 };
136 135
137 template <typename FieldType> 136 template <typename FieldType>
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 }; 194 };
196 195
197 template <typename FieldType> 196 template <typename FieldType>
198 class ValueFieldConverter : public ValueConverter<FieldType> { 197 class ValueFieldConverter : public ValueConverter<FieldType> {
199 public: 198 public:
200 typedef bool(*ConvertFunc)(const base::Value* value, FieldType* field); 199 typedef bool(*ConvertFunc)(const base::Value* value, FieldType* field);
201 200
202 ValueFieldConverter(ConvertFunc convert_func) 201 ValueFieldConverter(ConvertFunc convert_func)
203 : convert_func_(convert_func) {} 202 : convert_func_(convert_func) {}
204 203
205 virtual bool Convert(const base::Value& value, 204 bool Convert(const base::Value& value, FieldType* field) const override {
206 FieldType* field) const override {
207 return convert_func_(&value, field); 205 return convert_func_(&value, field);
208 } 206 }
209 207
210 private: 208 private:
211 ConvertFunc convert_func_; 209 ConvertFunc convert_func_;
212 210
213 DISALLOW_COPY_AND_ASSIGN(ValueFieldConverter); 211 DISALLOW_COPY_AND_ASSIGN(ValueFieldConverter);
214 }; 212 };
215 213
216 template <typename FieldType> 214 template <typename FieldType>
217 class CustomFieldConverter : public ValueConverter<FieldType> { 215 class CustomFieldConverter : public ValueConverter<FieldType> {
218 public: 216 public:
219 typedef bool(*ConvertFunc)(const StringPiece& value, FieldType* field); 217 typedef bool(*ConvertFunc)(const StringPiece& value, FieldType* field);
220 218
221 CustomFieldConverter(ConvertFunc convert_func) 219 CustomFieldConverter(ConvertFunc convert_func)
222 : convert_func_(convert_func) {} 220 : convert_func_(convert_func) {}
223 221
224 virtual bool Convert(const base::Value& value, 222 bool Convert(const base::Value& value, FieldType* field) const override {
225 FieldType* field) const override {
226 std::string string_value; 223 std::string string_value;
227 return value.GetAsString(&string_value) && 224 return value.GetAsString(&string_value) &&
228 convert_func_(string_value, field); 225 convert_func_(string_value, field);
229 } 226 }
230 227
231 private: 228 private:
232 ConvertFunc convert_func_; 229 ConvertFunc convert_func_;
233 230
234 DISALLOW_COPY_AND_ASSIGN(CustomFieldConverter); 231 DISALLOW_COPY_AND_ASSIGN(CustomFieldConverter);
235 }; 232 };
236 233
237 template <typename NestedType> 234 template <typename NestedType>
238 class NestedValueConverter : public ValueConverter<NestedType> { 235 class NestedValueConverter : public ValueConverter<NestedType> {
239 public: 236 public:
240 NestedValueConverter() {} 237 NestedValueConverter() {}
241 238
242 virtual bool Convert( 239 bool Convert(const base::Value& value, NestedType* field) const override {
243 const base::Value& value, NestedType* field) const override {
244 return converter_.Convert(value, field); 240 return converter_.Convert(value, field);
245 } 241 }
246 242
247 private: 243 private:
248 JSONValueConverter<NestedType> converter_; 244 JSONValueConverter<NestedType> converter_;
249 DISALLOW_COPY_AND_ASSIGN(NestedValueConverter); 245 DISALLOW_COPY_AND_ASSIGN(NestedValueConverter);
250 }; 246 };
251 247
252 template <typename Element> 248 template <typename Element>
253 class RepeatedValueConverter : public ValueConverter<ScopedVector<Element> > { 249 class RepeatedValueConverter : public ValueConverter<ScopedVector<Element> > {
254 public: 250 public:
255 RepeatedValueConverter() {} 251 RepeatedValueConverter() {}
256 252
257 virtual bool Convert( 253 bool Convert(const base::Value& value,
258 const base::Value& value, ScopedVector<Element>* field) const override { 254 ScopedVector<Element>* field) const override {
259 const base::ListValue* list = NULL; 255 const base::ListValue* list = NULL;
260 if (!value.GetAsList(&list)) { 256 if (!value.GetAsList(&list)) {
261 // The field is not a list. 257 // The field is not a list.
262 return false; 258 return false;
263 } 259 }
264 260
265 field->reserve(list->GetSize()); 261 field->reserve(list->GetSize());
266 for (size_t i = 0; i < list->GetSize(); ++i) { 262 for (size_t i = 0; i < list->GetSize(); ++i) {
267 const base::Value* element = NULL; 263 const base::Value* element = NULL;
268 if (!list->Get(i, &element)) 264 if (!list->Get(i, &element))
(...skipping 14 matching lines...) Expand all
283 BasicValueConverter<Element> basic_converter_; 279 BasicValueConverter<Element> basic_converter_;
284 DISALLOW_COPY_AND_ASSIGN(RepeatedValueConverter); 280 DISALLOW_COPY_AND_ASSIGN(RepeatedValueConverter);
285 }; 281 };
286 282
287 template <typename NestedType> 283 template <typename NestedType>
288 class RepeatedMessageConverter 284 class RepeatedMessageConverter
289 : public ValueConverter<ScopedVector<NestedType> > { 285 : public ValueConverter<ScopedVector<NestedType> > {
290 public: 286 public:
291 RepeatedMessageConverter() {} 287 RepeatedMessageConverter() {}
292 288
293 virtual bool Convert(const base::Value& value, 289 bool Convert(const base::Value& value,
294 ScopedVector<NestedType>* field) const override { 290 ScopedVector<NestedType>* field) const override {
295 const base::ListValue* list = NULL; 291 const base::ListValue* list = NULL;
296 if (!value.GetAsList(&list)) 292 if (!value.GetAsList(&list))
297 return false; 293 return false;
298 294
299 field->reserve(list->GetSize()); 295 field->reserve(list->GetSize());
300 for (size_t i = 0; i < list->GetSize(); ++i) { 296 for (size_t i = 0; i < list->GetSize(); ++i) {
301 const base::Value* element = NULL; 297 const base::Value* element = NULL;
302 if (!list->Get(i, &element)) 298 if (!list->Get(i, &element))
303 continue; 299 continue;
304 300
(...skipping 15 matching lines...) Expand all
320 316
321 template <typename NestedType> 317 template <typename NestedType>
322 class RepeatedCustomValueConverter 318 class RepeatedCustomValueConverter
323 : public ValueConverter<ScopedVector<NestedType> > { 319 : public ValueConverter<ScopedVector<NestedType> > {
324 public: 320 public:
325 typedef bool(*ConvertFunc)(const base::Value* value, NestedType* field); 321 typedef bool(*ConvertFunc)(const base::Value* value, NestedType* field);
326 322
327 RepeatedCustomValueConverter(ConvertFunc convert_func) 323 RepeatedCustomValueConverter(ConvertFunc convert_func)
328 : convert_func_(convert_func) {} 324 : convert_func_(convert_func) {}
329 325
330 virtual bool Convert(const base::Value& value, 326 bool Convert(const base::Value& value,
331 ScopedVector<NestedType>* field) const override { 327 ScopedVector<NestedType>* field) const override {
332 const base::ListValue* list = NULL; 328 const base::ListValue* list = NULL;
333 if (!value.GetAsList(&list)) 329 if (!value.GetAsList(&list))
334 return false; 330 return false;
335 331
336 field->reserve(list->GetSize()); 332 field->reserve(list->GetSize());
337 for (size_t i = 0; i < list->GetSize(); ++i) { 333 for (size_t i = 0; i < list->GetSize(); ++i) {
338 const base::Value* element = NULL; 334 const base::Value* element = NULL;
339 if (!list->Get(i, &element)) 335 if (!list->Get(i, &element))
340 continue; 336 continue;
341 337
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 505
510 private: 506 private:
511 ScopedVector<internal::FieldConverterBase<StructType> > fields_; 507 ScopedVector<internal::FieldConverterBase<StructType> > fields_;
512 508
513 DISALLOW_COPY_AND_ASSIGN(JSONValueConverter); 509 DISALLOW_COPY_AND_ASSIGN(JSONValueConverter);
514 }; 510 };
515 511
516 } // namespace base 512 } // namespace base
517 513
518 #endif // BASE_JSON_JSON_VALUE_CONVERTER_H_ 514 #endif // BASE_JSON_JSON_VALUE_CONVERTER_H_
OLDNEW
« no previous file with comments | « base/files/file_path_watcher_stub.cc ('k') | base/observer_list_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698