| 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 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 // Non-conflicting local folder creation to existing remote folder. | 218 // Non-conflicting local folder creation to existing remote folder. |
| 219 DCHECK_EQ(FILE_KIND_FOLDER, synced_details.file_kind()); | 219 DCHECK_EQ(FILE_KIND_FOLDER, synced_details.file_kind()); |
| 220 callback.Run(SYNC_STATUS_OK); | 220 callback.Run(SYNC_STATUS_OK); |
| 221 } | 221 } |
| 222 | 222 |
| 223 void LocalToRemoteSyncer::DeleteRemoteFile( | 223 void LocalToRemoteSyncer::DeleteRemoteFile( |
| 224 const SyncStatusCallback& callback) { | 224 const SyncStatusCallback& callback) { |
| 225 DCHECK(remote_file_tracker_); | 225 DCHECK(remote_file_tracker_); |
| 226 DCHECK(remote_file_tracker_->has_synced_details()); | 226 DCHECK(remote_file_tracker_->has_synced_details()); |
| 227 | 227 |
| 228 set_used_network(true); |
| 228 drive_service()->DeleteResource( | 229 drive_service()->DeleteResource( |
| 229 remote_file_tracker_->file_id(), | 230 remote_file_tracker_->file_id(), |
| 230 remote_file_tracker_->synced_details().etag(), | 231 remote_file_tracker_->synced_details().etag(), |
| 231 base::Bind(&LocalToRemoteSyncer::DidDeleteRemoteFile, | 232 base::Bind(&LocalToRemoteSyncer::DidDeleteRemoteFile, |
| 232 weak_ptr_factory_.GetWeakPtr(), | 233 weak_ptr_factory_.GetWeakPtr(), |
| 233 callback)); | 234 callback)); |
| 234 } | 235 } |
| 235 | 236 |
| 236 void LocalToRemoteSyncer::DidDeleteRemoteFile( | 237 void LocalToRemoteSyncer::DidDeleteRemoteFile( |
| 237 const SyncStatusCallback& callback, | 238 const SyncStatusCallback& callback, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 | 271 |
| 271 void LocalToRemoteSyncer::DidGetMD5ForUpload( | 272 void LocalToRemoteSyncer::DidGetMD5ForUpload( |
| 272 const SyncStatusCallback& callback, | 273 const SyncStatusCallback& callback, |
| 273 const std::string& local_file_md5) { | 274 const std::string& local_file_md5) { |
| 274 if (local_file_md5 == remote_file_tracker_->synced_details().md5()) { | 275 if (local_file_md5 == remote_file_tracker_->synced_details().md5()) { |
| 275 // Local file is not changed. | 276 // Local file is not changed. |
| 276 callback.Run(SYNC_STATUS_OK); | 277 callback.Run(SYNC_STATUS_OK); |
| 277 return; | 278 return; |
| 278 } | 279 } |
| 279 | 280 |
| 281 set_used_network(true); |
| 280 drive_uploader()->UploadExistingFile( | 282 drive_uploader()->UploadExistingFile( |
| 281 remote_file_tracker_->file_id(), | 283 remote_file_tracker_->file_id(), |
| 282 local_path_, | 284 local_path_, |
| 283 "application/octet_stream", | 285 "application/octet_stream", |
| 284 remote_file_tracker_->synced_details().etag(), | 286 remote_file_tracker_->synced_details().etag(), |
| 285 base::Bind(&LocalToRemoteSyncer::DidUploadExistingFile, | 287 base::Bind(&LocalToRemoteSyncer::DidUploadExistingFile, |
| 286 weak_ptr_factory_.GetWeakPtr(), | 288 weak_ptr_factory_.GetWeakPtr(), |
| 287 callback), | 289 callback), |
| 288 google_apis::ProgressCallback()); | 290 google_apis::ProgressCallback()); |
| 289 } | 291 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 301 UpdateRemoteMetadata(callback); | 303 UpdateRemoteMetadata(callback); |
| 302 return; | 304 return; |
| 303 } | 305 } |
| 304 | 306 |
| 305 callback.Run(GDataErrorCodeToSyncStatusCode(error)); | 307 callback.Run(GDataErrorCodeToSyncStatusCode(error)); |
| 306 } | 308 } |
| 307 | 309 |
| 308 void LocalToRemoteSyncer::UpdateRemoteMetadata( | 310 void LocalToRemoteSyncer::UpdateRemoteMetadata( |
| 309 const SyncStatusCallback& callback) { | 311 const SyncStatusCallback& callback) { |
| 310 DCHECK(remote_file_tracker_); | 312 DCHECK(remote_file_tracker_); |
| 313 set_used_network(true); |
| 311 drive_service()->GetResourceEntry( | 314 drive_service()->GetResourceEntry( |
| 312 remote_file_tracker_->file_id(), | 315 remote_file_tracker_->file_id(), |
| 313 base::Bind(&LocalToRemoteSyncer::DidGetRemoteMetadata, | 316 base::Bind(&LocalToRemoteSyncer::DidGetRemoteMetadata, |
| 314 weak_ptr_factory_.GetWeakPtr(), | 317 weak_ptr_factory_.GetWeakPtr(), |
| 315 callback, | 318 callback, |
| 316 metadata_database()->GetLargestKnownChangeID())); | 319 metadata_database()->GetLargestKnownChangeID())); |
| 317 } | 320 } |
| 318 | 321 |
| 319 void LocalToRemoteSyncer::DidGetRemoteMetadata( | 322 void LocalToRemoteSyncer::DidGetRemoteMetadata( |
| 320 const SyncStatusCallback& callback, | 323 const SyncStatusCallback& callback, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 callback.Run(status); | 358 callback.Run(status); |
| 356 return; | 359 return; |
| 357 } | 360 } |
| 358 | 361 |
| 359 CreateRemoteFolder(callback); | 362 CreateRemoteFolder(callback); |
| 360 } | 363 } |
| 361 | 364 |
| 362 void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) { | 365 void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) { |
| 363 DCHECK(remote_parent_folder_tracker_); | 366 DCHECK(remote_parent_folder_tracker_); |
| 364 | 367 |
| 368 set_used_network(true); |
| 365 base::FilePath title = fileapi::VirtualPath::BaseName(url_.path()); | 369 base::FilePath title = fileapi::VirtualPath::BaseName(url_.path()); |
| 366 drive_uploader()->UploadNewFile( | 370 drive_uploader()->UploadNewFile( |
| 367 remote_parent_folder_tracker_->file_id(), | 371 remote_parent_folder_tracker_->file_id(), |
| 368 local_path_, | 372 local_path_, |
| 369 title.AsUTF8Unsafe(), | 373 title.AsUTF8Unsafe(), |
| 370 GetMimeTypeFromTitle(title), | 374 GetMimeTypeFromTitle(title), |
| 371 base::Bind(&LocalToRemoteSyncer::DidUploadNewFile, | 375 base::Bind(&LocalToRemoteSyncer::DidUploadNewFile, |
| 372 weak_ptr_factory_.GetWeakPtr(), | 376 weak_ptr_factory_.GetWeakPtr(), |
| 373 callback, | 377 callback, |
| 374 metadata_database()->GetLargestKnownChangeID()), | 378 metadata_database()->GetLargestKnownChangeID()), |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 drive::DriveUploaderInterface* LocalToRemoteSyncer::drive_uploader() { | 444 drive::DriveUploaderInterface* LocalToRemoteSyncer::drive_uploader() { |
| 441 return sync_context_->GetDriveUploader(); | 445 return sync_context_->GetDriveUploader(); |
| 442 } | 446 } |
| 443 | 447 |
| 444 MetadataDatabase* LocalToRemoteSyncer::metadata_database() { | 448 MetadataDatabase* LocalToRemoteSyncer::metadata_database() { |
| 445 return sync_context_->GetMetadataDatabase(); | 449 return sync_context_->GetMetadataDatabase(); |
| 446 } | 450 } |
| 447 | 451 |
| 448 } // namespace drive_backend | 452 } // namespace drive_backend |
| 449 } // namespace sync_file_system | 453 } // namespace sync_file_system |
| OLD | NEW |