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 |