Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Unified Diff: net/base/io_buffer.cc

Issue 9293029: net: Introduce SeekableIOBuffer and clean up HttpStreamParser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase and update comments Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/base/io_buffer.cc
diff --git a/net/base/io_buffer.cc b/net/base/io_buffer.cc
index b1c72ceb76cf6b8bc6008cc777d7524cf8a46670..004bf0e524303d1677dbe2826ca8e75953e22d44 100644
--- a/net/base/io_buffer.cc
+++ b/net/base/io_buffer.cc
@@ -83,6 +83,49 @@ DrainableIOBuffer::~DrainableIOBuffer() {
data_ = NULL;
}
+SeekableIOBuffer::SeekableIOBuffer(int size)
+ : IOBuffer(size),
+ begin_(data_),
+ capacity_(size),
+ size_(0),
+ used_(0) {
+}
+
+void SeekableIOBuffer::DidConsume(int bytes) {
+ SetOffset(used_ + bytes);
+}
+
+int SeekableIOBuffer::BytesRemaining() const {
+ return size_ - used_;
+}
+
+int SeekableIOBuffer::BytesConsumed() const {
+ return used_;
+}
+
+void SeekableIOBuffer::SetOffset(int bytes) {
+ DCHECK_GE(bytes, 0);
+ DCHECK_LE(bytes, size_);
+ used_ = bytes;
+ data_ = begin_ + used_;
+}
+
+void SeekableIOBuffer::DidAppend(int bytes) {
+ 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_ = begin_;
+}
+
GrowableIOBuffer::GrowableIOBuffer()
: IOBuffer(),
capacity_(0),

Powered by Google App Engine
This is Rietveld 408576698