OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/sync_file_system/drive_backend/metadata_database.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <stack> | 8 #include <stack> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 return !index_->IsSyncRootRevalidated(); | 615 return !index_->IsSyncRootRevalidated(); |
616 } | 616 } |
617 | 617 |
618 bool MetadataDatabase::HasSyncRoot() const { | 618 bool MetadataDatabase::HasSyncRoot() const { |
619 return index_->GetSyncRootTrackerID() != kInvalidTrackerID; | 619 return index_->GetSyncRootTrackerID() != kInvalidTrackerID; |
620 } | 620 } |
621 | 621 |
622 SyncStatusCode MetadataDatabase::PopulateInitialData( | 622 SyncStatusCode MetadataDatabase::PopulateInitialData( |
623 int64_t largest_change_id, | 623 int64_t largest_change_id, |
624 const google_apis::FileResource& sync_root_folder, | 624 const google_apis::FileResource& sync_root_folder, |
625 const ScopedVector<google_apis::FileResource>& app_root_folders) { | 625 const std::vector<std::unique_ptr<google_apis::FileResource>>& |
| 626 app_root_folders) { |
626 index_->SetLargestChangeID(largest_change_id); | 627 index_->SetLargestChangeID(largest_change_id); |
627 UpdateLargestKnownChangeID(largest_change_id); | 628 UpdateLargestKnownChangeID(largest_change_id); |
628 | 629 |
629 AttachSyncRoot(sync_root_folder); | 630 AttachSyncRoot(sync_root_folder); |
630 for (size_t i = 0; i < app_root_folders.size(); ++i) | 631 for (size_t i = 0; i < app_root_folders.size(); ++i) |
631 AttachInitialAppRoot(*app_root_folders[i]); | 632 AttachInitialAppRoot(*app_root_folders[i]); |
632 | 633 |
633 if (NeedsSyncRootRevalidation()) { | 634 if (NeedsSyncRootRevalidation()) { |
634 index_->RemoveUnreachableItems(); | 635 index_->RemoveUnreachableItems(); |
635 index_->SetSyncRootRevalidated(); | 636 index_->SetSyncRootRevalidated(); |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
882 | 883 |
883 tracker_out->CopyFrom(tracker); | 884 tracker_out->CopyFrom(tracker); |
884 *path_out = path_out->Append(components[i]); | 885 *path_out = path_out->Append(components[i]); |
885 } | 886 } |
886 | 887 |
887 return true; | 888 return true; |
888 } | 889 } |
889 | 890 |
890 SyncStatusCode MetadataDatabase::UpdateByChangeList( | 891 SyncStatusCode MetadataDatabase::UpdateByChangeList( |
891 int64_t largest_change_id, | 892 int64_t largest_change_id, |
892 ScopedVector<google_apis::ChangeResource> changes) { | 893 std::vector<std::unique_ptr<google_apis::ChangeResource>> changes) { |
893 DCHECK_LE(index_->GetLargestChangeID(), largest_change_id); | 894 DCHECK_LE(index_->GetLargestChangeID(), largest_change_id); |
894 | 895 |
895 for (size_t i = 0; i < changes.size(); ++i) { | 896 for (size_t i = 0; i < changes.size(); ++i) { |
896 const google_apis::ChangeResource& change = *changes[i]; | 897 const google_apis::ChangeResource& change = *changes[i]; |
897 if (HasNewerFileMetadata(change.file_id(), change.change_id())) | 898 if (HasNewerFileMetadata(change.file_id(), change.change_id())) |
898 continue; | 899 continue; |
899 | 900 |
900 std::unique_ptr<FileMetadata> metadata( | 901 std::unique_ptr<FileMetadata> metadata( |
901 CreateFileMetadataFromChangeResource(change)); | 902 CreateFileMetadataFromChangeResource(change)); |
902 UpdateByFileMetadata(FROM_HERE, std::move(metadata), | 903 UpdateByFileMetadata(FROM_HERE, std::move(metadata), |
903 UPDATE_TRACKER_FOR_UNSYNCED_FILE); | 904 UPDATE_TRACKER_FOR_UNSYNCED_FILE); |
904 } | 905 } |
905 | 906 |
906 UpdateLargestKnownChangeID(largest_change_id); | 907 UpdateLargestKnownChangeID(largest_change_id); |
907 index_->SetLargestChangeID(largest_change_id); | 908 index_->SetLargestChangeID(largest_change_id); |
908 return WriteToDatabase(); | 909 return WriteToDatabase(); |
909 } | 910 } |
910 | 911 |
911 SyncStatusCode MetadataDatabase::UpdateByFileResource( | 912 SyncStatusCode MetadataDatabase::UpdateByFileResource( |
912 const google_apis::FileResource& resource) { | 913 const google_apis::FileResource& resource) { |
913 std::unique_ptr<FileMetadata> metadata( | 914 std::unique_ptr<FileMetadata> metadata( |
914 CreateFileMetadataFromFileResource(GetLargestKnownChangeID(), resource)); | 915 CreateFileMetadataFromFileResource(GetLargestKnownChangeID(), resource)); |
915 UpdateByFileMetadata(FROM_HERE, std::move(metadata), | 916 UpdateByFileMetadata(FROM_HERE, std::move(metadata), |
916 UPDATE_TRACKER_FOR_UNSYNCED_FILE); | 917 UPDATE_TRACKER_FOR_UNSYNCED_FILE); |
917 return WriteToDatabase(); | 918 return WriteToDatabase(); |
918 } | 919 } |
919 | 920 |
920 SyncStatusCode MetadataDatabase::UpdateByFileResourceList( | 921 SyncStatusCode MetadataDatabase::UpdateByFileResourceList( |
921 ScopedVector<google_apis::FileResource> resources) { | 922 std::vector<std::unique_ptr<google_apis::FileResource>> resources) { |
922 for (size_t i = 0; i < resources.size(); ++i) { | 923 for (size_t i = 0; i < resources.size(); ++i) { |
923 std::unique_ptr<FileMetadata> metadata(CreateFileMetadataFromFileResource( | 924 std::unique_ptr<FileMetadata> metadata(CreateFileMetadataFromFileResource( |
924 GetLargestKnownChangeID(), *resources[i])); | 925 GetLargestKnownChangeID(), *resources[i])); |
925 UpdateByFileMetadata(FROM_HERE, std::move(metadata), | 926 UpdateByFileMetadata(FROM_HERE, std::move(metadata), |
926 UPDATE_TRACKER_FOR_UNSYNCED_FILE); | 927 UPDATE_TRACKER_FOR_UNSYNCED_FILE); |
927 } | 928 } |
928 return WriteToDatabase(); | 929 return WriteToDatabase(); |
929 } | 930 } |
930 | 931 |
931 SyncStatusCode MetadataDatabase::UpdateByDeletedRemoteFile( | 932 SyncStatusCode MetadataDatabase::UpdateByDeletedRemoteFile( |
(...skipping 872 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1804 return false; | 1805 return false; |
1805 | 1806 |
1806 if (!parents.empty()) | 1807 if (!parents.empty()) |
1807 return false; | 1808 return false; |
1808 | 1809 |
1809 return true; | 1810 return true; |
1810 } | 1811 } |
1811 | 1812 |
1812 } // namespace drive_backend | 1813 } // namespace drive_backend |
1813 } // namespace sync_file_system | 1814 } // namespace sync_file_system |
OLD | NEW |