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

Unified Diff: chrome/browser/sync_file_system/drive_backend/metadata_database_index.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_index.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database_index.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database_index.cc
index e59b927fb51b3729555fa0546d22b8cf3dcfc2ce..5d2b06ca5037b3ecddf3667fa25215e776cfa9a1 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database_index.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database_index.cc
@@ -7,6 +7,7 @@
#include "base/metrics/histogram.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
+#include "base/threading/thread_restrictions.h"
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.h"
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_util.h"
#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
@@ -199,15 +200,19 @@ void RemoveUnreachableItems(DatabaseContents* contents,
// static
scoped_ptr<MetadataDatabaseIndex>
-MetadataDatabaseIndex::Create(leveldb::DB* db,
- int64 sync_root_tracker_id,
- leveldb::WriteBatch* batch) {
+MetadataDatabaseIndex::Create(leveldb::DB* db, leveldb::WriteBatch* batch) {
+ DCHECK(db);
+ DCHECK(batch);
+
+ scoped_ptr<ServiceMetadata> service_metadata = InitializeServiceMetadata(db);
DatabaseContents contents;
ReadDatabaseContents(db, &contents);
- RemoveUnreachableItems(&contents, sync_root_tracker_id, batch);
+ RemoveUnreachableItems(&contents,
+ service_metadata->sync_root_tracker_id(),
+ batch);
scoped_ptr<MetadataDatabaseIndex> index(new MetadataDatabaseIndex);
- index->Initialize(&contents);
+ index->Initialize(service_metadata.Pass(), &contents);
return index.Pass();
}
@@ -215,11 +220,15 @@ MetadataDatabaseIndex::Create(leveldb::DB* db,
scoped_ptr<MetadataDatabaseIndex>
MetadataDatabaseIndex::CreateForTesting(DatabaseContents* contents) {
scoped_ptr<MetadataDatabaseIndex> index(new MetadataDatabaseIndex);
- index->Initialize(contents);
+ index->Initialize(make_scoped_ptr(new ServiceMetadata), contents);
return index.Pass();
}
-void MetadataDatabaseIndex::Initialize(DatabaseContents* contents) {
+void MetadataDatabaseIndex::Initialize(
+ scoped_ptr<ServiceMetadata> service_metadata,
+ DatabaseContents* contents) {
+ service_metadata_ = service_metadata.Pass();
+
for (size_t i = 0; i < contents->file_metadata.size(); ++i)
StoreFileMetadata(make_scoped_ptr(contents->file_metadata[i]), NULL);
contents->file_metadata.weak_clear();
@@ -411,6 +420,44 @@ size_t MetadataDatabaseIndex::CountFileTracker() const {
return tracker_by_id_.size();
}
+void MetadataDatabaseIndex::SetSyncRootTrackerID(
+ int64 sync_root_id, leveldb::WriteBatch* batch) const {
+ service_metadata_->set_sync_root_tracker_id(sync_root_id);
+ PutServiceMetadataToBatch(*service_metadata_, batch);
+}
+
+void MetadataDatabaseIndex::SetLargestChangeID(
+ int64 largest_change_id, leveldb::WriteBatch* batch) const {
+ service_metadata_->set_largest_change_id(largest_change_id);
+ PutServiceMetadataToBatch(*service_metadata_, batch);
+}
+
+void MetadataDatabaseIndex::SetNextTrackerID(
+ int64 next_tracker_id, leveldb::WriteBatch* batch) const {
+ service_metadata_->set_next_tracker_id(next_tracker_id);
+ PutServiceMetadataToBatch(*service_metadata_, batch);
+}
+
+int64 MetadataDatabaseIndex::GetSyncRootTrackerID() const {
+ if (!service_metadata_->has_sync_root_tracker_id())
+ return kInvalidTrackerID;
+ return service_metadata_->sync_root_tracker_id();
+}
+
+int64 MetadataDatabaseIndex::GetLargestChangeID() const {
+ if (!service_metadata_->has_largest_change_id())
+ return kInvalidTrackerID;
+ return service_metadata_->largest_change_id();
+}
+
+int64 MetadataDatabaseIndex::GetNextTrackerID() const {
+ if (!service_metadata_->has_next_tracker_id()) {
+ NOTREACHED();
+ return kInvalidTrackerID;
+ }
+ return service_metadata_->next_tracker_id();
+}
+
std::vector<std::string> MetadataDatabaseIndex::GetRegisteredAppIDs() const {
std::vector<std::string> result;
result.reserve(app_root_by_app_id_.size());

Powered by Google App Engine
This is Rietveld 408576698