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

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

Issue 337803005: [SyncFS] Replace callbacks with token in LocalToRemoteSyncer::UpdateRemoteMetadata (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 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
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.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/local_to_remote_syncer.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc
index d8dca0531d272ddf81d454ecaa26374d67164c16..321be8d2a65d32156889ddc0fa37d04e700cd23e 100644
--- a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc
+++ b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc
@@ -42,13 +42,6 @@ scoped_ptr<FileTracker> FindTrackerByID(MetadataDatabase* metadata_database,
return scoped_ptr<FileTracker>();
}
-void ReturnRetryOnSuccess(const SyncStatusCallback& callback,
- SyncStatusCode status) {
- if (status == SYNC_STATUS_OK)
- status = SYNC_STATUS_RETRY;
- callback.Run(status);
-}
-
bool IsLocalFileMissing(const SyncFileMetadata& local_metadata,
const FileChange& local_change) {
return local_metadata.file_type == SYNC_FILE_TYPE_UNKNOWN ||
@@ -442,10 +435,7 @@ void LocalToRemoteSyncer::DidUploadExistingFile(
needs_remote_change_listing_ = true;
UpdateRemoteMetadata(
remote_file_tracker_->file_id(),
- base::Bind(&ReturnRetryOnSuccess,
- base::Bind(&LocalToRemoteSyncer::SyncCompleted,
- weak_ptr_factory_.GetWeakPtr(),
- base::Passed(&token))));
+ token.Pass());
return;
}
@@ -506,41 +496,49 @@ void LocalToRemoteSyncer::DidUpdateDatabaseForUploadExistingFile(
void LocalToRemoteSyncer::UpdateRemoteMetadata(
const std::string& file_id,
- const SyncStatusCallback& callback) {
+ scoped_ptr<SyncTaskToken> token) {
DCHECK(remote_file_tracker_);
drive_service()->GetFileResource(
file_id,
base::Bind(&LocalToRemoteSyncer::DidGetRemoteMetadata,
weak_ptr_factory_.GetWeakPtr(),
- file_id, callback));
+ file_id, base::Passed(&token)));
}
void LocalToRemoteSyncer::DidGetRemoteMetadata(
const std::string& file_id,
- const SyncStatusCallback& callback,
+ scoped_ptr<SyncTaskToken> token,
google_apis::GDataErrorCode error,
scoped_ptr<google_apis::FileResource> entry) {
DCHECK(sync_context_->GetWorkerTaskRunner()->RunsTasksOnCurrentThread());
if (error == google_apis::HTTP_NOT_FOUND) {
- metadata_database()->UpdateByDeletedRemoteFile(file_id, callback);
+ metadata_database()->UpdateByDeletedRemoteFile(
+ file_id,
+ base::Bind(&LocalToRemoteSyncer::CompleteWithRetryStatus,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Passed(&token)));
return;
}
SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error);
if (status != SYNC_STATUS_OK) {
- callback.Run(status);
+ SyncCompleted(token.Pass(), status);
return;
}
if (!entry) {
NOTREACHED();
- callback.Run(SYNC_STATUS_FAILED);
+ SyncCompleted(token.Pass(), SYNC_STATUS_FAILED);
return;
}
- metadata_database()->UpdateByFileResource(*entry, callback);
+ metadata_database()->UpdateByFileResource(
+ *entry,
+ base::Bind(&LocalToRemoteSyncer::CompleteWithRetryStatus,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Passed(&token)));
}
void LocalToRemoteSyncer::DidDeleteForUploadNewFile(
@@ -549,10 +547,7 @@ void LocalToRemoteSyncer::DidDeleteForUploadNewFile(
if (status == SYNC_STATUS_HAS_CONFLICT) {
UpdateRemoteMetadata(
remote_file_tracker_->file_id(),
- base::Bind(&ReturnRetryOnSuccess,
- base::Bind(&LocalToRemoteSyncer::SyncCompleted,
- weak_ptr_factory_.GetWeakPtr(),
- base::Passed(&token))));
+ token.Pass());
return;
}
@@ -568,12 +563,7 @@ void LocalToRemoteSyncer::DidDeleteForCreateFolder(
scoped_ptr<SyncTaskToken> token,
SyncStatusCode status) {
if (status == SYNC_STATUS_HAS_CONFLICT) {
- UpdateRemoteMetadata(
- remote_file_tracker_->file_id(),
- base::Bind(&ReturnRetryOnSuccess,
- base::Bind(&LocalToRemoteSyncer::SyncCompleted,
- weak_ptr_factory_.GetWeakPtr(),
- base::Passed(&token))));
+ UpdateRemoteMetadata(remote_file_tracker_->file_id(), token.Pass());
return;
}
@@ -720,5 +710,13 @@ MetadataDatabase* LocalToRemoteSyncer::metadata_database() {
return sync_context_->GetMetadataDatabase();
}
+void LocalToRemoteSyncer::CompleteWithRetryStatus(
+ scoped_ptr<SyncTaskToken> token,
+ SyncStatusCode status) {
+ if (status == SYNC_STATUS_OK)
+ status = SYNC_STATUS_RETRY;
+ SyncCompleted(token.Pass(), status);
+}
+
} // namespace drive_backend
} // namespace sync_file_system
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698