| Index: trunk/src/net/base/upload_file_element_reader.cc
|
| ===================================================================
|
| --- trunk/src/net/base/upload_file_element_reader.cc (revision 244981)
|
| +++ trunk/src/net/base/upload_file_element_reader.cc (working copy)
|
| @@ -247,4 +247,52 @@
|
| overriding_content_length = 0;
|
| }
|
|
|
| +UploadFileElementReaderSync::UploadFileElementReaderSync(
|
| + const base::FilePath& path,
|
| + uint64 range_offset,
|
| + uint64 range_length,
|
| + const base::Time& expected_modification_time)
|
| + : path_(path),
|
| + range_offset_(range_offset),
|
| + range_length_(range_length),
|
| + expected_modification_time_(expected_modification_time),
|
| + content_length_(0),
|
| + bytes_remaining_(0) {
|
| +}
|
| +
|
| +UploadFileElementReaderSync::~UploadFileElementReaderSync() {
|
| +}
|
| +
|
| +int UploadFileElementReaderSync::Init(const CompletionCallback& callback) {
|
| + bytes_remaining_ = 0;
|
| + content_length_ = 0;
|
| + file_stream_.reset();
|
| +
|
| + const int result = InitInternal(path_, range_offset_, range_length_,
|
| + expected_modification_time_,
|
| + &file_stream_, &content_length_);
|
| + bytes_remaining_ = GetContentLength();
|
| + return result;
|
| +}
|
| +
|
| +uint64 UploadFileElementReaderSync::GetContentLength() const {
|
| + return content_length_;
|
| +}
|
| +
|
| +uint64 UploadFileElementReaderSync::BytesRemaining() const {
|
| + return bytes_remaining_;
|
| +}
|
| +
|
| +int UploadFileElementReaderSync::Read(IOBuffer* buf,
|
| + int buf_length,
|
| + const CompletionCallback& callback) {
|
| + const int result = ReadInternal(buf, buf_length, BytesRemaining(),
|
| + file_stream_.get());
|
| + if (result > 0) {
|
| + DCHECK_GE(bytes_remaining_, static_cast<uint64>(result));
|
| + bytes_remaining_ -= result;
|
| + }
|
| + return result;
|
| +}
|
| +
|
| } // namespace net
|
|
|