OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_QUIC_QUIC_HEADERS_STREAM_H_ | 5 #ifndef NET_QUIC_QUIC_HEADERS_STREAM_H_ |
6 #define NET_QUIC_QUIC_HEADERS_STREAM_H_ | 6 #define NET_QUIC_QUIC_HEADERS_STREAM_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "net/base/net_export.h" | 12 #include "net/base/net_export.h" |
| 13 #include "net/quic/quic_header_list.h" |
13 #include "net/quic/quic_protocol.h" | 14 #include "net/quic/quic_protocol.h" |
14 #include "net/quic/reliable_quic_stream.h" | 15 #include "net/quic/reliable_quic_stream.h" |
15 #include "net/spdy/spdy_framer.h" | 16 #include "net/spdy/spdy_framer.h" |
16 | 17 |
17 namespace net { | 18 namespace net { |
18 | 19 |
19 class QuicSpdySession; | 20 class QuicSpdySession; |
20 | 21 |
21 // Headers in QUIC are sent as HTTP/2 HEADERS or PUSH_PROMISE frames | 22 // Headers in QUIC are sent as HTTP/2 HEADERS or PUSH_PROMISE frames |
22 // over a reserved reliable stream with the id 3. Each endpoint | 23 // over a reserved reliable stream with the id 3. Each endpoint |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 // Called when a chunk of header data is available. This is called | 74 // Called when a chunk of header data is available. This is called |
74 // after OnHeaders. | 75 // after OnHeaders. |
75 // |stream_id| The stream receiving the header data. | 76 // |stream_id| The stream receiving the header data. |
76 // |header_data| A buffer containing the header data chunk received. | 77 // |header_data| A buffer containing the header data chunk received. |
77 // |len| The length of the header data buffer. A length of zero indicates | 78 // |len| The length of the header data buffer. A length of zero indicates |
78 // that the header data block has been completely sent. | 79 // that the header data block has been completely sent. |
79 void OnControlFrameHeaderData(SpdyStreamId stream_id, | 80 void OnControlFrameHeaderData(SpdyStreamId stream_id, |
80 const char* header_data, | 81 const char* header_data, |
81 size_t len); | 82 size_t len); |
82 | 83 |
| 84 // Called when the complete list of headers is available. |
| 85 void OnHeaderList(const QuicHeaderList& header_list); |
| 86 |
83 // Called when the size of the compressed frame payload is available. | 87 // Called when the size of the compressed frame payload is available. |
84 void OnCompressedFrameSize(size_t frame_len); | 88 void OnCompressedFrameSize(size_t frame_len); |
85 | 89 |
86 // Returns true if the session is still connected. | 90 // Returns true if the session is still connected. |
87 bool IsConnected(); | 91 bool IsConnected(); |
88 | 92 |
89 QuicSpdySession* spdy_session_; | 93 QuicSpdySession* spdy_session_; |
90 | 94 |
91 // Data about the stream whose headers are being processed. | 95 // Data about the stream whose headers are being processed. |
92 QuicStreamId stream_id_; | 96 QuicStreamId stream_id_; |
(...skipping 10 matching lines...) Expand all Loading... |
103 // |cur_max_timestamp_| tracks the most recent arrival time of | 107 // |cur_max_timestamp_| tracks the most recent arrival time of |
104 // frames for current (at the headers stream level) processed | 108 // frames for current (at the headers stream level) processed |
105 // stream's headers, and |prev_max_timestamp_| tracks the most | 109 // stream's headers, and |prev_max_timestamp_| tracks the most |
106 // recent arrival time of lower numbered streams. | 110 // recent arrival time of lower numbered streams. |
107 QuicTime cur_max_timestamp_; | 111 QuicTime cur_max_timestamp_; |
108 QuicTime prev_max_timestamp_; | 112 QuicTime prev_max_timestamp_; |
109 | 113 |
110 SpdyFramer spdy_framer_; | 114 SpdyFramer spdy_framer_; |
111 scoped_ptr<SpdyFramerVisitor> spdy_framer_visitor_; | 115 scoped_ptr<SpdyFramerVisitor> spdy_framer_visitor_; |
112 | 116 |
| 117 // Either empty, or contains the complete list of headers. |
| 118 QuicHeaderList header_list_; |
| 119 |
113 DISALLOW_COPY_AND_ASSIGN(QuicHeadersStream); | 120 DISALLOW_COPY_AND_ASSIGN(QuicHeadersStream); |
114 }; | 121 }; |
115 | 122 |
116 } // namespace net | 123 } // namespace net |
117 | 124 |
118 #endif // NET_QUIC_QUIC_HEADERS_STREAM_H_ | 125 #endif // NET_QUIC_QUIC_HEADERS_STREAM_H_ |
OLD | NEW |