OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |