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

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

Issue 330283002: [SyncFS] Replace callback with token in UploadNewFile (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 5e6b9e4da69ea631b72baeabc8d4f64cd9bd5a4a..d8dca0531d272ddf81d454ecaa26374d67164c16 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
@@ -223,9 +223,7 @@ void LocalToRemoteSyncer::RunExclusive(scoped_ptr<SyncTaskToken> token) {
DCHECK(target_path_ == active_ancestor_path.Append(missing_components[0]));
if (local_change_.file_type() == SYNC_FILE_TYPE_FILE) {
token->RecordLog("Detected a new file.");
- UploadNewFile(base::Bind(
- &LocalToRemoteSyncer::SyncCompleted,
- weak_ptr_factory_.GetWeakPtr(), base::Passed(&token)));
+ UploadNewFile(token.Pass());
return;
}
@@ -263,9 +261,7 @@ void LocalToRemoteSyncer::HandleConflict(scoped_ptr<SyncTaskToken> token) {
}
if (local_change_.IsFile()) {
- UploadNewFile(base::Bind(&LocalToRemoteSyncer::SyncCompleted,
- weak_ptr_factory_.GetWeakPtr(),
- base::Passed(&token)));
+ UploadNewFile(token.Pass());
return;
}
@@ -331,9 +327,7 @@ void LocalToRemoteSyncer::HandleExistingRemoteFile(
// the remote folder and upload the file.
DeleteRemoteFile(base::Bind(&LocalToRemoteSyncer::DidDeleteForUploadNewFile,
weak_ptr_factory_.GetWeakPtr(),
- base::Bind(&LocalToRemoteSyncer::SyncCompleted,
- weak_ptr_factory_.GetWeakPtr(),
- base::Passed(&token))));
+ base::Passed(&token)));
return;
}
@@ -550,20 +544,24 @@ void LocalToRemoteSyncer::DidGetRemoteMetadata(
}
void LocalToRemoteSyncer::DidDeleteForUploadNewFile(
- const SyncStatusCallback& callback,
+ scoped_ptr<SyncTaskToken> token,
SyncStatusCode status) {
if (status == SYNC_STATUS_HAS_CONFLICT) {
- UpdateRemoteMetadata(remote_file_tracker_->file_id(),
- base::Bind(&ReturnRetryOnSuccess, callback));
+ UpdateRemoteMetadata(
+ remote_file_tracker_->file_id(),
+ base::Bind(&ReturnRetryOnSuccess,
+ base::Bind(&LocalToRemoteSyncer::SyncCompleted,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Passed(&token))));
return;
}
if (status != SYNC_STATUS_OK) {
- callback.Run(status);
+ SyncCompleted(token.Pass(), status);
return;
}
- UploadNewFile(callback);
+ UploadNewFile(token.Pass());
}
void LocalToRemoteSyncer::DidDeleteForCreateFolder(
@@ -587,7 +585,7 @@ void LocalToRemoteSyncer::DidDeleteForCreateFolder(
CreateRemoteFolder(token.Pass());
}
-void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) {
+void LocalToRemoteSyncer::UploadNewFile(scoped_ptr<SyncTaskToken> token) {
DCHECK(remote_parent_folder_tracker_);
sync_action_ = SYNC_ACTION_ADDED;
@@ -600,12 +598,12 @@ void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) {
drive::DriveUploader::UploadNewFileOptions(),
base::Bind(&LocalToRemoteSyncer::DidUploadNewFile,
weak_ptr_factory_.GetWeakPtr(),
- callback),
+ base::Passed(&token)),
google_apis::ProgressCallback());
}
void LocalToRemoteSyncer::DidUploadNewFile(
- const SyncStatusCallback& callback,
+ scoped_ptr<SyncTaskToken> token,
google_apis::GDataErrorCode error,
const GURL& upload_location,
scoped_ptr<google_apis::FileResource> entry) {
@@ -614,18 +612,21 @@ void LocalToRemoteSyncer::DidUploadNewFile(
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()->ReplaceActiveTrackerWithNewResource(
- remote_parent_folder_tracker_->tracker_id(), *entry, callback);
+ remote_parent_folder_tracker_->tracker_id(), *entry,
+ base::Bind(&LocalToRemoteSyncer::SyncCompleted,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Passed(&token)));
}
void LocalToRemoteSyncer::CreateRemoteFolder(
@@ -678,10 +679,7 @@ void LocalToRemoteSyncer::DidCreateRemoteFolder(
drive_service()->RemoveResourceFromDirectory(
remote_parent_folder_tracker_->file_id(), file_id,
base::Bind(&LocalToRemoteSyncer::DidDetachResourceForCreationConflict,
- weak_ptr_factory_.GetWeakPtr(),
- base::Bind(&LocalToRemoteSyncer::SyncCompleted,
- weak_ptr_factory_.GetWeakPtr(),
- base::Passed(&token))));
+ weak_ptr_factory_.GetWeakPtr(), base::Passed(&token)));
return;
}
@@ -691,15 +689,15 @@ void LocalToRemoteSyncer::DidCreateRemoteFolder(
}
void LocalToRemoteSyncer::DidDetachResourceForCreationConflict(
- const SyncStatusCallback& callback,
+ scoped_ptr<SyncTaskToken> token,
google_apis::GDataErrorCode error) {
SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error);
if (status != SYNC_STATUS_OK) {
- callback.Run(status);
+ SyncCompleted(token.Pass(), status);
return;
}
- callback.Run(SYNC_STATUS_RETRY);
+ SyncCompleted(token.Pass(), SYNC_STATUS_RETRY);
}
bool LocalToRemoteSyncer::IsContextReady() {
« 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