| Index: chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h
|
| diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h
|
| index e0e4eccb901476e522c23a68c53a83c948ad8aa6..627a76352e51e93b462bee2e1eb629941a2fe70e 100644
|
| --- a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h
|
| +++ b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h
|
| @@ -20,16 +20,19 @@ namespace file_system_provider {
|
|
|
| // Wraps the file stream reader implementation with a prefetching buffer.
|
| // Reads data from the internal file stream reader in chunks of size at least
|
| -// |buffer_size| bytes (or less for the last chunk, because of EOF).
|
| +// |preloading_buffer_length| bytes (or less for the last chunk, because of
|
| +// EOF). If total number of bytes to be downloaded is known, it should be passed
|
| +// as |bytes_to_read|, otherwise it must be -1.
|
| //
|
| -// The underlying inner file stream reader *must not* return any values
|
| +// The underlying internal file stream reader *must not* return any values
|
| // synchronously. Instead, results must be returned by a callback, including
|
| // errors.
|
| class BufferingFileStreamReader : public storage::FileStreamReader {
|
| public:
|
| BufferingFileStreamReader(
|
| scoped_ptr<storage::FileStreamReader> file_stream_reader,
|
| - int buffer_size);
|
| + int preloading_buffer_length,
|
| + int64 bytes_to_read);
|
|
|
| virtual ~BufferingFileStreamReader();
|
|
|
| @@ -49,6 +52,8 @@ class BufferingFileStreamReader : public storage::FileStreamReader {
|
| // Preloads data from the internal stream reader and calls the |callback|.
|
| void Preload(const net::CompletionCallback& callback);
|
|
|
| + void OnReadCompleted(const net::CompletionCallback& callback, int result);
|
| +
|
| // Called when preloading of a buffer chunk is finished. Updates state of the
|
| // preloading buffer and copied requested data to the |buffer|.
|
| void OnPreloadCompleted(scoped_refptr<net::IOBuffer> buffer,
|
| @@ -57,10 +62,12 @@ class BufferingFileStreamReader : public storage::FileStreamReader {
|
| int result);
|
|
|
| scoped_ptr<storage::FileStreamReader> file_stream_reader_;
|
| - int buffer_size_;
|
| + int preloading_buffer_length_;
|
| + int64 bytes_to_read_;
|
| + int64 bytes_read_;
|
| scoped_refptr<net::IOBuffer> preloading_buffer_;
|
| int preloading_buffer_offset_;
|
| - int buffered_bytes_;
|
| + int preloaded_bytes_;
|
|
|
| base::WeakPtrFactory<BufferingFileStreamReader> weak_ptr_factory_;
|
| DISALLOW_COPY_AND_ASSIGN(BufferingFileStreamReader);
|
|
|