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

Unified Diff: chrome/browser/media_galleries/linux/mtp_device_task_helper.cc

Issue 180783005: MTP Streaming: Optimize block reading (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media_galleries/linux/mtp_device_task_helper.cc
diff --git a/chrome/browser/media_galleries/linux/mtp_device_task_helper.cc b/chrome/browser/media_galleries/linux/mtp_device_task_helper.cc
index a1546c747c32e48671d8b9c5d656744ca45ab27d..a1ca0fef70258e41d584924f6912af35f3f0274c 100644
--- a/chrome/browser/media_galleries/linux/mtp_device_task_helper.cc
+++ b/chrome/browser/media_galleries/linux/mtp_device_task_helper.cc
@@ -109,20 +109,23 @@ void MTPDeviceTaskHelper::WriteDataIntoSnapshotFile(
}
void MTPDeviceTaskHelper::ReadBytes(
- const MTPDeviceAsyncDelegate::ReadBytesRequest& request) {
+ const std::string& device_file_relative_path,
+ net::IOBuffer* buf, int64 offset, int buf_len,
+ const ReadBytesSuccessCallback& success_callback,
+ const ErrorCallback& error_callback) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
if (device_handle_.empty()) {
- return HandleDeviceError(request.error_callback,
- base::File::FILE_ERROR_FAILED);
+ return HandleDeviceError(error_callback, base::File::FILE_ERROR_FAILED);
}
GetMediaTransferProtocolManager()->ReadFileChunkByPath(
device_handle_,
- request.device_file_relative_path,
- base::checked_cast<uint32>(request.offset),
- base::checked_cast<uint32>(request.buf_len),
+ device_file_relative_path,
+ base::checked_cast<uint32>(offset),
+ base::checked_cast<uint32>(buf_len),
base::Bind(&MTPDeviceTaskHelper::OnDidReadBytes,
- weak_ptr_factory_.GetWeakPtr(), request));
+ weak_ptr_factory_.GetWeakPtr(), make_scoped_refptr(buf),
+ buf_len, success_callback, error_callback));
}
void MTPDeviceTaskHelper::CloseStorage() const {
@@ -196,22 +199,22 @@ void MTPDeviceTaskHelper::OnDidReadDirectoryByPath(
}
void MTPDeviceTaskHelper::OnDidReadBytes(
- const MTPDeviceAsyncDelegate::ReadBytesRequest& request,
+ net::IOBuffer* buf, int buf_len,
+ const ReadBytesSuccessCallback& success_callback,
+ const ErrorCallback& error_callback,
const std::string& data,
bool error) const {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
if (error) {
- return HandleDeviceError(request.error_callback,
- base::File::FILE_ERROR_FAILED);
+ return HandleDeviceError(error_callback, base::File::FILE_ERROR_FAILED);
}
- CHECK_LE(base::checked_cast<int>(data.length()), request.buf_len);
- std::copy(data.begin(), data.end(), request.buf->data());
+ CHECK_LE(base::checked_cast<int>(data.length()), buf_len);
+ std::copy(data.begin(), data.end(), buf->data());
content::BrowserThread::PostTask(content::BrowserThread::IO,
FROM_HERE,
- base::Bind(request.success_callback,
- data.length()));
+ base::Bind(success_callback, data.length()));
}
void MTPDeviceTaskHelper::HandleDeviceError(

Powered by Google App Engine
This is Rietveld 408576698