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

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

Issue 1547093002: Switch to standard integer types in chrome/browser/chromeos/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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/buffering_file_st ream_reader.h" 5 #include "chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_st ream_reader.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
11 #include "storage/browser/fileapi/file_system_backend.h" 11 #include "storage/browser/fileapi/file_system_backend.h"
12 12
13 namespace chromeos { 13 namespace chromeos {
14 namespace file_system_provider { 14 namespace file_system_provider {
15 15
16 BufferingFileStreamReader::BufferingFileStreamReader( 16 BufferingFileStreamReader::BufferingFileStreamReader(
17 scoped_ptr<storage::FileStreamReader> file_stream_reader, 17 scoped_ptr<storage::FileStreamReader> file_stream_reader,
18 int preloading_buffer_length, 18 int preloading_buffer_length,
19 int64 max_bytes_to_read) 19 int64_t max_bytes_to_read)
20 : file_stream_reader_(file_stream_reader.Pass()), 20 : file_stream_reader_(file_stream_reader.Pass()),
21 preloading_buffer_length_(preloading_buffer_length), 21 preloading_buffer_length_(preloading_buffer_length),
22 max_bytes_to_read_(max_bytes_to_read), 22 max_bytes_to_read_(max_bytes_to_read),
23 bytes_read_(0), 23 bytes_read_(0),
24 preloading_buffer_(new net::IOBuffer(preloading_buffer_length)), 24 preloading_buffer_(new net::IOBuffer(preloading_buffer_length)),
25 preloading_buffer_offset_(0), 25 preloading_buffer_offset_(0),
26 preloaded_bytes_(0), 26 preloaded_bytes_(0),
27 weak_ptr_factory_(this) { 27 weak_ptr_factory_(this) {}
28 }
29 28
30 BufferingFileStreamReader::~BufferingFileStreamReader() { 29 BufferingFileStreamReader::~BufferingFileStreamReader() {
31 } 30 }
32 31
33 int BufferingFileStreamReader::Read(net::IOBuffer* buffer, 32 int BufferingFileStreamReader::Read(net::IOBuffer* buffer,
34 int buffer_length, 33 int buffer_length,
35 const net::CompletionCallback& callback) { 34 const net::CompletionCallback& callback) {
36 // Return as much as available in the internal buffer. It may be less than 35 // Return as much as available in the internal buffer. It may be less than
37 // |buffer_length|, what is valid. 36 // |buffer_length|, what is valid.
38 const int bytes_read = 37 const int bytes_read =
(...skipping 19 matching lines...) Expand all
58 weak_ptr_factory_.GetWeakPtr(), 57 weak_ptr_factory_.GetWeakPtr(),
59 base::Bind(&BufferingFileStreamReader::OnPreloadCompleted, 58 base::Bind(&BufferingFileStreamReader::OnPreloadCompleted,
60 weak_ptr_factory_.GetWeakPtr(), 59 weak_ptr_factory_.GetWeakPtr(),
61 make_scoped_refptr(buffer), 60 make_scoped_refptr(buffer),
62 buffer_length, 61 buffer_length,
63 callback))); 62 callback)));
64 63
65 return net::ERR_IO_PENDING; 64 return net::ERR_IO_PENDING;
66 } 65 }
67 66
68 int64 BufferingFileStreamReader::GetLength( 67 int64_t BufferingFileStreamReader::GetLength(
69 const net::Int64CompletionCallback& callback) { 68 const net::Int64CompletionCallback& callback) {
70 const int64 result = file_stream_reader_->GetLength(callback); 69 const int64_t result = file_stream_reader_->GetLength(callback);
71 DCHECK_EQ(net::ERR_IO_PENDING, result); 70 DCHECK_EQ(net::ERR_IO_PENDING, result);
72 71
73 return result; 72 return result;
74 } 73 }
75 74
76 int BufferingFileStreamReader::CopyFromPreloadingBuffer( 75 int BufferingFileStreamReader::CopyFromPreloadingBuffer(
77 scoped_refptr<net::IOBuffer> buffer, 76 scoped_refptr<net::IOBuffer> buffer,
78 int buffer_length) { 77 int buffer_length) {
79 const int read_bytes = std::min(buffer_length, preloaded_bytes_); 78 const int read_bytes = std::min(buffer_length, preloaded_bytes_);
80 79
81 memcpy(buffer->data(), 80 memcpy(buffer->data(),
82 preloading_buffer_->data() + preloading_buffer_offset_, 81 preloading_buffer_->data() + preloading_buffer_offset_,
83 read_bytes); 82 read_bytes);
84 preloading_buffer_offset_ += read_bytes; 83 preloading_buffer_offset_ += read_bytes;
85 preloaded_bytes_ -= read_bytes; 84 preloaded_bytes_ -= read_bytes;
86 85
87 return read_bytes; 86 return read_bytes;
88 } 87 }
89 88
90 void BufferingFileStreamReader::Preload( 89 void BufferingFileStreamReader::Preload(
91 const net::CompletionCallback& callback) { 90 const net::CompletionCallback& callback) {
92 const int preload_bytes = 91 const int preload_bytes =
93 std::min(static_cast<int64>(preloading_buffer_length_), 92 std::min(static_cast<int64_t>(preloading_buffer_length_),
94 max_bytes_to_read_ - bytes_read_); 93 max_bytes_to_read_ - bytes_read_);
95 94
96 const int result = file_stream_reader_->Read( 95 const int result = file_stream_reader_->Read(
97 preloading_buffer_.get(), preload_bytes, callback); 96 preloading_buffer_.get(), preload_bytes, callback);
98 DCHECK_EQ(result, net::ERR_IO_PENDING); 97 DCHECK_EQ(result, net::ERR_IO_PENDING);
99 } 98 }
100 99
101 void BufferingFileStreamReader::OnPreloadCompleted( 100 void BufferingFileStreamReader::OnPreloadCompleted(
102 scoped_refptr<net::IOBuffer> buffer, 101 scoped_refptr<net::IOBuffer> buffer,
103 int buffer_length, 102 int buffer_length,
(...skipping 27 matching lines...) Expand all
131 } 130 }
132 131
133 bytes_read_ += result; 132 bytes_read_ += result;
134 DCHECK_LE(bytes_read_, max_bytes_to_read_); 133 DCHECK_LE(bytes_read_, max_bytes_to_read_);
135 134
136 callback.Run(result); 135 callback.Run(result);
137 } 136 }
138 137
139 } // namespace file_system_provider 138 } // namespace file_system_provider
140 } // namespace chromeos 139 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698