Chromium Code Reviews| Index: net/spdy/spdy_http_stream.h |
| =================================================================== |
| --- net/spdy/spdy_http_stream.h (revision 145922) |
| +++ net/spdy/spdy_http_stream.h (working copy) |
| @@ -14,6 +14,7 @@ |
| #include "base/memory/weak_ptr.h" |
| #include "net/base/completion_callback.h" |
| #include "net/base/net_log.h" |
| +#include "net/base/upload_data.h" |
| #include "net/http/http_request_info.h" |
| #include "net/http/http_stream.h" |
| #include "net/spdy/spdy_protocol.h" |
| @@ -31,7 +32,8 @@ |
| // The SpdyHttpStream is a HTTP-specific type of stream known to a SpdySession. |
| class NET_EXPORT_PRIVATE SpdyHttpStream : public SpdyStream::Delegate, |
| - public HttpStream { |
| + public HttpStream, |
| + public ChunkCallback { |
| public: |
| SpdyHttpStream(SpdySession* spdy_session, bool direct); |
| virtual ~SpdyHttpStream(); |
| @@ -83,8 +85,10 @@ |
| virtual void OnDataReceived(const char* buffer, int bytes) OVERRIDE; |
| virtual void OnDataSent(int length) OVERRIDE; |
| virtual void OnClose(int status) OVERRIDE; |
| - virtual void set_chunk_callback(ChunkCallback* callback) OVERRIDE; |
| + // ChunkCallback implementation. |
| + virtual void OnChunkAvailable() OVERRIDE; |
| + |
| private: |
| FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionSpdy2Test, |
| FlowControlStallResume); |
| @@ -95,6 +99,13 @@ |
| FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionSpdy3Test, |
| FlowControlNegativeSendWindowSize); |
| + // Reads the data (whether chunked or not) from the request body stream and |
| + // sends the data by calling WriteStreamData on the underlying SpdyStream |
| + // (which always returns ERR_IO_PENDING). In the case of chunked uploads, if |
|
Ryan Hamilton
2012/07/11 21:08:21
I'm not sure that you need any of this comment aft
Ryan Sleevi
2012/07/11 21:13:46
Sounds good - I agree that we don't want to docume
ramant (doing other things)
2012/07/11 22:02:21
Done.
|
| + // data is not available, returns ERR_IO_PENDING, and the write will be |
| + // completed at a later time. This method always returns ERR_IO_PENDING. |
| + int SendData(); |
| + |
| // Call the user callback. |
| void DoCallback(int rv); |
| @@ -147,6 +158,9 @@ |
| // Is this spdy stream direct to the origin server (or to a proxy). |
| bool direct_; |
| + // Is the connection stalled waiting for an upload data chunk. |
| + bool waiting_for_chunk_; |
| + |
| bool send_last_chunk_; |
| DISALLOW_COPY_AND_ASSIGN(SpdyHttpStream); |