| Index: net/quic/chromium/quic_chromium_client_stream.h
|
| diff --git a/net/quic/chromium/quic_chromium_client_stream.h b/net/quic/chromium/quic_chromium_client_stream.h
|
| index e512b457b9a8126c425b76047aa182ee0871f3c5..e95d47840629d81a4c5940db3c8f7877a47ce6a0 100644
|
| --- a/net/quic/chromium/quic_chromium_client_stream.h
|
| +++ b/net/quic/chromium/quic_chromium_client_stream.h
|
| @@ -39,10 +39,6 @@ class NET_EXPORT_PRIVATE QuicChromiumClientStream : public QuicSpdyStream {
|
| public:
|
| Delegate() {}
|
|
|
| - // Called when trailing headers are available.
|
| - virtual void OnTrailingHeadersAvailable(const SpdyHeaderBlock& headers,
|
| - size_t frame_len) = 0;
|
| -
|
| // Called when the stream is closed by the peer.
|
| virtual void OnClose() = 0;
|
|
|
| @@ -82,6 +78,15 @@ class NET_EXPORT_PRIVATE QuicChromiumClientStream : public QuicSpdyStream {
|
| int buffer_len,
|
| const CompletionCallback& callback);
|
|
|
| + // Reads trailing headers into |header_block| and returns the length of
|
| + // the HEADERS frame which contained them. If headers are not available,
|
| + // returns ERR_IO_PENDING and will invoke |callback| asynchronously when
|
| + // the headers arrive.
|
| + // TODO(rch): Invoke |callback| when there is a stream or connection error
|
| + // instead of calling OnClose() or OnError().
|
| + int ReadTrailingHeaders(SpdyHeaderBlock* header_block,
|
| + const CompletionCallback& callback);
|
| +
|
| // Writes |header_block| to the peer. Closes the write side if |fin| is
|
| // true. If non-null, |ack_notifier_delegate| will be notified when the
|
| // headers are ACK'd by the peer.
|
| @@ -154,8 +159,7 @@ class NET_EXPORT_PRIVATE QuicChromiumClientStream : public QuicSpdyStream {
|
|
|
| // Methods invoked by the stream.
|
| void OnInitialHeadersAvailable();
|
| - void OnTrailingHeadersAvailable(const SpdyHeaderBlock& headers,
|
| - size_t frame_len);
|
| + void OnTrailingHeadersAvailable();
|
| void OnDataAvailable();
|
| void OnCanWrite();
|
| void OnClose();
|
| @@ -260,16 +264,16 @@ class NET_EXPORT_PRIVATE QuicChromiumClientStream : public QuicSpdyStream {
|
|
|
| bool DeliverInitialHeaders(SpdyHeaderBlock* header_block, int* frame_len);
|
|
|
| + bool DeliverTrailingHeaders(SpdyHeaderBlock* header_block, int* frame_len);
|
| +
|
| using QuicSpdyStream::HasBufferedData;
|
| using QuicStream::sequencer;
|
|
|
| private:
|
| void NotifyHandleOfInitialHeadersAvailableLater();
|
| void NotifyHandleOfInitialHeadersAvailable();
|
| - void NotifyHandleOfTrailingHeadersAvailableLater(SpdyHeaderBlock headers,
|
| - size_t frame_len);
|
| - void NotifyHandleOfTrailingHeadersAvailable(SpdyHeaderBlock headers,
|
| - size_t frame_len);
|
| + void NotifyHandleOfTrailingHeadersAvailableLater();
|
| + void NotifyHandleOfTrailingHeadersAvailable();
|
| void NotifyHandleOfDataAvailableLater();
|
| void NotifyHandleOfDataAvailable();
|
|
|
| @@ -291,6 +295,9 @@ class NET_EXPORT_PRIVATE QuicChromiumClientStream : public QuicSpdyStream {
|
| // Length of the HEADERS frame containing initial headers.
|
| size_t initial_headers_frame_len_;
|
|
|
| + // Length of the HEADERS frame containing trailing headers.
|
| + size_t trailing_headers_frame_len_;
|
| +
|
| base::WeakPtrFactory<QuicChromiumClientStream> weak_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(QuicChromiumClientStream);
|
|
|