Commit e95e0071 authored by tzik@chromium.org's avatar tzik@chromium.org

[SyncFS] Update tracker on upload

BUG=240165
NOTRY=true
R=kinuko@chromium.org, nhiroki@chromium.org

Review URL: https://codereview.chromium.org/98653002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238319 0039d316-1c4b-4281-b951-d872f2087c98
parent 79a66c5e
...@@ -385,7 +385,7 @@ void LocalToRemoteSyncer::DidUploadExistingFile( ...@@ -385,7 +385,7 @@ void LocalToRemoteSyncer::DidUploadExistingFile(
const SyncStatusCallback& callback, const SyncStatusCallback& callback,
google_apis::GDataErrorCode error, google_apis::GDataErrorCode error,
const GURL&, const GURL&,
scoped_ptr<google_apis::ResourceEntry>) { scoped_ptr<google_apis::ResourceEntry> entry) {
if (error == google_apis::HTTP_PRECONDITION) { if (error == google_apis::HTTP_PRECONDITION) {
// The remote file has unfetched remote change. Fetch latest metadata and // The remote file has unfetched remote change. Fetch latest metadata and
// update database with it. // update database with it.
...@@ -395,7 +395,34 @@ void LocalToRemoteSyncer::DidUploadExistingFile( ...@@ -395,7 +395,34 @@ void LocalToRemoteSyncer::DidUploadExistingFile(
return; return;
} }
callback.Run(GDataErrorCodeToSyncStatusCode(error)); metadata_database()->UpdateByFileResource(
*drive::util::ConvertResourceEntryToFileResource(*entry),
base::Bind(&LocalToRemoteSyncer::DidUpdateDatabaseForUploadExistingFile,
weak_ptr_factory_.GetWeakPtr(),
callback));
}
void LocalToRemoteSyncer::DidUpdateDatabaseForUploadExistingFile(
const SyncStatusCallback& callback,
SyncStatusCode status) {
if (status != SYNC_STATUS_OK) {
callback.Run(status);
return;
}
FileMetadata file;
bool should_success = metadata_database()->FindFileByFileID(
remote_file_tracker_->file_id(), &file);
if (!should_success) {
NOTREACHED();
callback.Run(SYNC_STATUS_FAILED);
return;
}
metadata_database()->UpdateTracker(
remote_file_tracker_->tracker_id(),
file.details(),
callback);
} }
void LocalToRemoteSyncer::UpdateRemoteMetadata( void LocalToRemoteSyncer::UpdateRemoteMetadata(
...@@ -480,12 +507,12 @@ void LocalToRemoteSyncer::DidUploadNewFile( ...@@ -480,12 +507,12 @@ void LocalToRemoteSyncer::DidUploadNewFile(
// MetadataDatabase. // MetadataDatabase.
metadata_database()->UpdateByFileResource( metadata_database()->UpdateByFileResource(
*drive::util::ConvertResourceEntryToFileResource(*entry), *drive::util::ConvertResourceEntryToFileResource(*entry),
base::Bind(&LocalToRemoteSyncer::DidUpdateDatabaseForUpload, base::Bind(&LocalToRemoteSyncer::DidUpdateDatabaseForUploadNewFile,
weak_ptr_factory_.GetWeakPtr(), weak_ptr_factory_.GetWeakPtr(),
callback, entry->resource_id())); callback, entry->resource_id()));
} }
void LocalToRemoteSyncer::DidUpdateDatabaseForUpload( void LocalToRemoteSyncer::DidUpdateDatabaseForUploadNewFile(
const SyncStatusCallback& callback, const SyncStatusCallback& callback,
const std::string& file_id, const std::string& file_id,
SyncStatusCode status) { SyncStatusCode status) {
......
...@@ -68,6 +68,9 @@ class LocalToRemoteSyncer : public SyncTask { ...@@ -68,6 +68,9 @@ class LocalToRemoteSyncer : public SyncTask {
google_apis::GDataErrorCode error, google_apis::GDataErrorCode error,
const GURL&, const GURL&,
scoped_ptr<google_apis::ResourceEntry>); scoped_ptr<google_apis::ResourceEntry>);
void DidUpdateDatabaseForUploadExistingFile(
const SyncStatusCallback& callback,
SyncStatusCode status);
void UpdateRemoteMetadata(const SyncStatusCallback& callback); void UpdateRemoteMetadata(const SyncStatusCallback& callback);
void DidGetRemoteMetadata(const SyncStatusCallback& callback, void DidGetRemoteMetadata(const SyncStatusCallback& callback,
google_apis::GDataErrorCode error, google_apis::GDataErrorCode error,
...@@ -83,9 +86,9 @@ class LocalToRemoteSyncer : public SyncTask { ...@@ -83,9 +86,9 @@ class LocalToRemoteSyncer : public SyncTask {
google_apis::GDataErrorCode error, google_apis::GDataErrorCode error,
const GURL& upload_location, const GURL& upload_location,
scoped_ptr<google_apis::ResourceEntry> entry); scoped_ptr<google_apis::ResourceEntry> entry);
void DidUpdateDatabaseForUpload(const SyncStatusCallback& callback, void DidUpdateDatabaseForUploadNewFile(const SyncStatusCallback& callback,
const std::string& file_id, const std::string& file_id,
SyncStatusCode status); SyncStatusCode status);
void CreateRemoteFolder(const SyncStatusCallback& callback); void CreateRemoteFolder(const SyncStatusCallback& callback);
void DidCreateRemoteFolder(const SyncStatusCallback& callback, void DidCreateRemoteFolder(const SyncStatusCallback& callback,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment