Index: net/base/io_buffer.h |
=================================================================== |
--- net/base/io_buffer.h (revision 9532) |
+++ net/base/io_buffer.h (working copy) |
@@ -19,7 +19,7 @@ |
DCHECK(buffer_size); |
data_ = new char[buffer_size]; |
} |
- explicit IOBuffer(char* buffer) : data_(buffer) {} |
+ explicit IOBuffer(char* data) : data_(data) {} |
virtual ~IOBuffer() { |
delete[] data_; |
} |
@@ -30,6 +30,20 @@ |
char* data_; |
}; |
+// This class allows the creation of a temporary IOBuffer that doesn't really |
+// own the underlying buffer. Please use this class only as a last resort. |
+// A good example is the buffer for a synchronous operation, where we can be |
+// sure that nobody is keeping an extra reference to this object so the lifetime |
+// of the buffer can be completely managed by its intended owner. |
+class WrappedIOBuffer : public net::IOBuffer { |
+ public: |
+ explicit WrappedIOBuffer(const char* data) |
+ : net::IOBuffer(const_cast<char*>(data)) {} |
+ ~WrappedIOBuffer() { |
+ data_ = NULL; |
+ } |
+}; |
+ |
} // namespace net |
#endif // NET_BASE_IO_BUFFER_H_ |