Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: trunk/src/chrome/browser/sync_file_system/drive_backend/metadata_database.cc

Issue 102063002: Revert 238395 "Add some DVLOG's in MetadataDatabase::Update* met..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « trunk/src/chrome/browser/sync_file_system/drive_backend/metadata_database.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 779 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 return true; 790 return true;
791 } 791 }
792 792
793 *tracker = *trackers.active_tracker(); 793 *tracker = *trackers.active_tracker();
794 *path = path->Append(components[i]); 794 *path = path->Append(components[i]);
795 } 795 }
796 796
797 return true; 797 return true;
798 } 798 }
799 799
800 void MetadataDatabase::UpdateByFileMetadata(scoped_ptr<FileMetadata> file,
801 leveldb::WriteBatch* batch) {
802 DCHECK(file);
803 DCHECK(file->has_details());
804 std::string file_id = file->file_id();
805 if (file->details().missing()) {
806 TrackerSet trackers;
807 FindTrackersByFileID(file_id, &trackers);
808 for (TrackerSet::const_iterator itr = trackers.begin();
809 itr != trackers.end(); ++itr) {
810 const FileTracker& tracker = **itr;
811 if (!tracker.has_synced_details() ||
812 tracker.synced_details().missing()) {
813 RemoveTracker(tracker.tracker_id(), batch);
814 }
815 }
816 } else {
817 MaybeAddTrackersForNewFile(*file, batch);
818 }
819
820 if (FindTrackersByFileID(file_id, NULL)) {
821 MarkTrackersDirtyByFileID(file_id, batch);
822 PutFileToBatch(*file, batch);
823 FileMetadata* file_ptr = file.release();
824 std::swap(file_ptr, file_by_id_[file_id]);
825 delete file_ptr;
826 }
827 }
828
800 void MetadataDatabase::UpdateByChangeList( 829 void MetadataDatabase::UpdateByChangeList(
801 int64 largest_change_id, 830 int64 largest_change_id,
802 ScopedVector<google_apis::ChangeResource> changes, 831 ScopedVector<google_apis::ChangeResource> changes,
803 const SyncStatusCallback& callback) { 832 const SyncStatusCallback& callback) {
804 DCHECK_LE(service_metadata_->largest_change_id(), largest_change_id); 833 DCHECK_LE(service_metadata_->largest_change_id(), largest_change_id);
805 834
806 scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch); 835 scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
807 836
808 for (ScopedVector<google_apis::ChangeResource>::const_iterator itr = 837 for (ScopedVector<google_apis::ChangeResource>::const_iterator itr =
809 changes.begin(); 838 changes.begin();
810 itr != changes.end(); 839 itr != changes.end();
811 ++itr) { 840 ++itr) {
812 const google_apis::ChangeResource& change = **itr; 841 const google_apis::ChangeResource& change = **itr;
813 if (HasNewerFileMetadata(change.file_id(), change.change_id())) 842 if (HasNewerFileMetadata(change.file_id(), change.change_id()))
814 continue; 843 continue;
815 844
816 scoped_ptr<FileMetadata> file( 845 scoped_ptr<FileMetadata> file(
817 CreateFileMetadataFromChangeResource(change)); 846 CreateFileMetadataFromChangeResource(change));
818 UpdateByFileMetadata(FROM_HERE, file.Pass(), batch.get()); 847 UpdateByFileMetadata(file.Pass(), batch.get());
819 } 848 }
820 849
821 UpdateLargestKnownChangeID(largest_change_id); 850 UpdateLargestKnownChangeID(largest_change_id);
822 service_metadata_->set_largest_change_id(largest_change_id); 851 service_metadata_->set_largest_change_id(largest_change_id);
823 PutServiceMetadataToBatch(*service_metadata_, batch.get()); 852 PutServiceMetadataToBatch(*service_metadata_, batch.get());
824 WriteToDatabase(batch.Pass(), callback); 853 WriteToDatabase(batch.Pass(), callback);
825 } 854 }
826 855
827 void MetadataDatabase::UpdateByFileResource( 856 void MetadataDatabase::UpdateByFileResource(
828 const google_apis::FileResource& resource, 857 const google_apis::FileResource& resource,
829 const SyncStatusCallback& callback) { 858 const SyncStatusCallback& callback) {
830 scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch); 859 scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
831 860
832 scoped_ptr<FileMetadata> file( 861 scoped_ptr<FileMetadata> file(
833 CreateFileMetadataFromFileResource( 862 CreateFileMetadataFromFileResource(
834 GetLargestKnownChangeID(), resource)); 863 GetLargestKnownChangeID(), resource));
835 UpdateByFileMetadata(FROM_HERE, file.Pass(), batch.get()); 864 UpdateByFileMetadata(file.Pass(), batch.get());
836 WriteToDatabase(batch.Pass(), callback); 865 WriteToDatabase(batch.Pass(), callback);
837 } 866 }
838 867
839 void MetadataDatabase::UpdateByDeletedRemoteFile( 868 void MetadataDatabase::UpdateByDeletedRemoteFile(
840 const std::string& file_id, 869 const std::string& file_id,
841 const SyncStatusCallback& callback) { 870 const SyncStatusCallback& callback) {
842 scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch); 871 scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
843 scoped_ptr<FileMetadata> file( 872 scoped_ptr<FileMetadata> file(
844 CreateDeletedFileMetadata(GetLargestKnownChangeID(), file_id)); 873 CreateDeletedFileMetadata(GetLargestKnownChangeID(), file_id));
845 UpdateByFileMetadata(FROM_HERE, file.Pass(), batch.get()); 874 UpdateByFileMetadata(file.Pass(), batch.get());
846 WriteToDatabase(batch.Pass(), callback); 875 WriteToDatabase(batch.Pass(), callback);
847 } 876 }
848 877
849 void MetadataDatabase::ReplaceActiveTrackerWithNewResource( 878 void MetadataDatabase::ReplaceActiveTrackerWithNewResource(
850 int64 parent_tracker_id, 879 int64 parent_tracker_id,
851 const google_apis::FileResource& resource, 880 const google_apis::FileResource& resource,
852 const SyncStatusCallback& callback) { 881 const SyncStatusCallback& callback) {
853 scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch); 882 scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
854 883
855 scoped_ptr<FileMetadata> file( 884 scoped_ptr<FileMetadata> file(
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after
1669 TrackersByParentAndTitle::const_iterator found_by_parent = 1698 TrackersByParentAndTitle::const_iterator found_by_parent =
1670 trackers_by_parent_and_title_.find(parent_tracker_id); 1699 trackers_by_parent_and_title_.find(parent_tracker_id);
1671 if (found_by_parent == trackers_by_parent_and_title_.end()) 1700 if (found_by_parent == trackers_by_parent_and_title_.end())
1672 return false; 1701 return false;
1673 1702
1674 const TrackersByTitle& trackers_by_title = found_by_parent->second; 1703 const TrackersByTitle& trackers_by_title = found_by_parent->second;
1675 TrackersByTitle::const_iterator found = trackers_by_title.find(title); 1704 TrackersByTitle::const_iterator found = trackers_by_title.find(title);
1676 return found != trackers_by_title.end() && found->second.has_active(); 1705 return found != trackers_by_title.end() && found->second.has_active();
1677 } 1706 }
1678 1707
1679 void MetadataDatabase::UpdateByFileMetadata(
1680 const tracked_objects::Location& from_where,
1681 scoped_ptr<FileMetadata> file,
1682 leveldb::WriteBatch* batch) {
1683 DCHECK(file);
1684 DCHECK(file->has_details());
1685
1686 DVLOG(1) << from_where.function_name() << ": "
1687 << file->file_id() << " ("
1688 << file->details().title() << ")"
1689 << (file->details().missing() ? " deleted" : "");
1690
1691 std::string file_id = file->file_id();
1692 if (file->details().missing()) {
1693 TrackerSet trackers;
1694 FindTrackersByFileID(file_id, &trackers);
1695 for (TrackerSet::const_iterator itr = trackers.begin();
1696 itr != trackers.end(); ++itr) {
1697 const FileTracker& tracker = **itr;
1698 if (!tracker.has_synced_details() ||
1699 tracker.synced_details().missing()) {
1700 RemoveTracker(tracker.tracker_id(), batch);
1701 }
1702 }
1703 } else {
1704 MaybeAddTrackersForNewFile(*file, batch);
1705 }
1706
1707 if (FindTrackersByFileID(file_id, NULL)) {
1708 MarkTrackersDirtyByFileID(file_id, batch);
1709 PutFileToBatch(*file, batch);
1710 FileMetadata* file_ptr = file.release();
1711 std::swap(file_ptr, file_by_id_[file_id]);
1712 delete file_ptr;
1713 }
1714 }
1715
1716 void MetadataDatabase::WriteToDatabase(scoped_ptr<leveldb::WriteBatch> batch, 1708 void MetadataDatabase::WriteToDatabase(scoped_ptr<leveldb::WriteBatch> batch,
1717 const SyncStatusCallback& callback) { 1709 const SyncStatusCallback& callback) {
1718 base::PostTaskAndReplyWithResult( 1710 base::PostTaskAndReplyWithResult(
1719 task_runner_.get(), 1711 task_runner_.get(),
1720 FROM_HERE, 1712 FROM_HERE,
1721 base::Bind(&leveldb::DB::Write, 1713 base::Bind(&leveldb::DB::Write,
1722 base::Unretained(db_.get()), 1714 base::Unretained(db_.get()),
1723 leveldb::WriteOptions(), 1715 leveldb::WriteOptions(),
1724 base::Owned(batch.release())), 1716 base::Owned(batch.release())),
1725 base::Bind(&AdaptLevelDBStatusToSyncStatusCode, callback)); 1717 base::Bind(&AdaptLevelDBStatusToSyncStatusCode, callback));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1786 int64 change_id) { 1778 int64 change_id) {
1787 FileByID::const_iterator found = file_by_id_.find(file_id); 1779 FileByID::const_iterator found = file_by_id_.find(file_id);
1788 if (found == file_by_id_.end()) 1780 if (found == file_by_id_.end())
1789 return false; 1781 return false;
1790 DCHECK(found->second->has_details()); 1782 DCHECK(found->second->has_details());
1791 return found->second->details().change_id() >= change_id; 1783 return found->second->details().change_id() >= change_id;
1792 } 1784 }
1793 1785
1794 } // namespace drive_backend 1786 } // namespace drive_backend
1795 } // namespace sync_file_system 1787 } // namespace sync_file_system
OLDNEW
« no previous file with comments | « trunk/src/chrome/browser/sync_file_system/drive_backend/metadata_database.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698