| 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 <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <unordered_map> | 9 #include <unordered_map> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 FileDetails* details = file->mutable_details(); | 455 FileDetails* details = file->mutable_details(); |
| 456 details->set_md5( | 456 details->set_md5( |
| 457 "md5_value_" + base::Int64ToString(next_md5_sequence_number_++)); | 457 "md5_value_" + base::Int64ToString(next_md5_sequence_number_++)); |
| 458 details->set_change_id(++current_change_id_); | 458 details->set_change_id(++current_change_id_); |
| 459 } | 459 } |
| 460 | 460 |
| 461 void ApplyNoopChangeToMetadata(FileMetadata* file) { | 461 void ApplyNoopChangeToMetadata(FileMetadata* file) { |
| 462 file->mutable_details()->set_change_id(++current_change_id_); | 462 file->mutable_details()->set_change_id(++current_change_id_); |
| 463 } | 463 } |
| 464 | 464 |
| 465 void PushToChangeList(std::unique_ptr<google_apis::ChangeResource> change, | 465 void PushToChangeList( |
| 466 ScopedVector<google_apis::ChangeResource>* changes) { | 466 std::unique_ptr<google_apis::ChangeResource> change, |
| 467 changes->push_back(change.release()); | 467 std::vector<std::unique_ptr<google_apis::ChangeResource>>* changes) { |
| 468 changes->push_back(std::move(change)); |
| 468 } | 469 } |
| 469 | 470 |
| 470 leveldb::Status PutFileToDB(LevelDBWrapper* db, const FileMetadata& file) { | 471 leveldb::Status PutFileToDB(LevelDBWrapper* db, const FileMetadata& file) { |
| 471 PutFileMetadataToDB(file, db); | 472 PutFileMetadataToDB(file, db); |
| 472 return db->Commit(); | 473 return db->Commit(); |
| 473 } | 474 } |
| 474 | 475 |
| 475 leveldb::Status PutTrackerToDB(LevelDBWrapper* db, | 476 leveldb::Status PutTrackerToDB(LevelDBWrapper* db, |
| 476 const FileTracker& tracker) { | 477 const FileTracker& tracker) { |
| 477 PutFileTrackerToDB(tracker, db); | 478 PutFileTrackerToDB(tracker, db); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 | 580 |
| 580 SyncStatusCode EnableApp(const std::string& app_id) { | 581 SyncStatusCode EnableApp(const std::string& app_id) { |
| 581 return metadata_database_->EnableApp(app_id); | 582 return metadata_database_->EnableApp(app_id); |
| 582 } | 583 } |
| 583 | 584 |
| 584 SyncStatusCode UnregisterApp(const std::string& app_id) { | 585 SyncStatusCode UnregisterApp(const std::string& app_id) { |
| 585 return metadata_database_->UnregisterApp(app_id); | 586 return metadata_database_->UnregisterApp(app_id); |
| 586 } | 587 } |
| 587 | 588 |
| 588 SyncStatusCode UpdateByChangeList( | 589 SyncStatusCode UpdateByChangeList( |
| 589 ScopedVector<google_apis::ChangeResource> changes) { | 590 std::vector<std::unique_ptr<google_apis::ChangeResource>> changes) { |
| 590 return metadata_database_->UpdateByChangeList(current_change_id_, | 591 return metadata_database_->UpdateByChangeList(current_change_id_, |
| 591 std::move(changes)); | 592 std::move(changes)); |
| 592 } | 593 } |
| 593 | 594 |
| 594 SyncStatusCode PopulateFolder(const std::string& folder_id, | 595 SyncStatusCode PopulateFolder(const std::string& folder_id, |
| 595 const FileIDList& listed_children) { | 596 const FileIDList& listed_children) { |
| 596 return metadata_database_->PopulateFolderByChildList( | 597 return metadata_database_->PopulateFolderByChildList( |
| 597 folder_id, listed_children); | 598 folder_id, listed_children); |
| 598 } | 599 } |
| 599 | 600 |
| 600 SyncStatusCode UpdateTracker(const FileTracker& tracker) { | 601 SyncStatusCode UpdateTracker(const FileTracker& tracker) { |
| 601 return metadata_database_->UpdateTracker( | 602 return metadata_database_->UpdateTracker( |
| 602 tracker.tracker_id(), tracker.synced_details()); | 603 tracker.tracker_id(), tracker.synced_details()); |
| 603 } | 604 } |
| 604 | 605 |
| 605 SyncStatusCode PopulateInitialData( | 606 SyncStatusCode PopulateInitialData( |
| 606 int64_t largest_change_id, | 607 int64_t largest_change_id, |
| 607 const google_apis::FileResource& sync_root_folder, | 608 const google_apis::FileResource& sync_root_folder, |
| 608 const ScopedVector<google_apis::FileResource>& app_root_folders) { | 609 const std::vector<std::unique_ptr<google_apis::FileResource>>& |
| 610 app_root_folders) { |
| 609 return metadata_database_->PopulateInitialData( | 611 return metadata_database_->PopulateInitialData( |
| 610 largest_change_id, sync_root_folder, app_root_folders); | 612 largest_change_id, sync_root_folder, app_root_folders); |
| 611 } | 613 } |
| 612 | 614 |
| 613 void ResetTrackerID(FileTracker* tracker) { | 615 void ResetTrackerID(FileTracker* tracker) { |
| 614 tracker->set_tracker_id(GetTrackerIDByFileID(tracker->file_id())); | 616 tracker->set_tracker_id(GetTrackerIDByFileID(tracker->file_id())); |
| 615 } | 617 } |
| 616 | 618 |
| 617 int64_t current_change_id() const { return current_change_id_; } | 619 int64_t current_change_id() const { return current_change_id_; } |
| 618 | 620 |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 908 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); | 910 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); |
| 909 | 911 |
| 910 ApplyRenameChangeToMetadata("renamed", &renamed_file.metadata); | 912 ApplyRenameChangeToMetadata("renamed", &renamed_file.metadata); |
| 911 ApplyReorganizeChangeToMetadata(folder.metadata.file_id(), | 913 ApplyReorganizeChangeToMetadata(folder.metadata.file_id(), |
| 912 &reorganized_file.metadata); | 914 &reorganized_file.metadata); |
| 913 ApplyContentChangeToMetadata(&updated_file.metadata); | 915 ApplyContentChangeToMetadata(&updated_file.metadata); |
| 914 | 916 |
| 915 // Update change ID. | 917 // Update change ID. |
| 916 ApplyNoopChangeToMetadata(&noop_file.metadata); | 918 ApplyNoopChangeToMetadata(&noop_file.metadata); |
| 917 | 919 |
| 918 ScopedVector<google_apis::ChangeResource> changes; | 920 std::vector<std::unique_ptr<google_apis::ChangeResource>> changes; |
| 919 PushToChangeList( | 921 PushToChangeList( |
| 920 CreateChangeResourceFromMetadata(renamed_file.metadata), &changes); | 922 CreateChangeResourceFromMetadata(renamed_file.metadata), &changes); |
| 921 PushToChangeList( | 923 PushToChangeList( |
| 922 CreateChangeResourceFromMetadata(reorganized_file.metadata), &changes); | 924 CreateChangeResourceFromMetadata(reorganized_file.metadata), &changes); |
| 923 PushToChangeList( | 925 PushToChangeList( |
| 924 CreateChangeResourceFromMetadata(updated_file.metadata), &changes); | 926 CreateChangeResourceFromMetadata(updated_file.metadata), &changes); |
| 925 PushToChangeList( | 927 PushToChangeList( |
| 926 CreateChangeResourceFromMetadata(noop_file.metadata), &changes); | 928 CreateChangeResourceFromMetadata(noop_file.metadata), &changes); |
| 927 PushToChangeList( | 929 PushToChangeList( |
| 928 CreateChangeResourceFromMetadata(new_file.metadata), &changes); | 930 CreateChangeResourceFromMetadata(new_file.metadata), &changes); |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1112 | 1114 |
| 1113 const TrackedFile* tracked_files[] = { | 1115 const TrackedFile* tracked_files[] = { |
| 1114 &sync_root, &app_root | 1116 &sync_root, &app_root |
| 1115 }; | 1117 }; |
| 1116 | 1118 |
| 1117 std::unique_ptr<google_apis::FileResource> sync_root_folder( | 1119 std::unique_ptr<google_apis::FileResource> sync_root_folder( |
| 1118 CreateFileResourceFromMetadata(sync_root.metadata)); | 1120 CreateFileResourceFromMetadata(sync_root.metadata)); |
| 1119 std::unique_ptr<google_apis::FileResource> app_root_folder( | 1121 std::unique_ptr<google_apis::FileResource> app_root_folder( |
| 1120 CreateFileResourceFromMetadata(app_root.metadata)); | 1122 CreateFileResourceFromMetadata(app_root.metadata)); |
| 1121 | 1123 |
| 1122 ScopedVector<google_apis::FileResource> app_root_folders; | 1124 std::vector<std::unique_ptr<google_apis::FileResource>> app_root_folders; |
| 1123 app_root_folders.push_back(app_root_folder.release()); | 1125 app_root_folders.push_back(std::move(app_root_folder)); |
| 1124 | 1126 |
| 1125 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); | 1127 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); |
| 1126 EXPECT_EQ(SYNC_STATUS_OK, PopulateInitialData( | 1128 EXPECT_EQ(SYNC_STATUS_OK, PopulateInitialData( |
| 1127 current_change_id(), | 1129 current_change_id(), |
| 1128 *sync_root_folder, | 1130 *sync_root_folder, |
| 1129 app_root_folders)); | 1131 app_root_folders)); |
| 1130 | 1132 |
| 1131 ResetTrackerID(&sync_root.tracker); | 1133 ResetTrackerID(&sync_root.tracker); |
| 1132 ResetTrackerID(&app_root.tracker); | 1134 ResetTrackerID(&app_root.tracker); |
| 1133 app_root.tracker.set_parent_tracker_id(sync_root.tracker.tracker_id()); | 1135 app_root.tracker.set_parent_tracker_id(sync_root.tracker.tracker_id()); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1165 EXPECT_TRUE(file->HasKey("details")); | 1167 EXPECT_TRUE(file->HasKey("details")); |
| 1166 | 1168 |
| 1167 ASSERT_TRUE(files->GetDictionary(1, &file)); | 1169 ASSERT_TRUE(files->GetDictionary(1, &file)); |
| 1168 EXPECT_TRUE(file->GetString("title", &str) && str == "file_0"); | 1170 EXPECT_TRUE(file->GetString("title", &str) && str == "file_0"); |
| 1169 EXPECT_TRUE(file->GetString("type", &str) && str == "file"); | 1171 EXPECT_TRUE(file->GetString("type", &str) && str == "file"); |
| 1170 EXPECT_TRUE(file->HasKey("details")); | 1172 EXPECT_TRUE(file->HasKey("details")); |
| 1171 } | 1173 } |
| 1172 | 1174 |
| 1173 } // namespace drive_backend | 1175 } // namespace drive_backend |
| 1174 } // namespace sync_file_system | 1176 } // namespace sync_file_system |
| OLD | NEW |