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

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: update some comment 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..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),

Powered by Google App Engine
This is Rietveld 408576698