Index: chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
index f61b49496d7919923cb9bab7764800ff70815d8e..ebbe799895dcb9d68f439c1aa0f88a2c95852f8b 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
@@ -719,8 +719,6 @@ void MetadataDatabase::PopulateInitialData( |
const ScopedVector<google_apis::FileResource>& app_root_folders, |
const SyncStatusCallback& callback) { |
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
- DCHECK(index_->tracker_by_id_.empty()); |
- DCHECK(index_->metadata_by_id_.empty()); |
scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch); |
service_metadata_->set_largest_change_id(largest_change_id); |
@@ -1467,8 +1465,7 @@ bool MetadataDatabase::HasDirtyTracker() const { |
size_t MetadataDatabase::CountDirtyTracker() const { |
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
- return index_->dirty_trackers_.size() + |
- index_->demoted_dirty_trackers_.size(); |
+ return index_->CountDirtyTracker(); |
} |
bool MetadataDatabase::GetMultiParentFileTrackers(std::string* file_id_out, |
@@ -1494,12 +1491,12 @@ bool MetadataDatabase::GetMultiParentFileTrackers(std::string* file_id_out, |
size_t MetadataDatabase::CountFileMetadata() const { |
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
- return index_->metadata_by_id_.size(); |
+ return index_->CountFileMetadata(); |
} |
size_t MetadataDatabase::CountFileTracker() const { |
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread()); |
- return index_->tracker_by_id_.size(); |
+ return index_->CountFileTracker(); |
} |
bool MetadataDatabase::GetConflictingTrackers(TrackerIDSet* trackers_out) { |
@@ -1976,29 +1973,35 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpTrackers() { |
trackers->Append(metadata); |
// Append tracker data. |
- for (MetadataDatabaseIndex::TrackerByID::const_iterator itr = |
- index_->tracker_by_id_.begin(); |
- itr != index_->tracker_by_id_.end(); ++itr) { |
- const FileTracker& tracker = *itr->second; |
+ std::vector<int64> tracker_ids(index_->GetAllTrackerIDs()); |
+ for (std::vector<int64>::const_iterator itr = tracker_ids.begin(); |
+ itr != tracker_ids.end(); ++itr) { |
+ const int64 tracker_id = *itr; |
+ const FileTracker* tracker = index_->GetFileTracker(tracker_id); |
+ if (!tracker) { |
+ NOTREACHED(); |
+ continue; |
+ } |
+ |
base::DictionaryValue* dict = new base::DictionaryValue; |
- base::FilePath path = BuildDisplayPathForTracker(tracker); |
- dict->SetString("tracker_id", base::Int64ToString(tracker.tracker_id())); |
+ base::FilePath path = BuildDisplayPathForTracker(*tracker); |
+ dict->SetString("tracker_id", base::Int64ToString(tracker_id)); |
dict->SetString("path", path.AsUTF8Unsafe()); |
- dict->SetString("file_id", tracker.file_id()); |
- TrackerKind tracker_kind = tracker.tracker_kind(); |
+ dict->SetString("file_id", tracker->file_id()); |
+ TrackerKind tracker_kind = tracker->tracker_kind(); |
dict->SetString( |
"tracker_kind", |
tracker_kind == TRACKER_KIND_APP_ROOT ? "AppRoot" : |
tracker_kind == TRACKER_KIND_DISABLED_APP_ROOT ? "Disabled App" : |
- tracker.tracker_id() == GetSyncRootTrackerID() ? "SyncRoot" : |
+ tracker->tracker_id() == GetSyncRootTrackerID() ? "SyncRoot" : |
"Regular"); |
- dict->SetString("app_id", tracker.app_id()); |
- dict->SetString("active", tracker.active() ? "true" : "false"); |
- dict->SetString("dirty", tracker.dirty() ? "true" : "false"); |
+ dict->SetString("app_id", tracker->app_id()); |
+ dict->SetString("active", tracker->active() ? "true" : "false"); |
+ dict->SetString("dirty", tracker->dirty() ? "true" : "false"); |
dict->SetString("folder_listing", |
- tracker.needs_folder_listing() ? "needed" : "no"); |
- if (tracker.has_synced_details()) { |
- const FileDetails& details = tracker.synced_details(); |
+ tracker->needs_folder_listing() ? "needed" : "no"); |
+ if (tracker->has_synced_details()) { |
+ const FileDetails& details = tracker->synced_details(); |
dict->SetString("title", details.title()); |
dict->SetString("kind", FileKindToString(details.file_kind())); |
dict->SetString("md5", details.md5()); |
@@ -2031,15 +2034,20 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpMetadata() { |
files->Append(metadata); |
// Append metadata data. |
- for (MetadataDatabaseIndex::MetadataByID::const_iterator itr = |
- index_->metadata_by_id_.begin(); |
- itr != index_->metadata_by_id_.end(); ++itr) { |
- const FileMetadata& file = *itr->second; |
+ std::vector<std::string> metadata_ids(index_->GetAllMetadataIDs()); |
+ for (std::vector<std::string>::const_iterator itr = metadata_ids.begin(); |
+ itr != metadata_ids.end(); ++itr) { |
+ const std::string& file_id = *itr; |
+ const FileMetadata *file = index_->GetFileMetadata(file_id); |
+ if (!file) { |
+ NOTREACHED(); |
+ continue; |
+ } |
base::DictionaryValue* dict = new base::DictionaryValue; |
- dict->SetString("file_id", file.file_id()); |
- if (file.has_details()) { |
- const FileDetails& details = file.details(); |
+ dict->SetString("file_id", file_id); |
+ if (file->has_details()) { |
+ const FileDetails& details = file->details(); |
dict->SetString("title", details.title()); |
dict->SetString("type", FileKindToString(details.file_kind())); |
dict->SetString("md5", details.md5()); |