| 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());
|
|
|