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

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

Issue 99813005: [SyncFileSystem] Add MetadataDatabase::TryNoSideEffectActivation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years 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
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/metadata_database.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 e090e7e26c3958ee844075b3da3835df5fcf611a..ee9df158f554d809131d29ed57dfb1791a794b27 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
@@ -1041,6 +1041,25 @@ void MetadataDatabase::UpdateTracker(int64 tracker_id,
WriteToDatabase(batch.Pass(), callback);
}
+bool MetadataDatabase::TryNoSideEffectActivation(
+ int64 tracker_id,
+ const SyncStatusCallback& callback) {
+ DCHECK(ContainsKey(tracker_by_id_, tracker_id));
+ const FileTracker& tracker = *tracker_by_id_[tracker_id];
+ if (tracker.active()) {
+ RunSoon(FROM_HERE, base::Bind(callback, SYNC_STATUS_OK));
+ return true;
+ }
+
+ if (!CanActivateTracker(tracker))
+ return false;
+
+ scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
+ MakeTrackerActive(tracker_id, batch.get());
+ WriteToDatabase(batch.Pass(), callback);
+ return true;
+}
+
void MetadataDatabase::LowerTrackerPriority(int64 tracker_id) {
TrackerByID::const_iterator found = tracker_by_id_.find(tracker_id);
if (found == tracker_by_id_.end())
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/metadata_database.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698