summaryrefslogtreecommitdiffstats
path: root/net/flip/flip_io_buffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/flip/flip_io_buffer.h')
-rw-r--r--net/flip/flip_io_buffer.h20
1 files changed, 9 insertions, 11 deletions
diff --git a/net/flip/flip_io_buffer.h b/net/flip/flip_io_buffer.h
index ce3d6367..85d9510 100644
--- a/net/flip/flip_io_buffer.h
+++ b/net/flip/flip_io_buffer.h
@@ -23,20 +23,19 @@ class FlipIOBuffer {
// |priority| is the priority of this buffer. Lower numbers are higher
// priority.
// |stream| is a pointer to the stream which is managing this buffer.
- FlipIOBuffer(IOBufferWithSize* buffer, int priority, FlipStream* stream)
- : buffer_(buffer),
- priority_(priority),
- position_(++order_),
- stream_(stream) {
- }
- FlipIOBuffer() : priority_(0), position_(0), stream_(NULL) {}
+ FlipIOBuffer(IOBufferWithSize* buffer, int priority, FlipStream* stream);
+ FlipIOBuffer();
+ ~FlipIOBuffer();
// Accessors.
IOBuffer* buffer() const { return buffer_; }
size_t size() const { return buffer_->size(); }
- void release() { buffer_ = NULL; }
+ void release() {
+ buffer_.release();
+ stream_.release();
+ }
int priority() const { return priority_; }
- FlipStream* stream() const { return stream_; }
+ const scoped_refptr<FlipStream>& stream() const { return stream_; }
// Comparison operator to support sorting.
bool operator<(const FlipIOBuffer& other) const {
@@ -49,11 +48,10 @@ class FlipIOBuffer {
scoped_refptr<IOBufferWithSize> buffer_;
int priority_;
uint64 position_;
- FlipStream* stream_;
+ scoped_refptr<FlipStream> stream_;
static uint64 order_; // Maintains a FIFO order for equal priorities.
};
} // namespace net
#endif // NET_FLIP_FLIP_IO_BUFFER_H_
-