| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
" | 5 #include "chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/sequenced_task_runner.h" | 10 #include "base/sequenced_task_runner.h" |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 // Non-conflicting local folder creation to existing remote folder. | 261 // Non-conflicting local folder creation to existing remote folder. |
| 262 DCHECK_EQ(FILE_KIND_FOLDER, synced_details.file_kind()); | 262 DCHECK_EQ(FILE_KIND_FOLDER, synced_details.file_kind()); |
| 263 callback.Run(SYNC_STATUS_OK); | 263 callback.Run(SYNC_STATUS_OK); |
| 264 } | 264 } |
| 265 | 265 |
| 266 void LocalToRemoteSyncer::DeleteRemoteFile( | 266 void LocalToRemoteSyncer::DeleteRemoteFile( |
| 267 const SyncStatusCallback& callback) { | 267 const SyncStatusCallback& callback) { |
| 268 DCHECK(remote_file_tracker_); | 268 DCHECK(remote_file_tracker_); |
| 269 DCHECK(remote_file_tracker_->has_synced_details()); | 269 DCHECK(remote_file_tracker_->has_synced_details()); |
| 270 | 270 |
| 271 set_used_network(true); |
| 271 drive_service()->DeleteResource( | 272 drive_service()->DeleteResource( |
| 272 remote_file_tracker_->file_id(), | 273 remote_file_tracker_->file_id(), |
| 273 remote_file_tracker_->synced_details().etag(), | 274 remote_file_tracker_->synced_details().etag(), |
| 274 base::Bind(&LocalToRemoteSyncer::DidDeleteRemoteFile, | 275 base::Bind(&LocalToRemoteSyncer::DidDeleteRemoteFile, |
| 275 weak_ptr_factory_.GetWeakPtr(), | 276 weak_ptr_factory_.GetWeakPtr(), |
| 276 callback)); | 277 callback)); |
| 277 } | 278 } |
| 278 | 279 |
| 279 void LocalToRemoteSyncer::DidDeleteRemoteFile( | 280 void LocalToRemoteSyncer::DidDeleteRemoteFile( |
| 280 const SyncStatusCallback& callback, | 281 const SyncStatusCallback& callback, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 | 314 |
| 314 void LocalToRemoteSyncer::DidGetMD5ForUpload( | 315 void LocalToRemoteSyncer::DidGetMD5ForUpload( |
| 315 const SyncStatusCallback& callback, | 316 const SyncStatusCallback& callback, |
| 316 const std::string& local_file_md5) { | 317 const std::string& local_file_md5) { |
| 317 if (local_file_md5 == remote_file_tracker_->synced_details().md5()) { | 318 if (local_file_md5 == remote_file_tracker_->synced_details().md5()) { |
| 318 // Local file is not changed. | 319 // Local file is not changed. |
| 319 callback.Run(SYNC_STATUS_OK); | 320 callback.Run(SYNC_STATUS_OK); |
| 320 return; | 321 return; |
| 321 } | 322 } |
| 322 | 323 |
| 324 set_used_network(true); |
| 323 drive_uploader()->UploadExistingFile( | 325 drive_uploader()->UploadExistingFile( |
| 324 remote_file_tracker_->file_id(), | 326 remote_file_tracker_->file_id(), |
| 325 local_path_, | 327 local_path_, |
| 326 "application/octet_stream", | 328 "application/octet_stream", |
| 327 remote_file_tracker_->synced_details().etag(), | 329 remote_file_tracker_->synced_details().etag(), |
| 328 base::Bind(&LocalToRemoteSyncer::DidUploadExistingFile, | 330 base::Bind(&LocalToRemoteSyncer::DidUploadExistingFile, |
| 329 weak_ptr_factory_.GetWeakPtr(), | 331 weak_ptr_factory_.GetWeakPtr(), |
| 330 callback), | 332 callback), |
| 331 google_apis::ProgressCallback()); | 333 google_apis::ProgressCallback()); |
| 332 } | 334 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 344 UpdateRemoteMetadata(callback); | 346 UpdateRemoteMetadata(callback); |
| 345 return; | 347 return; |
| 346 } | 348 } |
| 347 | 349 |
| 348 callback.Run(GDataErrorCodeToSyncStatusCode(error)); | 350 callback.Run(GDataErrorCodeToSyncStatusCode(error)); |
| 349 } | 351 } |
| 350 | 352 |
| 351 void LocalToRemoteSyncer::UpdateRemoteMetadata( | 353 void LocalToRemoteSyncer::UpdateRemoteMetadata( |
| 352 const SyncStatusCallback& callback) { | 354 const SyncStatusCallback& callback) { |
| 353 DCHECK(remote_file_tracker_); | 355 DCHECK(remote_file_tracker_); |
| 356 set_used_network(true); |
| 354 drive_service()->GetResourceEntry( | 357 drive_service()->GetResourceEntry( |
| 355 remote_file_tracker_->file_id(), | 358 remote_file_tracker_->file_id(), |
| 356 base::Bind(&LocalToRemoteSyncer::DidGetRemoteMetadata, | 359 base::Bind(&LocalToRemoteSyncer::DidGetRemoteMetadata, |
| 357 weak_ptr_factory_.GetWeakPtr(), | 360 weak_ptr_factory_.GetWeakPtr(), |
| 358 callback, | 361 callback, |
| 359 metadata_database()->GetLargestKnownChangeID())); | 362 metadata_database()->GetLargestKnownChangeID())); |
| 360 } | 363 } |
| 361 | 364 |
| 362 void LocalToRemoteSyncer::DidGetRemoteMetadata( | 365 void LocalToRemoteSyncer::DidGetRemoteMetadata( |
| 363 const SyncStatusCallback& callback, | 366 const SyncStatusCallback& callback, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 callback.Run(status); | 401 callback.Run(status); |
| 399 return; | 402 return; |
| 400 } | 403 } |
| 401 | 404 |
| 402 CreateRemoteFolder(callback); | 405 CreateRemoteFolder(callback); |
| 403 } | 406 } |
| 404 | 407 |
| 405 void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) { | 408 void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) { |
| 406 DCHECK(remote_parent_folder_tracker_); | 409 DCHECK(remote_parent_folder_tracker_); |
| 407 | 410 |
| 411 set_used_network(true); |
| 408 base::FilePath title = fileapi::VirtualPath::BaseName(target_path_); | 412 base::FilePath title = fileapi::VirtualPath::BaseName(target_path_); |
| 409 drive_uploader()->UploadNewFile( | 413 drive_uploader()->UploadNewFile( |
| 410 remote_parent_folder_tracker_->file_id(), | 414 remote_parent_folder_tracker_->file_id(), |
| 411 local_path_, | 415 local_path_, |
| 412 title.AsUTF8Unsafe(), | 416 title.AsUTF8Unsafe(), |
| 413 GetMimeTypeFromTitle(title), | 417 GetMimeTypeFromTitle(title), |
| 414 base::Bind(&LocalToRemoteSyncer::DidUploadNewFile, | 418 base::Bind(&LocalToRemoteSyncer::DidUploadNewFile, |
| 415 weak_ptr_factory_.GetWeakPtr(), | 419 weak_ptr_factory_.GetWeakPtr(), |
| 416 callback, | 420 callback, |
| 417 metadata_database()->GetLargestKnownChangeID()), | 421 metadata_database()->GetLargestKnownChangeID()), |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 drive::DriveUploaderInterface* LocalToRemoteSyncer::drive_uploader() { | 552 drive::DriveUploaderInterface* LocalToRemoteSyncer::drive_uploader() { |
| 549 return sync_context_->GetDriveUploader(); | 553 return sync_context_->GetDriveUploader(); |
| 550 } | 554 } |
| 551 | 555 |
| 552 MetadataDatabase* LocalToRemoteSyncer::metadata_database() { | 556 MetadataDatabase* LocalToRemoteSyncer::metadata_database() { |
| 553 return sync_context_->GetMetadataDatabase(); | 557 return sync_context_->GetMetadataDatabase(); |
| 554 } | 558 } |
| 555 | 559 |
| 556 } // namespace drive_backend | 560 } // namespace drive_backend |
| 557 } // namespace sync_file_system | 561 } // namespace sync_file_system |
| OLD | NEW |