Index: chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk.cc |
index a051a25e9dfa997d715430ad7a102da01c9d913d..9925445a86ae790816a238e1ea3c6160776825c1 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk.cc |
@@ -556,6 +556,27 @@ MetadataDatabaseIndexOnDisk::GetAllMetadataIDs() const { |
return file_ids; |
} |
+void MetadataDatabaseIndexOnDisk::BuildTrackerIndexes( |
+ leveldb::WriteBatch* batch) { |
+ scoped_ptr<leveldb::Iterator> itr(db_->NewIterator(leveldb::ReadOptions())); |
+ for (itr->Seek(kFileTrackerKeyPrefix); itr->Valid(); itr->Next()) { |
+ if (!RemovePrefix(itr->key().ToString(), kFileTrackerKeyPrefix, NULL)) |
+ break; |
+ |
+ FileTracker tracker; |
+ if (!tracker.ParseFromString(itr->value().ToString())) { |
+ util::Log(logging::LOG_WARNING, FROM_HERE, |
+ "Failed to parse a Tracker"); |
+ continue; |
+ } |
+ |
+ AddToAppIDIndex(tracker, batch); |
+ AddToFileIDIndexes(tracker, batch); |
+ AddToPathIndexes(tracker, batch); |
+ AddToDirtyTrackerIndexes(tracker, batch); |
+ } |
+} |
+ |
MetadataDatabaseIndexOnDisk::MetadataDatabaseIndexOnDisk(leveldb::DB* db) |
: db_(db) { |
// TODO(peria): Add UMA to measure the number of FileMetadata, FileTracker, |