Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Side by Side Diff: chrome/browser/media_galleries/linux/mtp_device_task_helper.cc

Issue 982283002: Implement DeleteFile and DeleteDirectory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix unit_tests. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/media_galleries/linux/mtp_device_task_helper.h" 5 #include "chrome/browser/media_galleries/linux/mtp_device_task_helper.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/numerics/safe_conversions.h" 10 #include "base/numerics/safe_conversions.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 return HandleDeviceError(error_callback, base::File::FILE_ERROR_FAILED); 102 return HandleDeviceError(error_callback, base::File::FILE_ERROR_FAILED);
103 103
104 GetMediaTransferProtocolManager()->ReadDirectory( 104 GetMediaTransferProtocolManager()->ReadDirectory(
105 device_handle_, dir_id, 105 device_handle_, dir_id,
106 base::Bind(&MTPDeviceTaskHelper::OnDidReadDirectory, 106 base::Bind(&MTPDeviceTaskHelper::OnDidReadDirectory,
107 weak_ptr_factory_.GetWeakPtr(), 107 weak_ptr_factory_.GetWeakPtr(),
108 success_callback, 108 success_callback,
109 error_callback)); 109 error_callback));
110 } 110 }
111 111
112 void MTPDeviceTaskHelper::ReadDirectoryEntryIds(
113 const uint32 directory_id,
114 const ReadDirectoryEntryIdsSuccessCallback& success_callback,
115 const ErrorCallback& error_callback) {
116 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
117 if (device_handle_.empty())
118 return HandleDeviceError(error_callback, base::File::FILE_ERROR_FAILED);
119
120 GetMediaTransferProtocolManager()->ReadDirectoryEntryIds(
121 device_handle_, directory_id,
122 base::Bind(&MTPDeviceTaskHelper::OnDidReadDirectoryEntryIds,
123 weak_ptr_factory_.GetWeakPtr(), success_callback,
124 error_callback));
125 }
126
112 void MTPDeviceTaskHelper::WriteDataIntoSnapshotFile( 127 void MTPDeviceTaskHelper::WriteDataIntoSnapshotFile(
113 const SnapshotRequestInfo& request_info, 128 const SnapshotRequestInfo& request_info,
114 const base::File::Info& snapshot_file_info) { 129 const base::File::Info& snapshot_file_info) {
115 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 130 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
116 if (device_handle_.empty()) { 131 if (device_handle_.empty()) {
117 return HandleDeviceError(request_info.error_callback, 132 return HandleDeviceError(request_info.error_callback,
118 base::File::FILE_ERROR_FAILED); 133 base::File::FILE_ERROR_FAILED);
119 } 134 }
120 135
121 if (!read_file_worker_) 136 if (!read_file_worker_)
122 read_file_worker_.reset(new MTPReadFileWorker(device_handle_)); 137 read_file_worker_.reset(new MTPReadFileWorker(device_handle_));
123 read_file_worker_->WriteDataIntoSnapshotFile(request_info, 138 read_file_worker_->WriteDataIntoSnapshotFile(request_info,
124 snapshot_file_info); 139 snapshot_file_info);
125 } 140 }
126 141
127 void MTPDeviceTaskHelper::ReadBytes( 142 void MTPDeviceTaskHelper::ReadBytes(
128 const MTPDeviceAsyncDelegate::ReadBytesRequest& request) { 143 const MTPDeviceAsyncDelegate::ReadBytesRequest& request) {
129 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 144 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
130 if (device_handle_.empty()) { 145 if (device_handle_.empty()) {
131 return HandleDeviceError(request.error_callback, 146 return HandleDeviceError(request.error_callback,
132 base::File::FILE_ERROR_FAILED); 147 base::File::FILE_ERROR_FAILED);
133 } 148 }
134 149
135 GetMediaTransferProtocolManager()->GetFileInfo( 150 GetMediaTransferProtocolManager()->GetFileInfo(
136 device_handle_, request.file_id, 151 device_handle_, request.file_id,
137 base::Bind(&MTPDeviceTaskHelper::OnGetFileInfoToReadBytes, 152 base::Bind(&MTPDeviceTaskHelper::OnGetFileInfoToReadBytes,
138 weak_ptr_factory_.GetWeakPtr(), request)); 153 weak_ptr_factory_.GetWeakPtr(), request));
139 } 154 }
140 155
156 // TODO(yawano) storage_name is not used, delete it.
141 void MTPDeviceTaskHelper::CopyFileFromLocal( 157 void MTPDeviceTaskHelper::CopyFileFromLocal(
142 const std::string& storage_name, 158 const std::string& storage_name,
143 const int source_file_descriptor, 159 const int source_file_descriptor,
144 const uint32 parent_id, 160 const uint32 parent_id,
145 const std::string& file_name, 161 const std::string& file_name,
146 const CopyFileFromLocalSuccessCallback& success_callback, 162 const CopyFileFromLocalSuccessCallback& success_callback,
147 const ErrorCallback& error_callback) { 163 const ErrorCallback& error_callback) {
148 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 164 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
149 165
150 GetMediaTransferProtocolManager()->CopyFileFromLocal( 166 GetMediaTransferProtocolManager()->CopyFileFromLocal(
151 device_handle_, source_file_descriptor, parent_id, file_name, 167 device_handle_, source_file_descriptor, parent_id, file_name,
152 base::Bind(&MTPDeviceTaskHelper::OnCopyFileFromLocal, 168 base::Bind(&MTPDeviceTaskHelper::OnCopyFileFromLocal,
153 weak_ptr_factory_.GetWeakPtr(), success_callback, 169 weak_ptr_factory_.GetWeakPtr(), success_callback,
154 error_callback)); 170 error_callback));
155 } 171 }
156 172
173 void MTPDeviceTaskHelper::DeleteObject(
174 const uint32 object_id,
175 const DeleteObjectSuccessCallback& success_callback,
176 const ErrorCallback& error_callback) {
177 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
178
179 GetMediaTransferProtocolManager()->DeleteObject(
180 device_handle_, object_id,
181 base::Bind(&MTPDeviceTaskHelper::OnDeleteObject,
182 weak_ptr_factory_.GetWeakPtr(), success_callback,
183 error_callback));
184 }
185
157 void MTPDeviceTaskHelper::CloseStorage() const { 186 void MTPDeviceTaskHelper::CloseStorage() const {
158 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 187 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
159 if (device_handle_.empty()) 188 if (device_handle_.empty())
160 return; 189 return;
161 GetMediaTransferProtocolManager()->CloseStorage(device_handle_, 190 GetMediaTransferProtocolManager()->CloseStorage(device_handle_,
162 base::Bind(&DoNothing)); 191 base::Bind(&DoNothing));
163 } 192 }
164 193
165 void MTPDeviceTaskHelper::OnDidOpenStorage( 194 void MTPDeviceTaskHelper::OnDidOpenStorage(
166 const OpenStorageCallback& completion_callback, 195 const OpenStorageCallback& completion_callback,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 entry.size = file_enum.Size(); 244 entry.size = file_enum.Size();
216 entry.last_modified_time = file_enum.LastModifiedTime(); 245 entry.last_modified_time = file_enum.LastModifiedTime();
217 entries.push_back(entry); 246 entries.push_back(entry);
218 } 247 }
219 content::BrowserThread::PostTask( 248 content::BrowserThread::PostTask(
220 content::BrowserThread::IO, 249 content::BrowserThread::IO,
221 FROM_HERE, 250 FROM_HERE,
222 base::Bind(success_callback, entries, has_more)); 251 base::Bind(success_callback, entries, has_more));
223 } 252 }
224 253
254 void MTPDeviceTaskHelper::OnDidReadDirectoryEntryIds(
255 const ReadDirectoryEntryIdsSuccessCallback& success_callback,
256 const ErrorCallback& error_callback,
257 const std::vector<uint32>& file_ids,
258 const bool error) const {
259 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
260
261 if (error)
262 return HandleDeviceError(error_callback, base::File::FILE_ERROR_FAILED);
263
264 content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE,
265 base::Bind(success_callback, file_ids));
266 }
267
225 void MTPDeviceTaskHelper::OnGetFileInfoToReadBytes( 268 void MTPDeviceTaskHelper::OnGetFileInfoToReadBytes(
226 const MTPDeviceAsyncDelegate::ReadBytesRequest& request, 269 const MTPDeviceAsyncDelegate::ReadBytesRequest& request,
227 const MtpFileEntry& file_entry, 270 const MtpFileEntry& file_entry,
228 bool error) { 271 bool error) {
229 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 272 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
230 DCHECK(request.buf.get()); 273 DCHECK(request.buf.get());
231 DCHECK_GE(request.buf_len, 0); 274 DCHECK_GE(request.buf_len, 0);
232 DCHECK_GE(request.offset, 0); 275 DCHECK_GE(request.offset, 0);
233 if (error) { 276 if (error) {
234 return HandleDeviceError(request.error_callback, 277 return HandleDeviceError(request.error_callback,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 content::BrowserThread::PostTask( 336 content::BrowserThread::PostTask(
294 content::BrowserThread::IO, FROM_HERE, 337 content::BrowserThread::IO, FROM_HERE,
295 base::Bind(error_callback, base::File::FILE_ERROR_FAILED)); 338 base::Bind(error_callback, base::File::FILE_ERROR_FAILED));
296 return; 339 return;
297 } 340 }
298 341
299 content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE, 342 content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE,
300 base::Bind(success_callback)); 343 base::Bind(success_callback));
301 } 344 }
302 345
346 void MTPDeviceTaskHelper::OnDeleteObject(
347 const DeleteObjectSuccessCallback& success_callback,
348 const ErrorCallback& error_callback,
349 const bool error) const {
350 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
351 if (error) {
352 content::BrowserThread::PostTask(
353 content::BrowserThread::IO, FROM_HERE,
354 base::Bind(error_callback, base::File::FILE_ERROR_FAILED));
355 return;
356 }
357
358 content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE,
359 base::Bind(success_callback));
360 }
361
303 void MTPDeviceTaskHelper::HandleDeviceError( 362 void MTPDeviceTaskHelper::HandleDeviceError(
304 const ErrorCallback& error_callback, 363 const ErrorCallback& error_callback,
305 base::File::Error error) const { 364 base::File::Error error) const {
306 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 365 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
307 content::BrowserThread::PostTask(content::BrowserThread::IO, 366 content::BrowserThread::PostTask(content::BrowserThread::IO,
308 FROM_HERE, 367 FROM_HERE,
309 base::Bind(error_callback, error)); 368 base::Bind(error_callback, error));
310 } 369 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698