diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-17 10:38:43 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-17 10:38:43 +0000 |
commit | ca690b0ccb3684bec0a7a5ed2406346762b57ba7 (patch) | |
tree | 13e99d0ff0396e10d9fa9301b3b1c4820f448e28 /net/spdy/spdy_buffer_producer.h | |
parent | 988117fa7cce0514c94bfb58743b5a294ab0f1a3 (diff) | |
download | chromium_src-ca690b0ccb3684bec0a7a5ed2406346762b57ba7.zip chromium_src-ca690b0ccb3684bec0a7a5ed2406346762b57ba7.tar.gz chromium_src-ca690b0ccb3684bec0a7a5ed2406346762b57ba7.tar.bz2 |
[SPDY] Replace SpdyIOBuffer with new SpdyBuffer class
Use SpdyBuffer for both SPDY reads and writes. A future
CL will add hooks to SpdyBuffer so that we keep track of
flow control windows properly.
Replace SpdyFrameProducer with SpdyBufferProducer.
Also introduce new SpdyReadQueue class for delegates
of SpdyStream to use.
BUG=176592
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=194560
Review URL: https://codereview.chromium.org/13990005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194564 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy/spdy_buffer_producer.h')
-rw-r--r-- | net/spdy/spdy_buffer_producer.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/net/spdy/spdy_buffer_producer.h b/net/spdy/spdy_buffer_producer.h new file mode 100644 index 0000000..fe82b1a --- /dev/null +++ b/net/spdy/spdy_buffer_producer.h @@ -0,0 +1,50 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef NET_SPDY_SPDY_BUFFER_PRODUCER_H_ +#define NET_SPDY_SPDY_BUFFER_PRODUCER_H_ + +#include "base/basictypes.h" +#include "base/compiler_specific.h" +#include "base/memory/scoped_ptr.h" +#include "net/base/net_export.h" + +namespace net { + +class SpdyBuffer; + +// An object which provides a SpdyBuffer for writing. We pass these +// around instead of SpdyBuffers since some buffers have to be +// generated "just in time". +class NET_EXPORT_PRIVATE SpdyBufferProducer { + public: + SpdyBufferProducer(); + + // Produces the buffer to be written. Will be called at most once. + virtual scoped_ptr<SpdyBuffer> ProduceBuffer() = 0; + + virtual ~SpdyBufferProducer(); + + private: + DISALLOW_COPY_AND_ASSIGN(SpdyBufferProducer); +}; + +// A simple wrapper around a single SpdyBuffer. +class NET_EXPORT_PRIVATE SimpleBufferProducer : public SpdyBufferProducer { + public: + explicit SimpleBufferProducer(scoped_ptr<SpdyBuffer> buffer); + + virtual ~SimpleBufferProducer(); + + virtual scoped_ptr<SpdyBuffer> ProduceBuffer() OVERRIDE; + + private: + scoped_ptr<SpdyBuffer> buffer_; + + DISALLOW_COPY_AND_ASSIGN(SimpleBufferProducer); +}; + +} // namespace net + +#endif // NET_SPDY_SPDY_BUFFER_PRODUCER_H_ |