| 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/chromeos/drive/sync/entry_revert_performer.h" | 5 #include "chrome/browser/chromeos/drive/sync/entry_revert_performer.h" |
| 6 | 6 |
| 7 #include "chrome/browser/chromeos/drive/change_list_processor.h" | 7 #include "chrome/browser/chromeos/drive/change_list_processor.h" |
| 8 #include "chrome/browser/chromeos/drive/drive.pb.h" | 8 #include "chrome/browser/chromeos/drive/drive.pb.h" |
| 9 #include "chrome/browser/chromeos/drive/file_change.h" | 9 #include "chrome/browser/chromeos/drive/file_change.h" |
| 10 #include "chrome/browser/chromeos/drive/file_system/operation_delegate.h" | 10 #include "chrome/browser/chromeos/drive/file_system/operation_delegate.h" |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 EntryRevertPerformer::EntryRevertPerformer( | 86 EntryRevertPerformer::EntryRevertPerformer( |
| 87 base::SequencedTaskRunner* blocking_task_runner, | 87 base::SequencedTaskRunner* blocking_task_runner, |
| 88 file_system::OperationDelegate* delegate, | 88 file_system::OperationDelegate* delegate, |
| 89 JobScheduler* scheduler, | 89 JobScheduler* scheduler, |
| 90 ResourceMetadata* metadata) | 90 ResourceMetadata* metadata) |
| 91 : blocking_task_runner_(blocking_task_runner), | 91 : blocking_task_runner_(blocking_task_runner), |
| 92 delegate_(delegate), | 92 delegate_(delegate), |
| 93 scheduler_(scheduler), | 93 scheduler_(scheduler), |
| 94 metadata_(metadata), | 94 metadata_(metadata), |
| 95 weak_ptr_factory_(this) { | 95 weak_ptr_factory_(this) { |
| 96 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 96 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 97 } | 97 } |
| 98 | 98 |
| 99 EntryRevertPerformer::~EntryRevertPerformer() { | 99 EntryRevertPerformer::~EntryRevertPerformer() { |
| 100 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 100 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 101 } | 101 } |
| 102 | 102 |
| 103 void EntryRevertPerformer::RevertEntry(const std::string& local_id, | 103 void EntryRevertPerformer::RevertEntry(const std::string& local_id, |
| 104 const ClientContext& context, | 104 const ClientContext& context, |
| 105 const FileOperationCallback& callback) { | 105 const FileOperationCallback& callback) { |
| 106 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 106 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 107 DCHECK(!callback.is_null()); | 107 DCHECK(!callback.is_null()); |
| 108 | 108 |
| 109 scoped_ptr<ResourceEntry> entry(new ResourceEntry); | 109 scoped_ptr<ResourceEntry> entry(new ResourceEntry); |
| 110 ResourceEntry* entry_ptr = entry.get(); | 110 ResourceEntry* entry_ptr = entry.get(); |
| 111 base::PostTaskAndReplyWithResult( | 111 base::PostTaskAndReplyWithResult( |
| 112 blocking_task_runner_.get(), | 112 blocking_task_runner_.get(), |
| 113 FROM_HERE, | 113 FROM_HERE, |
| 114 base::Bind(&ResourceMetadata::GetResourceEntryById, | 114 base::Bind(&ResourceMetadata::GetResourceEntryById, |
| 115 base::Unretained(metadata_), local_id, entry_ptr), | 115 base::Unretained(metadata_), local_id, entry_ptr), |
| 116 base::Bind(&EntryRevertPerformer::RevertEntryAfterPrepare, | 116 base::Bind(&EntryRevertPerformer::RevertEntryAfterPrepare, |
| 117 weak_ptr_factory_.GetWeakPtr(), context, callback, | 117 weak_ptr_factory_.GetWeakPtr(), context, callback, |
| 118 base::Passed(&entry))); | 118 base::Passed(&entry))); |
| 119 } | 119 } |
| 120 | 120 |
| 121 void EntryRevertPerformer::RevertEntryAfterPrepare( | 121 void EntryRevertPerformer::RevertEntryAfterPrepare( |
| 122 const ClientContext& context, | 122 const ClientContext& context, |
| 123 const FileOperationCallback& callback, | 123 const FileOperationCallback& callback, |
| 124 scoped_ptr<ResourceEntry> entry, | 124 scoped_ptr<ResourceEntry> entry, |
| 125 FileError error) { | 125 FileError error) { |
| 126 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 126 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 127 DCHECK(!callback.is_null()); | 127 DCHECK(!callback.is_null()); |
| 128 | 128 |
| 129 if (error == FILE_ERROR_OK && entry->resource_id().empty()) | 129 if (error == FILE_ERROR_OK && entry->resource_id().empty()) |
| 130 error = FILE_ERROR_INVALID_OPERATION; | 130 error = FILE_ERROR_INVALID_OPERATION; |
| 131 | 131 |
| 132 if (error != FILE_ERROR_OK) { | 132 if (error != FILE_ERROR_OK) { |
| 133 callback.Run(error); | 133 callback.Run(error); |
| 134 return; | 134 return; |
| 135 } | 135 } |
| 136 | 136 |
| 137 scheduler_->GetFileResource( | 137 scheduler_->GetFileResource( |
| 138 entry->resource_id(), | 138 entry->resource_id(), |
| 139 context, | 139 context, |
| 140 base::Bind(&EntryRevertPerformer::RevertEntryAfterGetFileResource, | 140 base::Bind(&EntryRevertPerformer::RevertEntryAfterGetFileResource, |
| 141 weak_ptr_factory_.GetWeakPtr(), callback, entry->local_id())); | 141 weak_ptr_factory_.GetWeakPtr(), callback, entry->local_id())); |
| 142 } | 142 } |
| 143 | 143 |
| 144 void EntryRevertPerformer::RevertEntryAfterGetFileResource( | 144 void EntryRevertPerformer::RevertEntryAfterGetFileResource( |
| 145 const FileOperationCallback& callback, | 145 const FileOperationCallback& callback, |
| 146 const std::string& local_id, | 146 const std::string& local_id, |
| 147 google_apis::DriveApiErrorCode status, | 147 google_apis::DriveApiErrorCode status, |
| 148 scoped_ptr<google_apis::FileResource> entry) { | 148 scoped_ptr<google_apis::FileResource> entry) { |
| 149 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 149 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 150 DCHECK(!callback.is_null()); | 150 DCHECK(!callback.is_null()); |
| 151 | 151 |
| 152 FileChange* changed_files = new FileChange; | 152 FileChange* changed_files = new FileChange; |
| 153 base::PostTaskAndReplyWithResult( | 153 base::PostTaskAndReplyWithResult( |
| 154 blocking_task_runner_.get(), | 154 blocking_task_runner_.get(), |
| 155 FROM_HERE, | 155 FROM_HERE, |
| 156 base::Bind(&FinishRevert, | 156 base::Bind(&FinishRevert, |
| 157 metadata_, | 157 metadata_, |
| 158 local_id, | 158 local_id, |
| 159 status, | 159 status, |
| 160 base::Passed(&entry), | 160 base::Passed(&entry), |
| 161 changed_files), | 161 changed_files), |
| 162 base::Bind(&EntryRevertPerformer::RevertEntryAfterFinishRevert, | 162 base::Bind(&EntryRevertPerformer::RevertEntryAfterFinishRevert, |
| 163 weak_ptr_factory_.GetWeakPtr(), | 163 weak_ptr_factory_.GetWeakPtr(), |
| 164 callback, | 164 callback, |
| 165 base::Owned(changed_files))); | 165 base::Owned(changed_files))); |
| 166 } | 166 } |
| 167 | 167 |
| 168 void EntryRevertPerformer::RevertEntryAfterFinishRevert( | 168 void EntryRevertPerformer::RevertEntryAfterFinishRevert( |
| 169 const FileOperationCallback& callback, | 169 const FileOperationCallback& callback, |
| 170 const FileChange* changed_files, | 170 const FileChange* changed_files, |
| 171 FileError error) { | 171 FileError error) { |
| 172 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 172 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 173 DCHECK(!callback.is_null()); | 173 DCHECK(!callback.is_null()); |
| 174 | 174 |
| 175 delegate_->OnFileChangedByOperation(*changed_files); | 175 delegate_->OnFileChangedByOperation(*changed_files); |
| 176 | 176 |
| 177 callback.Run(error); | 177 callback.Run(error); |
| 178 } | 178 } |
| 179 | 179 |
| 180 } // namespace internal | 180 } // namespace internal |
| 181 } // namespace drive | 181 } // namespace drive |
| OLD | NEW |