| 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 |