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

Unified Diff: chrome/browser/sync_file_system/drive_backend/metadata_database.cc

Issue 388913005: [SyncFS] Migrate ServiceMetadata from MDDB to MDDBIndex. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Work for nits Created 6 years, 5 months 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 side-by-side diff with in-line comments
Download patch
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 0cf49edb2ae44ae08d3640d0a801c4b29f40fe37..110acc686bb499ba36b92e1fa04bde517466aef4 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
@@ -293,41 +293,6 @@ SyncStatusCode WriteVersionInfo(leveldb::DB* db) {
base::Int64ToString(kCurrentDatabaseVersion)));
}
-scoped_ptr<ServiceMetadata> ReadServiceMetadata(leveldb::DB* db) {
- base::ThreadRestrictions::AssertIOAllowed();
- DCHECK(db);
-
- std::string value;
- leveldb::Status status = db->Get(leveldb::ReadOptions(),
- kServiceMetadataKey,
- &value);
- if (!status.ok())
- return scoped_ptr<ServiceMetadata>();
-
- scoped_ptr<ServiceMetadata> service_metadata(new ServiceMetadata);
- if (!service_metadata->ParseFromString(value)) {
- util::Log(logging::LOG_WARNING, FROM_HERE,
- "Failed to parse SyncServiceMetadata");
- return scoped_ptr<ServiceMetadata>();
- }
- return service_metadata.Pass();
-}
-
-scoped_ptr<ServiceMetadata> InitializeServiceMetadata(
- leveldb::DB* db, leveldb::WriteBatch* batch) {
- scoped_ptr<ServiceMetadata> service_metadata = ReadServiceMetadata(db);
- if (!service_metadata) {
- service_metadata.reset(new ServiceMetadata);
- service_metadata->set_next_tracker_id(1);
-
- std::string value;
- service_metadata->SerializeToString(&value);
- if (batch)
- batch->Put(kServiceMetadataKey, value);
- }
- return service_metadata.Pass();
-}
-
bool HasInvalidTitle(const std::string& title) {
return title.empty() ||
title.find('/') != std::string::npos ||
@@ -656,12 +621,12 @@ void MetadataDatabase::ClearDatabase(
int64 MetadataDatabase::GetLargestFetchedChangeID() const {
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread());
- return service_metadata_->largest_change_id();
+ return index_->GetLargestChangeID();
}
int64 MetadataDatabase::GetSyncRootTrackerID() const {
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread());
- return service_metadata_->sync_root_tracker_id();
+ return index_->GetSyncRootTrackerID();
}
int64 MetadataDatabase::GetLargestKnownChangeID() const {
@@ -678,8 +643,7 @@ void MetadataDatabase::UpdateLargestKnownChangeID(int64 change_id) {
bool MetadataDatabase::HasSyncRoot() const {
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread());
- return service_metadata_->has_sync_root_tracker_id() &&
- !!service_metadata_->sync_root_tracker_id();
+ return index_->GetSyncRootTrackerID() != kInvalidTrackerID;
}
void MetadataDatabase::PopulateInitialData(
@@ -690,7 +654,7 @@ void MetadataDatabase::PopulateInitialData(
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread());
scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
- service_metadata_->set_largest_change_id(largest_change_id);
+ index_->SetLargestChangeID(largest_change_id, batch.get());
UpdateLargestKnownChangeID(largest_change_id);
AttachSyncRoot(sync_root_folder, batch.get());
@@ -744,7 +708,7 @@ void MetadataDatabase::RegisterApp(const std::string& app_id,
return;
}
- int64 sync_root_tracker_id = service_metadata_->sync_root_tracker_id();
+ int64 sync_root_tracker_id = index_->GetSyncRootTrackerID();
if (!sync_root_tracker_id) {
util::Log(logging::LOG_WARNING, FROM_HERE,
"Sync-root needs to be set up before registering app-root");
@@ -1009,7 +973,7 @@ void MetadataDatabase::UpdateByChangeList(
ScopedVector<google_apis::ChangeResource> changes,
const SyncStatusCallback& callback) {
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread());
- DCHECK_LE(service_metadata_->largest_change_id(), largest_change_id);
+ DCHECK_LE(index_->GetLargestChangeID(), largest_change_id);
scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
@@ -1026,8 +990,7 @@ void MetadataDatabase::UpdateByChangeList(
}
UpdateLargestKnownChangeID(largest_change_id);
- service_metadata_->set_largest_change_id(largest_change_id);
- PutServiceMetadataToBatch(*service_metadata_, batch.get());
+ index_->SetLargestChangeID(largest_change_id, batch.get());
WriteToDatabase(batch.Pass(), callback);
}
@@ -1527,16 +1490,14 @@ SyncStatusCode MetadataDatabase::InitializeOnFileTaskRunner() {
}
leveldb::WriteBatch batch;
- service_metadata_ = InitializeServiceMetadata(db_.get(), &batch);
- index_ = MetadataDatabaseIndex::Create(
- db_.get(), service_metadata_->sync_root_tracker_id(), &batch);
+ index_ = MetadataDatabaseIndex::Create(db_.get(), &batch);
status = LevelDBStatusToSyncStatusCode(
db_->Write(leveldb::WriteOptions(), &batch));
if (status != SYNC_STATUS_OK)
return status;
- UpdateLargestKnownChangeID(service_metadata_->largest_change_id());
+ UpdateLargestKnownChangeID(index_->GetLargestChangeID());
return status;
}
@@ -1644,9 +1605,8 @@ void MetadataDatabase::MaybeAddTrackersForNewFile(
int64 MetadataDatabase::IncrementTrackerID(leveldb::WriteBatch* batch) {
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread());
- int64 tracker_id = service_metadata_->next_tracker_id();
- service_metadata_->set_next_tracker_id(tracker_id + 1);
- PutServiceMetadataToBatch(*service_metadata_, batch);
+ int64 tracker_id = index_->GetNextTrackerID();
+ index_->SetNextTrackerID(tracker_id + 1, batch);
DCHECK_GT(tracker_id, 0);
return tracker_id;
}
@@ -1654,7 +1614,7 @@ int64 MetadataDatabase::IncrementTrackerID(leveldb::WriteBatch* batch) {
bool MetadataDatabase::CanActivateTracker(const FileTracker& tracker) {
DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread());
DCHECK(!tracker.active());
- DCHECK_NE(service_metadata_->sync_root_tracker_id(), tracker.tracker_id());
+ DCHECK_NE(index_->GetSyncRootTrackerID(), tracker.tracker_id());
if (HasActiveTrackerForFileID(tracker.file_id()))
return false;
@@ -2000,9 +1960,7 @@ void MetadataDatabase::AttachSyncRoot(
scoped_ptr<FileTracker> sync_root_tracker =
CreateSyncRootTracker(IncrementTrackerID(batch), *sync_root_metadata);
- service_metadata_->set_sync_root_tracker_id(sync_root_tracker->tracker_id());
- PutServiceMetadataToBatch(*service_metadata_, batch);
-
+ index_->SetSyncRootTrackerID(sync_root_tracker->tracker_id(), batch);
index_->StoreFileMetadata(sync_root_metadata.Pass(), batch);
index_->StoreFileTracker(sync_root_tracker.Pass(), batch);
}

Powered by Google App Engine
This is Rietveld 408576698