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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.cc

Issue 502973005: [fsp] Buffer consecutive Write() calls. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Created 6 years, 2 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/file_system_provider/fileapi/file_stream_write r.h" 5 #include "chrome/browser/chromeos/file_system_provider/fileapi/file_stream_write r.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/thread_task_runner_handle.h"
9 #include "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_fi le_util.h" 10 #include "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_fi le_util.h"
10 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h" 11 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
11 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_inte rface.h" 12 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_inte rface.h"
12 #include "content/public/browser/browser_thread.h" 13 #include "content/public/browser/browser_thread.h"
13 #include "net/base/io_buffer.h" 14 #include "net/base/io_buffer.h"
14 #include "net/base/net_errors.h" 15 #include "net/base/net_errors.h"
15 16
16 using content::BrowserThread; 17 using content::BrowserThread;
17 18
18 namespace chromeos { 19 namespace chromeos {
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 FROM_HERE, 266 FROM_HERE,
266 base::Bind(&OperationRunner::AbortOnUIThread, 267 base::Bind(&OperationRunner::AbortOnUIThread,
267 runner_, 268 runner_,
268 base::Bind(&FileStreamWriter::OnAbortCompleted, 269 base::Bind(&FileStreamWriter::OnAbortCompleted,
269 weak_ptr_factory_.GetWeakPtr(), 270 weak_ptr_factory_.GetWeakPtr(),
270 callback))); 271 callback)));
271 return net::ERR_IO_PENDING; 272 return net::ERR_IO_PENDING;
272 } 273 }
273 274
274 int FileStreamWriter::Flush(const net::CompletionCallback& callback) { 275 int FileStreamWriter::Flush(const net::CompletionCallback& callback) {
275 if (state_ != INITIALIZED) 276 base::ThreadTaskRunnerHandle::Get()->PostTask(
276 return net::ERR_FAILED; 277 FROM_HERE,
278 base::Bind(callback, state_ == INITIALIZED ? net::OK : net::ERR_FAILED));
277 279
278 return net::OK; 280 return net::ERR_IO_PENDING;
279 } 281 }
280 282
281 void FileStreamWriter::OnWriteFileCompleted( 283 void FileStreamWriter::OnWriteFileCompleted(
282 int buffer_length, 284 int buffer_length,
283 const net::CompletionCallback& callback, 285 const net::CompletionCallback& callback,
284 base::File::Error result) { 286 base::File::Error result) {
285 DCHECK_CURRENTLY_ON(BrowserThread::IO); 287 DCHECK_CURRENTLY_ON(BrowserThread::IO);
286 DCHECK_EQ(INITIALIZED, state_); 288 DCHECK_EQ(INITIALIZED, state_);
287 289
288 if (result != base::File::FILE_OK) { 290 if (result != base::File::FILE_OK) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 current_offset_, 331 current_offset_,
330 buffer_length, 332 buffer_length,
331 base::Bind(&FileStreamWriter::OnWriteFileCompleted, 333 base::Bind(&FileStreamWriter::OnWriteFileCompleted,
332 weak_ptr_factory_.GetWeakPtr(), 334 weak_ptr_factory_.GetWeakPtr(),
333 buffer_length, 335 buffer_length,
334 callback))); 336 callback)));
335 } 337 }
336 338
337 } // namespace file_system_provider 339 } // namespace file_system_provider
338 } // namespace chromeos 340 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698