| 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 <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 } // namespace | 77 } // namespace |
| 78 | 78 |
| 79 LocalToRemoteSyncer::LocalToRemoteSyncer(SyncEngineContext* sync_context, | 79 LocalToRemoteSyncer::LocalToRemoteSyncer(SyncEngineContext* sync_context, |
| 80 const FileChange& local_change, | 80 const FileChange& local_change, |
| 81 const base::FilePath& local_path, | 81 const base::FilePath& local_path, |
| 82 const fileapi::FileSystemURL& url) | 82 const fileapi::FileSystemURL& url) |
| 83 : sync_context_(sync_context), | 83 : sync_context_(sync_context), |
| 84 local_change_(local_change), | 84 local_change_(local_change), |
| 85 local_path_(local_path), | 85 local_path_(local_path), |
| 86 url_(url), | 86 url_(url), |
| 87 sync_action_(SYNC_ACTION_NONE), |
| 87 weak_ptr_factory_(this) { | 88 weak_ptr_factory_(this) { |
| 88 } | 89 } |
| 89 | 90 |
| 90 LocalToRemoteSyncer::~LocalToRemoteSyncer() { | 91 LocalToRemoteSyncer::~LocalToRemoteSyncer() { |
| 91 } | 92 } |
| 92 | 93 |
| 93 void LocalToRemoteSyncer::Run(const SyncStatusCallback& callback) { | 94 void LocalToRemoteSyncer::Run(const SyncStatusCallback& callback) { |
| 94 if (!IsContextReady()) { | 95 if (!IsContextReady()) { |
| 95 NOTREACHED(); | 96 NOTREACHED(); |
| 96 callback.Run(SYNC_STATUS_FAILED); | 97 callback.Run(SYNC_STATUS_FAILED); |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 // Non-conflicting local folder creation to existing remote folder. | 314 // Non-conflicting local folder creation to existing remote folder. |
| 314 DCHECK_EQ(FILE_KIND_FOLDER, synced_details.file_kind()); | 315 DCHECK_EQ(FILE_KIND_FOLDER, synced_details.file_kind()); |
| 315 callback.Run(SYNC_STATUS_OK); | 316 callback.Run(SYNC_STATUS_OK); |
| 316 } | 317 } |
| 317 | 318 |
| 318 void LocalToRemoteSyncer::DeleteRemoteFile( | 319 void LocalToRemoteSyncer::DeleteRemoteFile( |
| 319 const SyncStatusCallback& callback) { | 320 const SyncStatusCallback& callback) { |
| 320 DCHECK(remote_file_tracker_); | 321 DCHECK(remote_file_tracker_); |
| 321 DCHECK(remote_file_tracker_->has_synced_details()); | 322 DCHECK(remote_file_tracker_->has_synced_details()); |
| 322 | 323 |
| 324 sync_action_ = SYNC_ACTION_DELETED; |
| 323 drive_service()->DeleteResource( | 325 drive_service()->DeleteResource( |
| 324 remote_file_tracker_->file_id(), | 326 remote_file_tracker_->file_id(), |
| 325 remote_file_tracker_->synced_details().etag(), | 327 remote_file_tracker_->synced_details().etag(), |
| 326 base::Bind(&LocalToRemoteSyncer::DidDeleteRemoteFile, | 328 base::Bind(&LocalToRemoteSyncer::DidDeleteRemoteFile, |
| 327 weak_ptr_factory_.GetWeakPtr(), | 329 weak_ptr_factory_.GetWeakPtr(), |
| 328 callback)); | 330 callback)); |
| 329 } | 331 } |
| 330 | 332 |
| 331 void LocalToRemoteSyncer::DidDeleteRemoteFile( | 333 void LocalToRemoteSyncer::DidDeleteRemoteFile( |
| 332 const SyncStatusCallback& callback, | 334 const SyncStatusCallback& callback, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 360 | 362 |
| 361 void LocalToRemoteSyncer::DidGetMD5ForUpload( | 363 void LocalToRemoteSyncer::DidGetMD5ForUpload( |
| 362 const SyncStatusCallback& callback, | 364 const SyncStatusCallback& callback, |
| 363 const std::string& local_file_md5) { | 365 const std::string& local_file_md5) { |
| 364 if (local_file_md5 == remote_file_tracker_->synced_details().md5()) { | 366 if (local_file_md5 == remote_file_tracker_->synced_details().md5()) { |
| 365 // Local file is not changed. | 367 // Local file is not changed. |
| 366 callback.Run(SYNC_STATUS_OK); | 368 callback.Run(SYNC_STATUS_OK); |
| 367 return; | 369 return; |
| 368 } | 370 } |
| 369 | 371 |
| 372 sync_action_ = SYNC_ACTION_UPDATED; |
| 370 drive_uploader()->UploadExistingFile( | 373 drive_uploader()->UploadExistingFile( |
| 371 remote_file_tracker_->file_id(), | 374 remote_file_tracker_->file_id(), |
| 372 local_path_, | 375 local_path_, |
| 373 "application/octet_stream", | 376 "application/octet_stream", |
| 374 remote_file_tracker_->synced_details().etag(), | 377 remote_file_tracker_->synced_details().etag(), |
| 375 base::Bind(&LocalToRemoteSyncer::DidUploadExistingFile, | 378 base::Bind(&LocalToRemoteSyncer::DidUploadExistingFile, |
| 376 weak_ptr_factory_.GetWeakPtr(), | 379 weak_ptr_factory_.GetWeakPtr(), |
| 377 callback), | 380 callback), |
| 378 google_apis::ProgressCallback()); | 381 google_apis::ProgressCallback()); |
| 379 } | 382 } |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 callback.Run(status); | 445 callback.Run(status); |
| 443 return; | 446 return; |
| 444 } | 447 } |
| 445 | 448 |
| 446 CreateRemoteFolder(callback); | 449 CreateRemoteFolder(callback); |
| 447 } | 450 } |
| 448 | 451 |
| 449 void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) { | 452 void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) { |
| 450 DCHECK(remote_parent_folder_tracker_); | 453 DCHECK(remote_parent_folder_tracker_); |
| 451 | 454 |
| 455 sync_action_ = SYNC_ACTION_ADDED; |
| 452 base::FilePath title = fileapi::VirtualPath::BaseName(target_path_); | 456 base::FilePath title = fileapi::VirtualPath::BaseName(target_path_); |
| 453 drive_uploader()->UploadNewFile( | 457 drive_uploader()->UploadNewFile( |
| 454 remote_parent_folder_tracker_->file_id(), | 458 remote_parent_folder_tracker_->file_id(), |
| 455 local_path_, | 459 local_path_, |
| 456 title.AsUTF8Unsafe(), | 460 title.AsUTF8Unsafe(), |
| 457 GetMimeTypeFromTitle(title), | 461 GetMimeTypeFromTitle(title), |
| 458 base::Bind(&LocalToRemoteSyncer::DidUploadNewFile, | 462 base::Bind(&LocalToRemoteSyncer::DidUploadNewFile, |
| 459 weak_ptr_factory_.GetWeakPtr(), | 463 weak_ptr_factory_.GetWeakPtr(), |
| 460 callback), | 464 callback), |
| 461 google_apis::ProgressCallback()); | 465 google_apis::ProgressCallback()); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 508 metadata_database()->UpdateTracker( | 512 metadata_database()->UpdateTracker( |
| 509 tracker.tracker_id(), | 513 tracker.tracker_id(), |
| 510 metadata.details(), | 514 metadata.details(), |
| 511 callback); | 515 callback); |
| 512 } | 516 } |
| 513 | 517 |
| 514 void LocalToRemoteSyncer::CreateRemoteFolder( | 518 void LocalToRemoteSyncer::CreateRemoteFolder( |
| 515 const SyncStatusCallback& callback) { | 519 const SyncStatusCallback& callback) { |
| 516 base::FilePath title = fileapi::VirtualPath::BaseName(target_path_); | 520 base::FilePath title = fileapi::VirtualPath::BaseName(target_path_); |
| 517 DCHECK(remote_parent_folder_tracker_); | 521 DCHECK(remote_parent_folder_tracker_); |
| 522 sync_action_ = SYNC_ACTION_ADDED; |
| 518 drive_service()->AddNewDirectory( | 523 drive_service()->AddNewDirectory( |
| 519 remote_parent_folder_tracker_->file_id(), | 524 remote_parent_folder_tracker_->file_id(), |
| 520 title.AsUTF8Unsafe(), | 525 title.AsUTF8Unsafe(), |
| 521 base::Bind(&LocalToRemoteSyncer::DidCreateRemoteFolder, | 526 base::Bind(&LocalToRemoteSyncer::DidCreateRemoteFolder, |
| 522 weak_ptr_factory_.GetWeakPtr(), callback)); | 527 weak_ptr_factory_.GetWeakPtr(), callback)); |
| 523 } | 528 } |
| 524 | 529 |
| 525 void LocalToRemoteSyncer::DidCreateRemoteFolder( | 530 void LocalToRemoteSyncer::DidCreateRemoteFolder( |
| 526 const SyncStatusCallback& callback, | 531 const SyncStatusCallback& callback, |
| 527 google_apis::GDataErrorCode error, | 532 google_apis::GDataErrorCode error, |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 set_used_network(true); | 605 set_used_network(true); |
| 601 return sync_context_->GetDriveUploader(); | 606 return sync_context_->GetDriveUploader(); |
| 602 } | 607 } |
| 603 | 608 |
| 604 MetadataDatabase* LocalToRemoteSyncer::metadata_database() { | 609 MetadataDatabase* LocalToRemoteSyncer::metadata_database() { |
| 605 return sync_context_->GetMetadataDatabase(); | 610 return sync_context_->GetMetadataDatabase(); |
| 606 } | 611 } |
| 607 | 612 |
| 608 } // namespace drive_backend | 613 } // namespace drive_backend |
| 609 } // namespace sync_file_system | 614 } // namespace sync_file_system |
| OLD | NEW |