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 |
250 } // namespace net | 298 } // namespace net |
OLD | NEW |