OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "net/base/upload_file_element_reader.h" | 5 #include "net/base/upload_file_element_reader.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/task_runner_util.h" | 10 #include "base/task_runner_util.h" |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 UploadFileElementReader::ScopedOverridingContentLengthForTests:: | 240 UploadFileElementReader::ScopedOverridingContentLengthForTests:: |
241 ScopedOverridingContentLengthForTests(uint64 value) { | 241 ScopedOverridingContentLengthForTests(uint64 value) { |
242 overriding_content_length = value; | 242 overriding_content_length = value; |
243 } | 243 } |
244 | 244 |
245 UploadFileElementReader::ScopedOverridingContentLengthForTests:: | 245 UploadFileElementReader::ScopedOverridingContentLengthForTests:: |
246 ~ScopedOverridingContentLengthForTests() { | 246 ~ScopedOverridingContentLengthForTests() { |
247 overriding_content_length = 0; | 247 overriding_content_length = 0; |
248 } | 248 } |
249 | 249 |
250 UploadFileElementReaderSync::UploadFileElementReaderSync( | |
251 const base::FilePath& path, | |
252 uint64 range_offset, | |
253 uint64 range_length, | |
254 const base::Time& expected_modification_time) | |
255 : path_(path), | |
256 range_offset_(range_offset), | |
257 range_length_(range_length), | |
258 expected_modification_time_(expected_modification_time), | |
259 content_length_(0), | |
260 bytes_remaining_(0) { | |
261 } | |
262 | |
263 UploadFileElementReaderSync::~UploadFileElementReaderSync() { | |
264 } | |
265 | |
266 int UploadFileElementReaderSync::Init(const CompletionCallback& callback) { | |
267 bytes_remaining_ = 0; | |
268 content_length_ = 0; | |
269 file_stream_.reset(); | |
270 | |
271 const int result = InitInternal(path_, range_offset_, range_length_, | |
272 expected_modification_time_, | |
273 &file_stream_, &content_length_); | |
274 bytes_remaining_ = GetContentLength(); | |
275 return result; | |
276 } | |
277 | |
278 uint64 UploadFileElementReaderSync::GetContentLength() const { | |
279 return content_length_; | |
280 } | |
281 | |
282 uint64 UploadFileElementReaderSync::BytesRemaining() const { | |
283 return bytes_remaining_; | |
284 } | |
285 | |
286 int UploadFileElementReaderSync::Read(IOBuffer* buf, | |
287 int buf_length, | |
288 const CompletionCallback& callback) { | |
289 const int result = ReadInternal(buf, buf_length, BytesRemaining(), | |
290 file_stream_.get()); | |
291 if (result > 0) { | |
292 DCHECK_GE(bytes_remaining_, static_cast<uint64>(result)); | |
293 bytes_remaining_ -= result; | |
294 } | |
295 return result; | |
296 } | |
297 | |
298 } // namespace net | 250 } // namespace net |
OLD | NEW |