OLD | NEW |
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 #include "google_apis/drive/drive_api_parser.h" | 5 #include "google_apis/drive/drive_api_parser.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include <stddef.h> |
| 8 |
8 #include "base/json/json_value_converter.h" | 9 #include "base/json/json_value_converter.h" |
| 10 #include "base/macros.h" |
9 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
10 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
11 #include "base/strings/string_piece.h" | 13 #include "base/strings/string_piece.h" |
12 #include "base/strings/string_util.h" | 14 #include "base/strings/string_util.h" |
13 #include "base/values.h" | 15 #include "base/values.h" |
14 #include "google_apis/drive/time_util.h" | 16 #include "google_apis/drive/time_util.h" |
15 | 17 |
16 namespace google_apis { | 18 namespace google_apis { |
17 | 19 |
18 namespace { | 20 namespace { |
19 | 21 |
20 const int64 kUnsetFileSize = -1; | 22 const int64_t kUnsetFileSize = -1; |
21 | 23 |
22 bool CreateFileResourceFromValue(const base::Value* value, | 24 bool CreateFileResourceFromValue(const base::Value* value, |
23 scoped_ptr<FileResource>* file) { | 25 scoped_ptr<FileResource>* file) { |
24 *file = FileResource::CreateFrom(*value); | 26 *file = FileResource::CreateFrom(*value); |
25 return !!*file; | 27 return !!*file; |
26 } | 28 } |
27 | 29 |
28 // Converts |url_string| to |result|. Always returns true to be used | 30 // Converts |url_string| to |result|. Always returns true to be used |
29 // for JSONValueConverter::RegisterCustomField method. | 31 // for JSONValueConverter::RegisterCustomField method. |
30 // TODO(mukai): make it return false in case of invalid |url_string|. | 32 // TODO(mukai): make it return false in case of invalid |url_string|. |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 if (!IsResourceKindExpected(value, kAboutKind) || !resource->Parse(value)) { | 221 if (!IsResourceKindExpected(value, kAboutKind) || !resource->Parse(value)) { |
220 LOG(ERROR) << "Unable to create: Invalid About resource JSON!"; | 222 LOG(ERROR) << "Unable to create: Invalid About resource JSON!"; |
221 return scoped_ptr<AboutResource>(); | 223 return scoped_ptr<AboutResource>(); |
222 } | 224 } |
223 return resource.Pass(); | 225 return resource.Pass(); |
224 } | 226 } |
225 | 227 |
226 // static | 228 // static |
227 void AboutResource::RegisterJSONConverter( | 229 void AboutResource::RegisterJSONConverter( |
228 base::JSONValueConverter<AboutResource>* converter) { | 230 base::JSONValueConverter<AboutResource>* converter) { |
229 converter->RegisterCustomField<int64>(kLargestChangeId, | 231 converter->RegisterCustomField<int64_t>(kLargestChangeId, |
230 &AboutResource::largest_change_id_, | 232 &AboutResource::largest_change_id_, |
231 &base::StringToInt64); | 233 &base::StringToInt64); |
232 converter->RegisterCustomField<int64>(kQuotaBytesTotal, | 234 converter->RegisterCustomField<int64_t>(kQuotaBytesTotal, |
233 &AboutResource::quota_bytes_total_, | 235 &AboutResource::quota_bytes_total_, |
234 &base::StringToInt64); | 236 &base::StringToInt64); |
235 converter->RegisterCustomField<int64>( | 237 converter->RegisterCustomField<int64_t>( |
236 kQuotaBytesUsedAggregate, | 238 kQuotaBytesUsedAggregate, &AboutResource::quota_bytes_used_aggregate_, |
237 &AboutResource::quota_bytes_used_aggregate_, | |
238 &base::StringToInt64); | 239 &base::StringToInt64); |
239 converter->RegisterStringField(kRootFolderId, | 240 converter->RegisterStringField(kRootFolderId, |
240 &AboutResource::root_folder_id_); | 241 &AboutResource::root_folder_id_); |
241 } | 242 } |
242 | 243 |
243 bool AboutResource::Parse(const base::Value& value) { | 244 bool AboutResource::Parse(const base::Value& value) { |
244 base::JSONValueConverter<AboutResource> converter; | 245 base::JSONValueConverter<AboutResource> converter; |
245 if (!converter.Convert(value, this)) { | 246 if (!converter.Convert(value, this)) { |
246 LOG(ERROR) << "Unable to parse: Invalid About resource JSON!"; | 247 LOG(ERROR) << "Unable to parse: Invalid About resource JSON!"; |
247 return false; | 248 return false; |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 converter->RegisterCustomField<base::Time>( | 453 converter->RegisterCustomField<base::Time>( |
453 kLastViewedByMeDate, | 454 kLastViewedByMeDate, |
454 &FileResource::last_viewed_by_me_date_, | 455 &FileResource::last_viewed_by_me_date_, |
455 &util::GetTimeFromString); | 456 &util::GetTimeFromString); |
456 converter->RegisterCustomField<base::Time>( | 457 converter->RegisterCustomField<base::Time>( |
457 kSharedWithMeDate, | 458 kSharedWithMeDate, |
458 &FileResource::shared_with_me_date_, | 459 &FileResource::shared_with_me_date_, |
459 &util::GetTimeFromString); | 460 &util::GetTimeFromString); |
460 converter->RegisterBoolField(kShared, &FileResource::shared_); | 461 converter->RegisterBoolField(kShared, &FileResource::shared_); |
461 converter->RegisterStringField(kMd5Checksum, &FileResource::md5_checksum_); | 462 converter->RegisterStringField(kMd5Checksum, &FileResource::md5_checksum_); |
462 converter->RegisterCustomField<int64>(kFileSize, | 463 converter->RegisterCustomField<int64_t>(kFileSize, &FileResource::file_size_, |
463 &FileResource::file_size_, | 464 &base::StringToInt64); |
464 &base::StringToInt64); | |
465 converter->RegisterCustomField<GURL>(kAlternateLink, | 465 converter->RegisterCustomField<GURL>(kAlternateLink, |
466 &FileResource::alternate_link_, | 466 &FileResource::alternate_link_, |
467 GetGURLFromString); | 467 GetGURLFromString); |
468 converter->RegisterCustomField<GURL>(kShareLink, | 468 converter->RegisterCustomField<GURL>(kShareLink, |
469 &FileResource::share_link_, | 469 &FileResource::share_link_, |
470 GetGURLFromString); | 470 GetGURLFromString); |
471 converter->RegisterCustomValueField<std::vector<ParentReference> >( | 471 converter->RegisterCustomValueField<std::vector<ParentReference> >( |
472 kParents, | 472 kParents, |
473 &FileResource::parents_, | 473 &FileResource::parents_, |
474 GetParentsFromValue); | 474 GetParentsFromValue); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 //////////////////////////////////////////////////////////////////////////////// | 551 //////////////////////////////////////////////////////////////////////////////// |
552 // ChangeResource implementation | 552 // ChangeResource implementation |
553 | 553 |
554 ChangeResource::ChangeResource() : change_id_(0), deleted_(false) {} | 554 ChangeResource::ChangeResource() : change_id_(0), deleted_(false) {} |
555 | 555 |
556 ChangeResource::~ChangeResource() {} | 556 ChangeResource::~ChangeResource() {} |
557 | 557 |
558 // static | 558 // static |
559 void ChangeResource::RegisterJSONConverter( | 559 void ChangeResource::RegisterJSONConverter( |
560 base::JSONValueConverter<ChangeResource>* converter) { | 560 base::JSONValueConverter<ChangeResource>* converter) { |
561 converter->RegisterCustomField<int64>(kId, | 561 converter->RegisterCustomField<int64_t>(kId, &ChangeResource::change_id_, |
562 &ChangeResource::change_id_, | 562 &base::StringToInt64); |
563 &base::StringToInt64); | |
564 converter->RegisterStringField(kFileId, &ChangeResource::file_id_); | 563 converter->RegisterStringField(kFileId, &ChangeResource::file_id_); |
565 converter->RegisterBoolField(kDeleted, &ChangeResource::deleted_); | 564 converter->RegisterBoolField(kDeleted, &ChangeResource::deleted_); |
566 converter->RegisterCustomValueField(kFile, &ChangeResource::file_, | 565 converter->RegisterCustomValueField(kFile, &ChangeResource::file_, |
567 &CreateFileResourceFromValue); | 566 &CreateFileResourceFromValue); |
568 converter->RegisterCustomField<base::Time>( | 567 converter->RegisterCustomField<base::Time>( |
569 kModificationDate, &ChangeResource::modification_date_, | 568 kModificationDate, &ChangeResource::modification_date_, |
570 &util::GetTimeFromString); | 569 &util::GetTimeFromString); |
571 } | 570 } |
572 | 571 |
573 // static | 572 // static |
(...skipping 22 matching lines...) Expand all Loading... |
596 ChangeList::ChangeList() : largest_change_id_(0) {} | 595 ChangeList::ChangeList() : largest_change_id_(0) {} |
597 | 596 |
598 ChangeList::~ChangeList() {} | 597 ChangeList::~ChangeList() {} |
599 | 598 |
600 // static | 599 // static |
601 void ChangeList::RegisterJSONConverter( | 600 void ChangeList::RegisterJSONConverter( |
602 base::JSONValueConverter<ChangeList>* converter) { | 601 base::JSONValueConverter<ChangeList>* converter) { |
603 converter->RegisterCustomField<GURL>(kNextLink, | 602 converter->RegisterCustomField<GURL>(kNextLink, |
604 &ChangeList::next_link_, | 603 &ChangeList::next_link_, |
605 GetGURLFromString); | 604 GetGURLFromString); |
606 converter->RegisterCustomField<int64>(kLargestChangeId, | 605 converter->RegisterCustomField<int64_t>( |
607 &ChangeList::largest_change_id_, | 606 kLargestChangeId, &ChangeList::largest_change_id_, &base::StringToInt64); |
608 &base::StringToInt64); | |
609 converter->RegisterRepeatedMessage<ChangeResource>(kItems, | 607 converter->RegisterRepeatedMessage<ChangeResource>(kItems, |
610 &ChangeList::items_); | 608 &ChangeList::items_); |
611 } | 609 } |
612 | 610 |
613 // static | 611 // static |
614 bool ChangeList::HasChangeListKind(const base::Value& value) { | 612 bool ChangeList::HasChangeListKind(const base::Value& value) { |
615 return IsResourceKindExpected(value, kChangeListKind); | 613 return IsResourceKindExpected(value, kChangeListKind); |
616 } | 614 } |
617 | 615 |
618 // static | 616 // static |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
702 bool ImageMediaMetadata::Parse(const base::Value& value) { | 700 bool ImageMediaMetadata::Parse(const base::Value& value) { |
703 base::JSONValueConverter<ImageMediaMetadata> converter; | 701 base::JSONValueConverter<ImageMediaMetadata> converter; |
704 if (!converter.Convert(value, this)) { | 702 if (!converter.Convert(value, this)) { |
705 LOG(ERROR) << "Unable to parse: Invalid ImageMediaMetadata."; | 703 LOG(ERROR) << "Unable to parse: Invalid ImageMediaMetadata."; |
706 return false; | 704 return false; |
707 } | 705 } |
708 return true; | 706 return true; |
709 } | 707 } |
710 | 708 |
711 } // namespace google_apis | 709 } // namespace google_apis |
OLD | NEW |