Chromium Code Reviews| 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 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 375 base::Bind(&LocalToRemoteSyncer::DidUploadExistingFile, | 375 base::Bind(&LocalToRemoteSyncer::DidUploadExistingFile, |
| 376 weak_ptr_factory_.GetWeakPtr(), | 376 weak_ptr_factory_.GetWeakPtr(), |
| 377 callback), | 377 callback), |
| 378 google_apis::ProgressCallback()); | 378 google_apis::ProgressCallback()); |
| 379 } | 379 } |
| 380 | 380 |
| 381 void LocalToRemoteSyncer::DidUploadExistingFile( | 381 void LocalToRemoteSyncer::DidUploadExistingFile( |
| 382 const SyncStatusCallback& callback, | 382 const SyncStatusCallback& callback, |
| 383 google_apis::GDataErrorCode error, | 383 google_apis::GDataErrorCode error, |
| 384 const GURL&, | 384 const GURL&, |
| 385 scoped_ptr<google_apis::ResourceEntry>) { | 385 scoped_ptr<google_apis::ResourceEntry> entry) { |
| 386 if (error == google_apis::HTTP_PRECONDITION) { | 386 if (error == google_apis::HTTP_PRECONDITION) { |
| 387 // The remote file has unfetched remote change. Fetch latest metadata and | 387 // The remote file has unfetched remote change. Fetch latest metadata and |
| 388 // update database with it. | 388 // update database with it. |
| 389 // TODO(tzik): Consider adding local side low-priority dirtiness handling to | 389 // TODO(tzik): Consider adding local side low-priority dirtiness handling to |
| 390 // handle this as ListChangesTask. | 390 // handle this as ListChangesTask. |
| 391 UpdateRemoteMetadata(callback); | 391 UpdateRemoteMetadata(callback); |
| 392 return; | 392 return; |
| 393 } | 393 } |
| 394 | 394 |
| 395 callback.Run(GDataErrorCodeToSyncStatusCode(error)); | 395 metadata_database()->UpdateByFileResource( |
| 396 *drive::util::ConvertResourceEntryToFileResource(*entry), | |
| 397 base::Bind(&LocalToRemoteSyncer::DidUpdateMetadataForUpload, | |
|
kinuko
2013/12/02 09:05:39
We have DidUpdateDatabaseForUpload for UploadNewFi
tzik
2013/12/02 15:30:50
Renamed.
Do DidUpdateDatabaseForUpload{NewFile,Exi
| |
| 398 weak_ptr_factory_.GetWeakPtr(), | |
| 399 callback)); | |
| 400 } | |
| 401 | |
| 402 void LocalToRemoteSyncer::DidUpdateMetadataForUpload( | |
| 403 const SyncStatusCallback& callback, | |
| 404 SyncStatusCode status) { | |
| 405 if (status != SYNC_STATUS_OK) { | |
| 406 callback.Run(status); | |
| 407 return; | |
| 408 } | |
| 409 | |
| 410 FileMetadata file; | |
| 411 bool should_success = metadata_database()->FindFileByFileID( | |
| 412 remote_file_tracker_->file_id(), &file); | |
| 413 if (should_success) { | |
| 414 NOTREACHED(); | |
|
kinuko
2013/12/02 09:40:30
Hmm, I hit here in my local testing.
tzik
2013/12/02 15:30:50
...
That's broken, reversed.
Fixed! Thanks!
| |
| 415 callback.Run(SYNC_STATUS_FAILED); | |
| 416 return; | |
| 417 } | |
| 418 | |
| 419 metadata_database()->UpdateTracker( | |
| 420 remote_file_tracker_->tracker_id(), | |
| 421 file.details(), | |
| 422 callback); | |
| 396 } | 423 } |
| 397 | 424 |
| 398 void LocalToRemoteSyncer::UpdateRemoteMetadata( | 425 void LocalToRemoteSyncer::UpdateRemoteMetadata( |
| 399 const SyncStatusCallback& callback) { | 426 const SyncStatusCallback& callback) { |
| 400 DCHECK(remote_file_tracker_); | 427 DCHECK(remote_file_tracker_); |
| 401 drive_service()->GetResourceEntry( | 428 drive_service()->GetResourceEntry( |
| 402 remote_file_tracker_->file_id(), | 429 remote_file_tracker_->file_id(), |
| 403 base::Bind(&LocalToRemoteSyncer::DidGetRemoteMetadata, | 430 base::Bind(&LocalToRemoteSyncer::DidGetRemoteMetadata, |
| 404 weak_ptr_factory_.GetWeakPtr(), | 431 weak_ptr_factory_.GetWeakPtr(), |
| 405 callback)); | 432 callback)); |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 600 set_used_network(true); | 627 set_used_network(true); |
| 601 return sync_context_->GetDriveUploader(); | 628 return sync_context_->GetDriveUploader(); |
| 602 } | 629 } |
| 603 | 630 |
| 604 MetadataDatabase* LocalToRemoteSyncer::metadata_database() { | 631 MetadataDatabase* LocalToRemoteSyncer::metadata_database() { |
| 605 return sync_context_->GetMetadataDatabase(); | 632 return sync_context_->GetMetadataDatabase(); |
| 606 } | 633 } |
| 607 | 634 |
| 608 } // namespace drive_backend | 635 } // namespace drive_backend |
| 609 } // namespace sync_file_system | 636 } // namespace sync_file_system |
| OLD | NEW |