Chromium Code Reviews| Index: net/base/io_buffer.cc |
| diff --git a/net/base/io_buffer.cc b/net/base/io_buffer.cc |
| index b1c72ceb76cf6b8bc6008cc777d7524cf8a46670..1c6624fcc44c1696d5e02f31306c4c0f33239105 100644 |
| --- a/net/base/io_buffer.cc |
| +++ b/net/base/io_buffer.cc |
| @@ -83,6 +83,45 @@ DrainableIOBuffer::~DrainableIOBuffer() { |
| data_ = NULL; |
| } |
| +SeekableIOBuffer::SeekableIOBuffer(int capacity) |
| + : IOBuffer(capacity), |
| + real_data_(data_), |
| + capacity_(capacity), |
| + size_(0), |
| + used_(0) { |
| +} |
| + |
| +void SeekableIOBuffer::DidConsume(int bytes) { |
| + SetOffset(used_ + bytes); |
| +} |
| + |
| +int SeekableIOBuffer::BytesRemaining() const { |
| + return size_ - used_; |
| +} |
| + |
| +void SeekableIOBuffer::SetOffset(int bytes) { |
| + DCHECK_GE(bytes, 0); |
| + DCHECK_LE(bytes, size_); |
| + used_ = bytes; |
| + data_ = real_data_ + used_; |
| +} |
| + |
| +void SeekableIOBuffer::DidAppend(int bytes) { |
|
rvargas (doing something else)
2012/02/03 23:13:34
Add a dcheck for bytes > 0 (or >= )
satorux1
2012/02/03 23:46:11
Done.
|
| + DCHECK_GE(size_ + bytes, 0); |
| + DCHECK_LE(size_ + bytes, capacity_); |
| + size_ += bytes; |
| +} |
| + |
| +void SeekableIOBuffer::Clear() { |
| + size_ = 0; |
| + SetOffset(0); |
| +} |
| + |
| +SeekableIOBuffer::~SeekableIOBuffer() { |
| + // data_ will be deleted in IOBuffer::~IOBuffer(). |
| + data_ = real_data_; |
| +} |
| + |
| GrowableIOBuffer::GrowableIOBuffer() |
| : IOBuffer(), |
| capacity_(0), |