| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_index.
h" | 5 #include "chrome/browser/sync_file_system/drive_backend/metadata_database_index.
h" |
| 6 | 6 |
| 7 #include <tuple> | 7 #include <tuple> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 | 163 |
| 164 AppendContents( | 164 AppendContents( |
| 165 LookUpMap(trackers_by_parent, tracker_id, std::set<int64_t>()), | 165 LookUpMap(trackers_by_parent, tracker_id, std::set<int64_t>()), |
| 166 &pending); | 166 &pending); |
| 167 } | 167 } |
| 168 | 168 |
| 169 // Delete all unreachable trackers. | 169 // Delete all unreachable trackers. |
| 170 ScopedVector<FileTracker> reachable_trackers; | 170 ScopedVector<FileTracker> reachable_trackers; |
| 171 for (size_t i = 0; i < contents->file_trackers.size(); ++i) { | 171 for (size_t i = 0; i < contents->file_trackers.size(); ++i) { |
| 172 FileTracker* tracker = contents->file_trackers[i]; | 172 FileTracker* tracker = contents->file_trackers[i]; |
| 173 if (ContainsKey(visited_trackers, tracker->tracker_id())) { | 173 if (base::ContainsKey(visited_trackers, tracker->tracker_id())) { |
| 174 reachable_trackers.push_back(tracker); | 174 reachable_trackers.push_back(tracker); |
| 175 contents->file_trackers[i] = nullptr; | 175 contents->file_trackers[i] = nullptr; |
| 176 } else { | 176 } else { |
| 177 PutFileTrackerDeletionToDB(tracker->tracker_id(), db); | 177 PutFileTrackerDeletionToDB(tracker->tracker_id(), db); |
| 178 } | 178 } |
| 179 } | 179 } |
| 180 contents->file_trackers = std::move(reachable_trackers); | 180 contents->file_trackers = std::move(reachable_trackers); |
| 181 | 181 |
| 182 // List all |file_id| referred by a tracker. | 182 // List all |file_id| referred by a tracker. |
| 183 base::hash_set<std::string> referred_file_ids; | 183 base::hash_set<std::string> referred_file_ids; |
| 184 for (size_t i = 0; i < contents->file_trackers.size(); ++i) | 184 for (size_t i = 0; i < contents->file_trackers.size(); ++i) |
| 185 referred_file_ids.insert(contents->file_trackers[i]->file_id()); | 185 referred_file_ids.insert(contents->file_trackers[i]->file_id()); |
| 186 | 186 |
| 187 // Delete all unreferred metadata. | 187 // Delete all unreferred metadata. |
| 188 ScopedVector<FileMetadata> referred_file_metadata; | 188 ScopedVector<FileMetadata> referred_file_metadata; |
| 189 for (size_t i = 0; i < contents->file_metadata.size(); ++i) { | 189 for (size_t i = 0; i < contents->file_metadata.size(); ++i) { |
| 190 FileMetadata* metadata = contents->file_metadata[i]; | 190 FileMetadata* metadata = contents->file_metadata[i]; |
| 191 if (ContainsKey(referred_file_ids, metadata->file_id())) { | 191 if (base::ContainsKey(referred_file_ids, metadata->file_id())) { |
| 192 referred_file_metadata.push_back(metadata); | 192 referred_file_metadata.push_back(metadata); |
| 193 contents->file_metadata[i] = nullptr; | 193 contents->file_metadata[i] = nullptr; |
| 194 } else { | 194 } else { |
| 195 PutFileMetadataDeletionToDB(metadata->file_id(), db); | 195 PutFileMetadataDeletionToDB(metadata->file_id(), db); |
| 196 } | 196 } |
| 197 } | 197 } |
| 198 contents->file_metadata = std::move(referred_file_metadata); | 198 contents->file_metadata = std::move(referred_file_metadata); |
| 199 } | 199 } |
| 200 | 200 |
| 201 } // namespace | 201 } // namespace |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 515 } | 515 } |
| 516 | 516 |
| 517 void MetadataDatabaseIndex::AddToAppIDIndex( | 517 void MetadataDatabaseIndex::AddToAppIDIndex( |
| 518 const FileTracker& new_tracker) { | 518 const FileTracker& new_tracker) { |
| 519 if (!IsAppRoot(new_tracker)) | 519 if (!IsAppRoot(new_tracker)) |
| 520 return; | 520 return; |
| 521 | 521 |
| 522 DVLOG(3) << " Add to app_root_by_app_id_: " << new_tracker.app_id(); | 522 DVLOG(3) << " Add to app_root_by_app_id_: " << new_tracker.app_id(); |
| 523 | 523 |
| 524 DCHECK(new_tracker.active()); | 524 DCHECK(new_tracker.active()); |
| 525 DCHECK(!ContainsKey(app_root_by_app_id_, new_tracker.app_id())); | 525 DCHECK(!base::ContainsKey(app_root_by_app_id_, new_tracker.app_id())); |
| 526 app_root_by_app_id_[new_tracker.app_id()] = new_tracker.tracker_id(); | 526 app_root_by_app_id_[new_tracker.app_id()] = new_tracker.tracker_id(); |
| 527 } | 527 } |
| 528 | 528 |
| 529 void MetadataDatabaseIndex::UpdateInAppIDIndex( | 529 void MetadataDatabaseIndex::UpdateInAppIDIndex( |
| 530 const FileTracker& old_tracker, | 530 const FileTracker& old_tracker, |
| 531 const FileTracker& new_tracker) { | 531 const FileTracker& new_tracker) { |
| 532 DCHECK_EQ(old_tracker.tracker_id(), new_tracker.tracker_id()); | 532 DCHECK_EQ(old_tracker.tracker_id(), new_tracker.tracker_id()); |
| 533 | 533 |
| 534 if (IsAppRoot(old_tracker) && !IsAppRoot(new_tracker)) { | 534 if (IsAppRoot(old_tracker) && !IsAppRoot(new_tracker)) { |
| 535 DCHECK(old_tracker.active()); | 535 DCHECK(old_tracker.active()); |
| 536 DCHECK(!new_tracker.active()); | 536 DCHECK(!new_tracker.active()); |
| 537 DCHECK(ContainsKey(app_root_by_app_id_, old_tracker.app_id())); | 537 DCHECK(base::ContainsKey(app_root_by_app_id_, old_tracker.app_id())); |
| 538 | 538 |
| 539 DVLOG(3) << " Remove from app_root_by_app_id_: " << old_tracker.app_id(); | 539 DVLOG(3) << " Remove from app_root_by_app_id_: " << old_tracker.app_id(); |
| 540 | 540 |
| 541 app_root_by_app_id_.erase(old_tracker.app_id()); | 541 app_root_by_app_id_.erase(old_tracker.app_id()); |
| 542 } else if (!IsAppRoot(old_tracker) && IsAppRoot(new_tracker)) { | 542 } else if (!IsAppRoot(old_tracker) && IsAppRoot(new_tracker)) { |
| 543 DCHECK(!old_tracker.active()); | 543 DCHECK(!old_tracker.active()); |
| 544 DCHECK(new_tracker.active()); | 544 DCHECK(new_tracker.active()); |
| 545 DCHECK(!ContainsKey(app_root_by_app_id_, new_tracker.app_id())); | 545 DCHECK(!base::ContainsKey(app_root_by_app_id_, new_tracker.app_id())); |
| 546 | 546 |
| 547 DVLOG(3) << " Add to app_root_by_app_id_: " << new_tracker.app_id(); | 547 DVLOG(3) << " Add to app_root_by_app_id_: " << new_tracker.app_id(); |
| 548 | 548 |
| 549 app_root_by_app_id_[new_tracker.app_id()] = new_tracker.tracker_id(); | 549 app_root_by_app_id_[new_tracker.app_id()] = new_tracker.tracker_id(); |
| 550 } | 550 } |
| 551 } | 551 } |
| 552 | 552 |
| 553 void MetadataDatabaseIndex::RemoveFromAppIDIndex( | 553 void MetadataDatabaseIndex::RemoveFromAppIDIndex( |
| 554 const FileTracker& tracker) { | 554 const FileTracker& tracker) { |
| 555 if (IsAppRoot(tracker)) { | 555 if (IsAppRoot(tracker)) { |
| 556 DCHECK(tracker.active()); | 556 DCHECK(tracker.active()); |
| 557 DCHECK(ContainsKey(app_root_by_app_id_, tracker.app_id())); | 557 DCHECK(base::ContainsKey(app_root_by_app_id_, tracker.app_id())); |
| 558 | 558 |
| 559 DVLOG(3) << " Remove from app_root_by_app_id_: " << tracker.app_id(); | 559 DVLOG(3) << " Remove from app_root_by_app_id_: " << tracker.app_id(); |
| 560 | 560 |
| 561 app_root_by_app_id_.erase(tracker.app_id()); | 561 app_root_by_app_id_.erase(tracker.app_id()); |
| 562 } | 562 } |
| 563 } | 563 } |
| 564 | 564 |
| 565 void MetadataDatabaseIndex::AddToFileIDIndexes( | 565 void MetadataDatabaseIndex::AddToFileIDIndexes( |
| 566 const FileTracker& new_tracker) { | 566 const FileTracker& new_tracker) { |
| 567 DVLOG(3) << " Add to trackers_by_file_id_: " << new_tracker.file_id(); | 567 DVLOG(3) << " Add to trackers_by_file_id_: " << new_tracker.file_id(); |
| 568 | 568 |
| 569 trackers_by_file_id_[new_tracker.file_id()].Insert(new_tracker); | 569 trackers_by_file_id_[new_tracker.file_id()].Insert(new_tracker); |
| 570 | 570 |
| 571 if (trackers_by_file_id_[new_tracker.file_id()].size() > 1) { | 571 if (trackers_by_file_id_[new_tracker.file_id()].size() > 1) { |
| 572 DVLOG_IF(3, !ContainsKey(multi_tracker_file_ids_, new_tracker.file_id())) | 572 DVLOG_IF(3, |
| 573 !base::ContainsKey(multi_tracker_file_ids_, new_tracker.file_id())) |
| 573 << " Add to multi_tracker_file_ids_: " << new_tracker.file_id(); | 574 << " Add to multi_tracker_file_ids_: " << new_tracker.file_id(); |
| 574 multi_tracker_file_ids_.insert(new_tracker.file_id()); | 575 multi_tracker_file_ids_.insert(new_tracker.file_id()); |
| 575 } | 576 } |
| 576 } | 577 } |
| 577 | 578 |
| 578 void MetadataDatabaseIndex::UpdateInFileIDIndexes( | 579 void MetadataDatabaseIndex::UpdateInFileIDIndexes( |
| 579 const FileTracker& old_tracker, | 580 const FileTracker& old_tracker, |
| 580 const FileTracker& new_tracker) { | 581 const FileTracker& new_tracker) { |
| 581 DCHECK_EQ(old_tracker.tracker_id(), new_tracker.tracker_id()); | 582 DCHECK_EQ(old_tracker.tracker_id(), new_tracker.tracker_id()); |
| 582 DCHECK_EQ(old_tracker.file_id(), new_tracker.file_id()); | 583 DCHECK_EQ(old_tracker.file_id(), new_tracker.file_id()); |
| 583 | 584 |
| 584 std::string file_id = new_tracker.file_id(); | 585 std::string file_id = new_tracker.file_id(); |
| 585 DCHECK(ContainsKey(trackers_by_file_id_, file_id)); | 586 DCHECK(base::ContainsKey(trackers_by_file_id_, file_id)); |
| 586 | 587 |
| 587 if (old_tracker.active() && !new_tracker.active()) | 588 if (old_tracker.active() && !new_tracker.active()) |
| 588 trackers_by_file_id_[file_id].Deactivate(new_tracker.tracker_id()); | 589 trackers_by_file_id_[file_id].Deactivate(new_tracker.tracker_id()); |
| 589 else if (!old_tracker.active() && new_tracker.active()) | 590 else if (!old_tracker.active() && new_tracker.active()) |
| 590 trackers_by_file_id_[file_id].Activate(new_tracker.tracker_id()); | 591 trackers_by_file_id_[file_id].Activate(new_tracker.tracker_id()); |
| 591 } | 592 } |
| 592 | 593 |
| 593 void MetadataDatabaseIndex::RemoveFromFileIDIndexes( | 594 void MetadataDatabaseIndex::RemoveFromFileIDIndexes( |
| 594 const FileTracker& tracker) { | 595 const FileTracker& tracker) { |
| 595 TrackerIDsByFileID::iterator found = | 596 TrackerIDsByFileID::iterator found = |
| 596 trackers_by_file_id_.find(tracker.file_id()); | 597 trackers_by_file_id_.find(tracker.file_id()); |
| 597 if (found == trackers_by_file_id_.end()) { | 598 if (found == trackers_by_file_id_.end()) { |
| 598 NOTREACHED(); | 599 NOTREACHED(); |
| 599 return; | 600 return; |
| 600 } | 601 } |
| 601 | 602 |
| 602 DVLOG(3) << " Remove from trackers_by_file_id_: " | 603 DVLOG(3) << " Remove from trackers_by_file_id_: " |
| 603 << tracker.tracker_id(); | 604 << tracker.tracker_id(); |
| 604 found->second.Erase(tracker.tracker_id()); | 605 found->second.Erase(tracker.tracker_id()); |
| 605 | 606 |
| 606 if (trackers_by_file_id_[tracker.file_id()].size() <= 1) { | 607 if (trackers_by_file_id_[tracker.file_id()].size() <= 1) { |
| 607 DVLOG_IF(3, ContainsKey(multi_tracker_file_ids_, tracker.file_id())) | 608 DVLOG_IF(3, base::ContainsKey(multi_tracker_file_ids_, tracker.file_id())) |
| 608 << " Remove from multi_tracker_file_ids_: " << tracker.file_id(); | 609 << " Remove from multi_tracker_file_ids_: " << tracker.file_id(); |
| 609 multi_tracker_file_ids_.erase(tracker.file_id()); | 610 multi_tracker_file_ids_.erase(tracker.file_id()); |
| 610 } | 611 } |
| 611 | 612 |
| 612 if (found->second.empty()) | 613 if (found->second.empty()) |
| 613 trackers_by_file_id_.erase(found); | 614 trackers_by_file_id_.erase(found); |
| 614 } | 615 } |
| 615 | 616 |
| 616 void MetadataDatabaseIndex::AddToPathIndexes( | 617 void MetadataDatabaseIndex::AddToPathIndexes( |
| 617 const FileTracker& new_tracker) { | 618 const FileTracker& new_tracker) { |
| 618 int64_t parent = new_tracker.parent_tracker_id(); | 619 int64_t parent = new_tracker.parent_tracker_id(); |
| 619 std::string title = GetTrackerTitle(new_tracker); | 620 std::string title = GetTrackerTitle(new_tracker); |
| 620 | 621 |
| 621 DVLOG(3) << " Add to trackers_by_parent_and_title_: " | 622 DVLOG(3) << " Add to trackers_by_parent_and_title_: " |
| 622 << parent << " " << title; | 623 << parent << " " << title; |
| 623 | 624 |
| 624 trackers_by_parent_and_title_[parent][title].Insert(new_tracker); | 625 trackers_by_parent_and_title_[parent][title].Insert(new_tracker); |
| 625 | 626 |
| 626 if (trackers_by_parent_and_title_[parent][title].size() > 1 && | 627 if (trackers_by_parent_and_title_[parent][title].size() > 1 && |
| 627 !title.empty()) { | 628 !title.empty()) { |
| 628 DVLOG_IF(3, !ContainsKey(multi_backing_file_paths_, | 629 DVLOG_IF(3, !base::ContainsKey(multi_backing_file_paths_, |
| 629 ParentIDAndTitle(parent, title))) | 630 ParentIDAndTitle(parent, title))) |
| 630 << " Add to multi_backing_file_paths_: " << parent << " " << title; | 631 << " Add to multi_backing_file_paths_: " << parent << " " << title; |
| 631 multi_backing_file_paths_.insert(ParentIDAndTitle(parent, title)); | 632 multi_backing_file_paths_.insert(ParentIDAndTitle(parent, title)); |
| 632 } | 633 } |
| 633 } | 634 } |
| 634 | 635 |
| 635 void MetadataDatabaseIndex::UpdateInPathIndexes( | 636 void MetadataDatabaseIndex::UpdateInPathIndexes( |
| 636 const FileTracker& old_tracker, | 637 const FileTracker& old_tracker, |
| 637 const FileTracker& new_tracker) { | 638 const FileTracker& new_tracker) { |
| 638 DCHECK_EQ(old_tracker.tracker_id(), new_tracker.tracker_id()); | 639 DCHECK_EQ(old_tracker.tracker_id(), new_tracker.tracker_id()); |
| 639 DCHECK_EQ(old_tracker.parent_tracker_id(), new_tracker.parent_tracker_id()); | 640 DCHECK_EQ(old_tracker.parent_tracker_id(), new_tracker.parent_tracker_id()); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 660 NOTREACHED(); | 661 NOTREACHED(); |
| 661 } | 662 } |
| 662 | 663 |
| 663 DVLOG(3) << " Add to trackers_by_parent_and_title_: " | 664 DVLOG(3) << " Add to trackers_by_parent_and_title_: " |
| 664 << parent << " " << title; | 665 << parent << " " << title; |
| 665 | 666 |
| 666 (*trackers_by_title)[title].Insert(new_tracker); | 667 (*trackers_by_title)[title].Insert(new_tracker); |
| 667 | 668 |
| 668 if (trackers_by_parent_and_title_[parent][old_title].size() <= 1 && | 669 if (trackers_by_parent_and_title_[parent][old_title].size() <= 1 && |
| 669 !old_title.empty()) { | 670 !old_title.empty()) { |
| 670 DVLOG_IF(3, ContainsKey(multi_backing_file_paths_, | 671 DVLOG_IF(3, base::ContainsKey(multi_backing_file_paths_, |
| 671 ParentIDAndTitle(parent, old_title))) | 672 ParentIDAndTitle(parent, old_title))) |
| 672 << " Remove from multi_backing_file_paths_: " | 673 << " Remove from multi_backing_file_paths_: " << parent << " " |
| 673 << parent << " " << old_title; | 674 << old_title; |
| 674 multi_backing_file_paths_.erase(ParentIDAndTitle(parent, old_title)); | 675 multi_backing_file_paths_.erase(ParentIDAndTitle(parent, old_title)); |
| 675 } | 676 } |
| 676 | 677 |
| 677 if (trackers_by_parent_and_title_[parent][title].size() > 1 && | 678 if (trackers_by_parent_and_title_[parent][title].size() > 1 && |
| 678 !title.empty()) { | 679 !title.empty()) { |
| 679 DVLOG_IF(3, !ContainsKey(multi_backing_file_paths_, | 680 DVLOG_IF(3, !base::ContainsKey(multi_backing_file_paths_, |
| 680 ParentIDAndTitle(parent, title))) | 681 ParentIDAndTitle(parent, title))) |
| 681 << " Add to multi_backing_file_paths_: " << parent << " " << title; | 682 << " Add to multi_backing_file_paths_: " << parent << " " << title; |
| 682 multi_backing_file_paths_.insert(ParentIDAndTitle(parent, title)); | 683 multi_backing_file_paths_.insert(ParentIDAndTitle(parent, title)); |
| 683 } | 684 } |
| 684 | 685 |
| 685 return; | 686 return; |
| 686 } | 687 } |
| 687 | 688 |
| 688 if (old_tracker.active() && !new_tracker.active()) | 689 if (old_tracker.active() && !new_tracker.active()) |
| 689 trackers_by_parent_and_title_[parent][title].Deactivate(tracker_id); | 690 trackers_by_parent_and_title_[parent][title].Deactivate(tracker_id); |
| 690 else if (!old_tracker.active() && new_tracker.active()) | 691 else if (!old_tracker.active() && new_tracker.active()) |
| 691 trackers_by_parent_and_title_[parent][title].Activate(tracker_id); | 692 trackers_by_parent_and_title_[parent][title].Activate(tracker_id); |
| 692 } | 693 } |
| 693 | 694 |
| 694 void MetadataDatabaseIndex::RemoveFromPathIndexes( | 695 void MetadataDatabaseIndex::RemoveFromPathIndexes( |
| 695 const FileTracker& tracker) { | 696 const FileTracker& tracker) { |
| 696 int64_t tracker_id = tracker.tracker_id(); | 697 int64_t tracker_id = tracker.tracker_id(); |
| 697 int64_t parent = tracker.parent_tracker_id(); | 698 int64_t parent = tracker.parent_tracker_id(); |
| 698 std::string title = GetTrackerTitle(tracker); | 699 std::string title = GetTrackerTitle(tracker); |
| 699 | 700 |
| 700 DCHECK(ContainsKey(trackers_by_parent_and_title_, parent)); | 701 DCHECK(base::ContainsKey(trackers_by_parent_and_title_, parent)); |
| 701 DCHECK(ContainsKey(trackers_by_parent_and_title_[parent], title)); | 702 DCHECK(base::ContainsKey(trackers_by_parent_and_title_[parent], title)); |
| 702 | 703 |
| 703 DVLOG(3) << " Remove from trackers_by_parent_and_title_: " | 704 DVLOG(3) << " Remove from trackers_by_parent_and_title_: " |
| 704 << parent << " " << title; | 705 << parent << " " << title; |
| 705 | 706 |
| 706 trackers_by_parent_and_title_[parent][title].Erase(tracker_id); | 707 trackers_by_parent_and_title_[parent][title].Erase(tracker_id); |
| 707 | 708 |
| 708 if (trackers_by_parent_and_title_[parent][title].size() <= 1 && | 709 if (trackers_by_parent_and_title_[parent][title].size() <= 1 && |
| 709 !title.empty()) { | 710 !title.empty()) { |
| 710 DVLOG_IF(3, ContainsKey(multi_backing_file_paths_, | 711 DVLOG_IF(3, base::ContainsKey(multi_backing_file_paths_, |
| 711 ParentIDAndTitle(parent, title))) | 712 ParentIDAndTitle(parent, title))) |
| 712 << " Remove from multi_backing_file_paths_: " | 713 << " Remove from multi_backing_file_paths_: " << parent << " " |
| 713 << parent << " " << title; | 714 << title; |
| 714 multi_backing_file_paths_.erase(ParentIDAndTitle(parent, title)); | 715 multi_backing_file_paths_.erase(ParentIDAndTitle(parent, title)); |
| 715 } | 716 } |
| 716 | 717 |
| 717 if (trackers_by_parent_and_title_[parent][title].empty()) { | 718 if (trackers_by_parent_and_title_[parent][title].empty()) { |
| 718 trackers_by_parent_and_title_[parent].erase(title); | 719 trackers_by_parent_and_title_[parent].erase(title); |
| 719 if (trackers_by_parent_and_title_[parent].empty()) | 720 if (trackers_by_parent_and_title_[parent].empty()) |
| 720 trackers_by_parent_and_title_.erase(parent); | 721 trackers_by_parent_and_title_.erase(parent); |
| 721 } | 722 } |
| 722 } | 723 } |
| 723 | 724 |
| 724 void MetadataDatabaseIndex::AddToDirtyTrackerIndexes( | 725 void MetadataDatabaseIndex::AddToDirtyTrackerIndexes( |
| 725 const FileTracker& new_tracker) { | 726 const FileTracker& new_tracker) { |
| 726 DCHECK(!ContainsKey(dirty_trackers_, new_tracker.tracker_id())); | 727 DCHECK(!base::ContainsKey(dirty_trackers_, new_tracker.tracker_id())); |
| 727 DCHECK(!ContainsKey(demoted_dirty_trackers_, new_tracker.tracker_id())); | 728 DCHECK(!base::ContainsKey(demoted_dirty_trackers_, new_tracker.tracker_id())); |
| 728 | 729 |
| 729 if (new_tracker.dirty()) { | 730 if (new_tracker.dirty()) { |
| 730 DVLOG(3) << " Add to dirty_trackers_: " << new_tracker.tracker_id(); | 731 DVLOG(3) << " Add to dirty_trackers_: " << new_tracker.tracker_id(); |
| 731 dirty_trackers_.insert(new_tracker.tracker_id()); | 732 dirty_trackers_.insert(new_tracker.tracker_id()); |
| 732 } | 733 } |
| 733 } | 734 } |
| 734 | 735 |
| 735 void MetadataDatabaseIndex::UpdateInDirtyTrackerIndexes( | 736 void MetadataDatabaseIndex::UpdateInDirtyTrackerIndexes( |
| 736 const FileTracker& old_tracker, | 737 const FileTracker& old_tracker, |
| 737 const FileTracker& new_tracker) { | 738 const FileTracker& new_tracker) { |
| 738 DCHECK_EQ(old_tracker.tracker_id(), new_tracker.tracker_id()); | 739 DCHECK_EQ(old_tracker.tracker_id(), new_tracker.tracker_id()); |
| 739 | 740 |
| 740 int64_t tracker_id = new_tracker.tracker_id(); | 741 int64_t tracker_id = new_tracker.tracker_id(); |
| 741 if (old_tracker.dirty() && !new_tracker.dirty()) { | 742 if (old_tracker.dirty() && !new_tracker.dirty()) { |
| 742 DCHECK(ContainsKey(dirty_trackers_, tracker_id) || | 743 DCHECK(base::ContainsKey(dirty_trackers_, tracker_id) || |
| 743 ContainsKey(demoted_dirty_trackers_, tracker_id)); | 744 base::ContainsKey(demoted_dirty_trackers_, tracker_id)); |
| 744 | 745 |
| 745 DVLOG(3) << " Remove from dirty_trackers_: " << tracker_id; | 746 DVLOG(3) << " Remove from dirty_trackers_: " << tracker_id; |
| 746 | 747 |
| 747 dirty_trackers_.erase(tracker_id); | 748 dirty_trackers_.erase(tracker_id); |
| 748 demoted_dirty_trackers_.erase(tracker_id); | 749 demoted_dirty_trackers_.erase(tracker_id); |
| 749 } else if (!old_tracker.dirty() && new_tracker.dirty()) { | 750 } else if (!old_tracker.dirty() && new_tracker.dirty()) { |
| 750 DCHECK(!ContainsKey(dirty_trackers_, tracker_id)); | 751 DCHECK(!base::ContainsKey(dirty_trackers_, tracker_id)); |
| 751 DCHECK(!ContainsKey(demoted_dirty_trackers_, tracker_id)); | 752 DCHECK(!base::ContainsKey(demoted_dirty_trackers_, tracker_id)); |
| 752 | 753 |
| 753 DVLOG(3) << " Add to dirty_trackers_: " << tracker_id; | 754 DVLOG(3) << " Add to dirty_trackers_: " << tracker_id; |
| 754 | 755 |
| 755 dirty_trackers_.insert(tracker_id); | 756 dirty_trackers_.insert(tracker_id); |
| 756 } | 757 } |
| 757 } | 758 } |
| 758 | 759 |
| 759 void MetadataDatabaseIndex::RemoveFromDirtyTrackerIndexes( | 760 void MetadataDatabaseIndex::RemoveFromDirtyTrackerIndexes( |
| 760 const FileTracker& tracker) { | 761 const FileTracker& tracker) { |
| 761 if (tracker.dirty()) { | 762 if (tracker.dirty()) { |
| 762 int64_t tracker_id = tracker.tracker_id(); | 763 int64_t tracker_id = tracker.tracker_id(); |
| 763 DCHECK(ContainsKey(dirty_trackers_, tracker_id) || | 764 DCHECK(base::ContainsKey(dirty_trackers_, tracker_id) || |
| 764 ContainsKey(demoted_dirty_trackers_, tracker_id)); | 765 base::ContainsKey(demoted_dirty_trackers_, tracker_id)); |
| 765 | 766 |
| 766 DVLOG(3) << " Remove from dirty_trackers_: " << tracker_id; | 767 DVLOG(3) << " Remove from dirty_trackers_: " << tracker_id; |
| 767 dirty_trackers_.erase(tracker_id); | 768 dirty_trackers_.erase(tracker_id); |
| 768 | 769 |
| 769 demoted_dirty_trackers_.erase(tracker_id); | 770 demoted_dirty_trackers_.erase(tracker_id); |
| 770 } | 771 } |
| 771 } | 772 } |
| 772 | 773 |
| 773 } // namespace drive_backend | 774 } // namespace drive_backend |
| 774 } // namespace sync_file_system | 775 } // namespace sync_file_system |
| OLD | NEW |