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

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

Issue 304533003: [fsp] Rename has_next to has_more. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 years, 6 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 | Annotate | Revision Log
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_reade r.h" 5 #include "chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reade r.h"
6 6
7 #include "base/files/file.h" 7 #include "base/files/file.h"
8 #include "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_fi le_util.h" 8 #include "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_fi le_util.h"
9 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h" 9 #include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
10 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_inte rface.h" 10 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_inte rface.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 // Closes a file. Ignores result, since it is called from a constructor. 69 // Closes a file. Ignores result, since it is called from a constructor.
70 // Must be called on UI thread. 70 // Must be called on UI thread.
71 void CloseFileOnUIThread(base::WeakPtr<ProvidedFileSystemInterface> file_system, 71 void CloseFileOnUIThread(base::WeakPtr<ProvidedFileSystemInterface> file_system,
72 int file_handle) { 72 int file_handle) {
73 DCHECK_CURRENTLY_ON(BrowserThread::UI); 73 DCHECK_CURRENTLY_ON(BrowserThread::UI);
74 if (file_system.get()) 74 if (file_system.get())
75 file_system->CloseFile(file_handle, base::Bind(&EmptyStatusCallback)); 75 file_system->CloseFile(file_handle, base::Bind(&EmptyStatusCallback));
76 } 76 }
77 77
78 // Requests reading contents of a file. In case of either success or a failure 78 // Requests reading contents of a file. In case of either success or a failure
79 // |callback| is executed. It can be called many times, until |has_next| is set 79 // |callback| is executed. It can be called many times, until |has_more| is set
80 // to false. This function guarantees that it will succeed only if the file has 80 // to false. This function guarantees that it will succeed only if the file has
81 // not been changed while reading. Must be called on UI thread. 81 // not been changed while reading. Must be called on UI thread.
82 void ReadFileOnUIThread( 82 void ReadFileOnUIThread(
83 base::WeakPtr<ProvidedFileSystemInterface> file_system, 83 base::WeakPtr<ProvidedFileSystemInterface> file_system,
84 int file_handle, 84 int file_handle,
85 net::IOBuffer* buffer, 85 net::IOBuffer* buffer,
86 int64 offset, 86 int64 offset,
87 int length, 87 int length,
88 const ProvidedFileSystemInterface::ReadChunkReceivedCallback& callback) { 88 const ProvidedFileSystemInterface::ReadChunkReceivedCallback& callback) {
89 DCHECK_CURRENTLY_ON(BrowserThread::UI); 89 DCHECK_CURRENTLY_ON(BrowserThread::UI);
90 90
91 // If the file system got unmounted, then abort the reading operation. 91 // If the file system got unmounted, then abort the reading operation.
92 if (!file_system.get()) { 92 if (!file_system.get()) {
93 callback.Run(0, false /* has_next */, base::File::FILE_ERROR_ABORT); 93 callback.Run(0, false /* has_more */, base::File::FILE_ERROR_ABORT);
94 return; 94 return;
95 } 95 }
96 96
97 file_system->ReadFile(file_handle, buffer, offset, length, callback); 97 file_system->ReadFile(file_handle, buffer, offset, length, callback);
98 } 98 }
99 99
100 // Forward the completion callback to IO thread. 100 // Forward the completion callback to IO thread.
101 void OnReadChunkReceivedOnUIThread( 101 void OnReadChunkReceivedOnUIThread(
102 const ProvidedFileSystemInterface::ReadChunkReceivedCallback& 102 const ProvidedFileSystemInterface::ReadChunkReceivedCallback&
103 chunk_received_callback, 103 chunk_received_callback,
104 int chunk_length, 104 int chunk_length,
105 bool has_next, 105 bool has_more,
106 base::File::Error result) { 106 base::File::Error result) {
107 DCHECK_CURRENTLY_ON(BrowserThread::UI); 107 DCHECK_CURRENTLY_ON(BrowserThread::UI);
108 BrowserThread::PostTask( 108 BrowserThread::PostTask(
109 BrowserThread::IO, 109 BrowserThread::IO,
110 FROM_HERE, 110 FROM_HERE,
111 base::Bind(chunk_received_callback, chunk_length, has_next, result)); 111 base::Bind(chunk_received_callback, chunk_length, has_more, result));
112 } 112 }
113 113
114 // Requests metadata of a file. In case of either succes or a failure, 114 // Requests metadata of a file. In case of either succes or a failure,
115 // |callback is executed. Must be called on UI thread. 115 // |callback is executed. Must be called on UI thread.
116 void GetMetadataOnUIThread( 116 void GetMetadataOnUIThread(
117 base::WeakPtr<ProvidedFileSystemInterface> file_system, 117 base::WeakPtr<ProvidedFileSystemInterface> file_system,
118 const base::FilePath& file_path, 118 const base::FilePath& file_path,
119 const fileapi::AsyncFileUtil::GetFileInfoCallback& callback) { 119 const fileapi::AsyncFileUtil::GetFileInfoCallback& callback) {
120 DCHECK_CURRENTLY_ON(BrowserThread::UI); 120 DCHECK_CURRENTLY_ON(BrowserThread::UI);
121 121
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 base::Bind( 280 base::Bind(
281 &OnGetMetadataReceivedOnUIThread, 281 &OnGetMetadataReceivedOnUIThread,
282 base::Bind(&FileStreamReader::OnGetMetadataForGetLengthReceived, 282 base::Bind(&FileStreamReader::OnGetMetadataForGetLengthReceived,
283 weak_ptr_factory_.GetWeakPtr(), 283 weak_ptr_factory_.GetWeakPtr(),
284 callback)))); 284 callback))));
285 } 285 }
286 286
287 void FileStreamReader::OnReadChunkReceived( 287 void FileStreamReader::OnReadChunkReceived(
288 const net::CompletionCallback& callback, 288 const net::CompletionCallback& callback,
289 int chunk_length, 289 int chunk_length,
290 bool has_next, 290 bool has_more,
291 base::File::Error result) { 291 base::File::Error result) {
292 DCHECK_CURRENTLY_ON(BrowserThread::IO); 292 DCHECK_CURRENTLY_ON(BrowserThread::IO);
293 current_length_ += chunk_length; 293 current_length_ += chunk_length;
294 294
295 // If this is the last chunk with a success, then finalize. 295 // If this is the last chunk with a success, then finalize.
296 if (!has_next && result == base::File::FILE_OK) { 296 if (!has_more && result == base::File::FILE_OK) {
297 current_offset_ += current_length_; 297 current_offset_ += current_length_;
298 callback.Run(current_length_); 298 callback.Run(current_length_);
299 return; 299 return;
300 } 300 }
301 301
302 // In case of an error, abort. 302 // In case of an error, abort.
303 if (result != base::File::FILE_OK) { 303 if (result != base::File::FILE_OK) {
304 DCHECK(!has_next); 304 DCHECK(!has_more);
305 callback.Run(net::FileErrorToNetError(result)); 305 callback.Run(net::FileErrorToNetError(result));
306 return; 306 return;
307 } 307 }
308 308
309 // More data is about to come, so do not call the callback yet. 309 // More data is about to come, so do not call the callback yet.
310 DCHECK(has_next); 310 DCHECK(has_more);
311 } 311 }
312 312
313 void FileStreamReader::OnGetMetadataForGetLengthReceived( 313 void FileStreamReader::OnGetMetadataForGetLengthReceived(
314 const net::Int64CompletionCallback& callback, 314 const net::Int64CompletionCallback& callback,
315 base::File::Error result, 315 base::File::Error result,
316 const base::File::Info& file_info) { 316 const base::File::Info& file_info) {
317 DCHECK_CURRENTLY_ON(BrowserThread::IO); 317 DCHECK_CURRENTLY_ON(BrowserThread::IO);
318 318
319 // In case of an error, abort. 319 // In case of an error, abort.
320 if (result != base::File::FILE_OK) { 320 if (result != base::File::FILE_OK) {
321 callback.Run(net::FileErrorToNetError(result)); 321 callback.Run(net::FileErrorToNetError(result));
322 return; 322 return;
323 } 323 }
324 324
325 DCHECK_EQ(result, base::File::FILE_OK); 325 DCHECK_EQ(result, base::File::FILE_OK);
326 callback.Run(file_info.size); 326 callback.Run(file_info.size);
327 } 327 }
328 328
329 } // namespace file_system_provider 329 } // namespace file_system_provider
330 } // namespace chromeos 330 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698