diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-21 15:47:19 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-21 15:47:19 +0000 |
commit | 6d22a976f77187252164baa27100e472d5a924b5 (patch) | |
tree | d974359a0499559b934c3df79657ce31cdbbfbe2 /net/base/io_buffer.cc | |
parent | 6b5fed239714be750caaad431193f34ce7ea6ff4 (diff) | |
download | chromium_src-6d22a976f77187252164baa27100e472d5a924b5.zip chromium_src-6d22a976f77187252164baa27100e472d5a924b5.tar.gz chromium_src-6d22a976f77187252164baa27100e472d5a924b5.tar.bz2 |
Reduce static initializers by removing inline constructors and
destructors from classes with instance members of type
scoped_ptr_malloc<>
Also remove #include of iostream from remaining header file.
Review URL: http://codereview.chromium.org/2861065
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53190 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/io_buffer.cc')
-rw-r--r-- | net/base/io_buffer.cc | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/net/base/io_buffer.cc b/net/base/io_buffer.cc index 9ad0570..b922733 100644 --- a/net/base/io_buffer.cc +++ b/net/base/io_buffer.cc @@ -8,17 +8,81 @@ namespace net { +IOBuffer::IOBuffer() + : data_(NULL) { +} + IOBuffer::IOBuffer(int buffer_size) { DCHECK(buffer_size > 0); data_ = new char[buffer_size]; } +IOBuffer::IOBuffer(char* data) + : data_(data) { +} + +IOBuffer::~IOBuffer() { + delete[] data_; +} + +IOBufferWithSize::IOBufferWithSize(int size) + : IOBuffer(size), + size_(size) { +} + +StringIOBuffer::StringIOBuffer(const std::string& s) + : IOBuffer(static_cast<char*>(NULL)), + string_data_(s) { + data_ = const_cast<char*>(string_data_.data()); +} + +StringIOBuffer::~StringIOBuffer() { + // We haven't allocated the buffer, so remove it before the base class + // destructor tries to delete[] it. + data_ = NULL; +} + +DrainableIOBuffer::DrainableIOBuffer(IOBuffer* base, int size) + : IOBuffer(base->data()), + base_(base), + size_(size), + used_(0) { +} + +DrainableIOBuffer::~DrainableIOBuffer() { + // The buffer is owned by the |base_| instance. + data_ = NULL; +} + +void DrainableIOBuffer::DidConsume(int bytes) { + SetOffset(used_ + bytes); +} + +int DrainableIOBuffer::BytesRemaining() const { + return size_ - used_; +} + +// Returns the number of consumed bytes. +int DrainableIOBuffer::BytesConsumed() const { + return used_; +} + void DrainableIOBuffer::SetOffset(int bytes) { DCHECK(bytes >= 0 && bytes <= size_); used_ = bytes; data_ = base_->data() + used_; } +GrowableIOBuffer::GrowableIOBuffer() + : IOBuffer(), + capacity_(0), + offset_(0) { +} + +GrowableIOBuffer::~GrowableIOBuffer() { + data_ = NULL; +} + void GrowableIOBuffer::SetCapacity(int capacity) { DCHECK(capacity >= 0); // realloc will crash if it fails. @@ -36,4 +100,29 @@ void GrowableIOBuffer::set_offset(int offset) { data_ = real_data_.get() + offset; } +int GrowableIOBuffer::RemainingCapacity() { + return capacity_ - offset_; +} + +char* GrowableIOBuffer::StartOfBuffer() { + return real_data_.get(); +} + +PickledIOBuffer::PickledIOBuffer() : IOBuffer() {} + +PickledIOBuffer::~PickledIOBuffer() { data_ = NULL; } + +void PickledIOBuffer::Done() { + data_ = const_cast<char*>(static_cast<const char*>(pickle_.data())); +} + + +WrappedIOBuffer::WrappedIOBuffer(const char* data) + : IOBuffer(const_cast<char*>(data)) { +} + +WrappedIOBuffer::~WrappedIOBuffer() { + data_ = NULL; +} + } // namespace net |