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 |