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

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

Issue 77913002: [SyncFS] Implement non-conflict local folder addition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comment fix Created 7 years, 1 month 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 5eddcfbf670d7254e5c0754f4a52a8f6c7d9977e..992080c735576eddf798372d1aa26b9b9daacabe 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
@@ -982,6 +982,29 @@ bool MetadataDatabase::GetLowPriorityDirtyTracker(
return true;
}
+void MetadataDatabase::GetRegisteredAppIDs(std::vector<std::string>* app_ids) {
+ DCHECK(app_ids);
+ app_ids->clear();
+ app_ids->reserve(app_root_by_app_id_.size());
+ for (TrackerByAppID::iterator itr = app_root_by_app_id_.begin();
+ itr != app_root_by_app_id_.end(); ++itr) {
+ app_ids->push_back(itr->first);
+ }
+}
+
+void MetadataDatabase::MarkTrackerDirty(int64 tracker_id,
+ const SyncStatusCallback& callback) {
+ TrackerByID::iterator found = tracker_by_id_.find(tracker_id);
+ if (found == tracker_by_id_.end()) {
+ RunSoon(FROM_HERE, base::Bind(callback, SYNC_STATUS_OK));
+ return;
+ }
+
+ scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
+ MarkSingleTrackerDirty(found->second, batch.get());
+ WriteToDatabase(batch.Pass(), callback);
+}
+
MetadataDatabase::MetadataDatabase(base::SequencedTaskRunner* task_runner)
: task_runner_(task_runner),
largest_known_change_id_(0),
@@ -1376,18 +1399,22 @@ void MetadataDatabase::EraseTrackerFromPathIndex(FileTracker* tracker) {
}
}
+void MetadataDatabase::MarkSingleTrackerDirty(FileTracker* tracker,
+ leveldb::WriteBatch* batch) {
+ if (!tracker->dirty()) {
+ tracker->set_dirty(true);
+ PutTrackerToBatch(*tracker, batch);
+ }
+ dirty_trackers_.insert(tracker);
+ low_priority_dirty_trackers_.erase(tracker);
+}
+
void MetadataDatabase::MarkTrackerSetDirty(
TrackerSet* trackers,
leveldb::WriteBatch* batch) {
for (TrackerSet::iterator itr = trackers->begin();
itr != trackers->end(); ++itr) {
- FileTracker* tracker = *itr;
- if (tracker->dirty())
- continue;
- tracker->set_dirty(true);
- PutTrackerToBatch(*tracker, batch);
- dirty_trackers_.insert(tracker);
- low_priority_dirty_trackers_.erase(tracker);
+ MarkSingleTrackerDirty(*itr, batch);
}
}
@@ -1587,16 +1614,6 @@ scoped_ptr<base::ListValue> MetadataDatabase::DumpFiles(
return files.Pass();
}
-void MetadataDatabase::GetRegisteredAppIDs(std::vector<std::string>* app_ids) {
- DCHECK(app_ids);
- app_ids->clear();
- app_ids->reserve(app_root_by_app_id_.size());
- for (TrackerByAppID::iterator itr = app_root_by_app_id_.begin();
- itr != app_root_by_app_id_.end(); ++itr) {
- app_ids->push_back(itr->first);
- }
-}
-
bool MetadataDatabase::HasNewerFileMetadata(const std::string& file_id,
int64 change_id) {
FileByID::const_iterator found = file_by_id_.find(file_id);
« 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