Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: net/quic/core/quic_spdy_stream.h

Issue 2462823002: Deletes dead code. (Closed)
Patch Set: Updated patchset dependency Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/core/quic_spdy_session.cc ('k') | net/quic/core/quic_spdy_stream.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // The base class for streams which deliver data to/from an application. 5 // The base class for streams which deliver data to/from an application.
6 // In each direction, the data on such a stream first contains compressed 6 // In each direction, the data on such a stream first contains compressed
7 // headers then body data. 7 // headers then body data.
8 8
9 #ifndef NET_QUIC_QUIC_SPDY_STREAM_H_ 9 #ifndef NET_QUIC_QUIC_SPDY_STREAM_H_
10 #define NET_QUIC_QUIC_SPDY_STREAM_H_ 10 #define NET_QUIC_QUIC_SPDY_STREAM_H_
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 // when the stream has not received all the data. 71 // when the stream has not received all the data.
72 void CloseWriteSide() override; 72 void CloseWriteSide() override;
73 void StopReading() override; 73 void StopReading() override;
74 74
75 // ReliableQuicStream implementation 75 // ReliableQuicStream implementation
76 void OnClose() override; 76 void OnClose() override;
77 77
78 // Override to maybe close the write side after writing. 78 // Override to maybe close the write side after writing.
79 void OnCanWrite() override; 79 void OnCanWrite() override;
80 80
81 // Called by the session when decompressed headers data is received
82 // for this stream.
83 // May be called multiple times, with each call providing additional headers
84 // data until OnStreamHeadersComplete is called.
85 virtual void OnStreamHeaders(base::StringPiece headers_data);
86
87 // Called by the session when headers with a priority have been received 81 // Called by the session when headers with a priority have been received
88 // for this stream. This method will only be called for server streams. 82 // for this stream. This method will only be called for server streams.
89 virtual void OnStreamHeadersPriority(SpdyPriority priority); 83 virtual void OnStreamHeadersPriority(SpdyPriority priority);
90 84
91 // Called by the session when decompressed headers have been completely 85 // Called by the session when decompressed headers have been completely
92 // delivered to this stream. If |fin| is true, then this stream 86 // delivered to this stream. If |fin| is true, then this stream
93 // should be closed; no more data will be sent by the peer. 87 // should be closed; no more data will be sent by the peer.
94 virtual void OnStreamHeadersComplete(bool fin, size_t frame_len);
95
96 // Called by the session when decompressed headers have been completely
97 // delivered to this stream. If |fin| is true, then this stream
98 // should be closed; no more data will be sent by the peer.
99 virtual void OnStreamHeaderList(bool fin, 88 virtual void OnStreamHeaderList(bool fin,
100 size_t frame_len, 89 size_t frame_len,
101 const QuicHeaderList& header_list); 90 const QuicHeaderList& header_list);
102 91
103 // Called when the received headers are too large. By default this will 92 // Called when the received headers are too large. By default this will
104 // reset the stream. 93 // reset the stream.
105 virtual void OnHeadersTooLarge(); 94 virtual void OnHeadersTooLarge();
106 95
107 // Called by the session when decompressed PUSH_PROMISE headers data
108 // is received for this stream.
109 // May be called multiple times, with each call providing additional headers
110 // data until OnPromiseHeadersComplete is called.
111 virtual void OnPromiseHeaders(base::StringPiece headers_data);
112
113 // Called by the session when decompressed push promise headers have
114 // been completely delivered to this stream.
115 virtual void OnPromiseHeadersComplete(QuicStreamId promised_id,
116 size_t frame_len);
117
118 // Called by the session when decompressed push promise headers have 96 // Called by the session when decompressed push promise headers have
119 // been completely delivered to this stream. 97 // been completely delivered to this stream.
120 virtual void OnPromiseHeaderList(QuicStreamId promised_id, 98 virtual void OnPromiseHeaderList(QuicStreamId promised_id,
121 size_t frame_len, 99 size_t frame_len,
122 const QuicHeaderList& header_list); 100 const QuicHeaderList& header_list);
123 101
124 // Override the base class to not discard response when receiving 102 // Override the base class to not discard response when receiving
125 // QUIC_STREAM_NO_ERROR. 103 // QUIC_STREAM_NO_ERROR.
126 void OnStreamReset(const QuicRstStreamFrame& frame) override; 104 void OnStreamReset(const QuicRstStreamFrame& frame) override;
127 105
128 // Writes the headers contained in |header_block| to the dedicated 106 // Writes the headers contained in |header_block| to the dedicated
129 // headers stream. 107 // headers stream.
130 virtual size_t WriteHeaders(SpdyHeaderBlock header_block, 108 virtual size_t WriteHeaders(SpdyHeaderBlock header_block,
131 bool fin, 109 bool fin,
132 QuicAckListenerInterface* ack_notifier_delegate); 110 QuicAckListenerInterface* ack_notifier_delegate);
133 111
134 // Sends |data| to the peer, or buffers if it can't be sent immediately. 112 // Sends |data| to the peer, or buffers if it can't be sent immediately.
135 void WriteOrBufferBody(const std::string& data, 113 void WriteOrBufferBody(const std::string& data,
136 bool fin, 114 bool fin,
137 QuicAckListenerInterface* ack_notifier_delegate); 115 QuicAckListenerInterface* ack_notifier_delegate);
138 116
139 // Writes the trailers contained in |trailer_block| to the dedicated 117 // Writes the trailers contained in |trailer_block| to the dedicated
140 // headers stream. Trailers will always have the FIN set. 118 // headers stream. Trailers will always have the FIN set.
141 virtual size_t WriteTrailers(SpdyHeaderBlock trailer_block, 119 virtual size_t WriteTrailers(SpdyHeaderBlock trailer_block,
142 QuicAckListenerInterface* ack_notifier_delegate); 120 QuicAckListenerInterface* ack_notifier_delegate);
143 121
144 // Marks |bytes_consumed| of the headers data as consumed.
145 void MarkHeadersConsumed(size_t bytes_consumed);
146
147 // Marks |bytes_consumed| of the trailers data as consumed. This applies to
148 // the case where this object receives headers and trailers data via calls to
149 // OnStreamHeaders().
150 void MarkTrailersConsumed(size_t bytes_consumed);
151
152 // Marks the trailers as consumed. This applies to the case where this object 122 // Marks the trailers as consumed. This applies to the case where this object
153 // receives headers and trailers as QuicHeaderLists via calls to 123 // receives headers and trailers as QuicHeaderLists via calls to
154 // OnStreamHeaderList(). 124 // OnStreamHeaderList().
155 void MarkTrailersConsumed(); 125 void MarkTrailersConsumed();
156 126
157 // Clears |header_list_|. 127 // Clears |header_list_|.
158 void ConsumeHeaderList(); 128 void ConsumeHeaderList();
159 129
160 // This block of functions wraps the sequencer's functions of the same 130 // This block of functions wraps the sequencer's functions of the same
161 // name. These methods return uncompressed data until that has 131 // name. These methods return uncompressed data until that has
162 // been fully processed. Then they simply delegate to the sequencer. 132 // been fully processed. Then they simply delegate to the sequencer.
163 virtual size_t Readv(const struct iovec* iov, size_t iov_len); 133 virtual size_t Readv(const struct iovec* iov, size_t iov_len);
164 virtual int GetReadableRegions(iovec* iov, size_t iov_len) const; 134 virtual int GetReadableRegions(iovec* iov, size_t iov_len) const;
165 void MarkConsumed(size_t num_bytes); 135 void MarkConsumed(size_t num_bytes);
166 136
167 // Returns true if header contains a valid 3-digit status and parse the status 137 // Returns true if header contains a valid 3-digit status and parse the status
168 // code to |status_code|. 138 // code to |status_code|.
169 bool ParseHeaderStatusCode(const SpdyHeaderBlock& header, 139 bool ParseHeaderStatusCode(const SpdyHeaderBlock& header,
170 int* status_code) const; 140 int* status_code) const;
171 141
172 // Returns true when all data has been read from the peer, including the fin. 142 // Returns true when all data has been read from the peer, including the fin.
173 bool IsDoneReading() const; 143 bool IsDoneReading() const;
174 bool HasBytesToRead() const; 144 bool HasBytesToRead() const;
175 145
176 void set_visitor(Visitor* visitor) { visitor_ = visitor; } 146 void set_visitor(Visitor* visitor) { visitor_ = visitor; }
177 147
178 bool headers_decompressed() const { return headers_decompressed_; } 148 bool headers_decompressed() const { return headers_decompressed_; }
179 149
180 const std::string& decompressed_headers() const {
181 return decompressed_headers_;
182 }
183
184 const QuicHeaderList& header_list() const { return header_list_; } 150 const QuicHeaderList& header_list() const { return header_list_; }
185 151
186 bool trailers_decompressed() const { return trailers_decompressed_; } 152 bool trailers_decompressed() const { return trailers_decompressed_; }
187 153
188 const std::string& decompressed_trailers() const {
189 return decompressed_trailers_;
190 }
191
192 // Returns whatever trailers have been received for this stream. 154 // Returns whatever trailers have been received for this stream.
193 const SpdyHeaderBlock& received_trailers() const { 155 const SpdyHeaderBlock& received_trailers() const {
194 return received_trailers_; 156 return received_trailers_;
195 } 157 }
196 158
197 // Returns true if headers have been fully read and consumed. 159 // Returns true if headers have been fully read and consumed.
198 bool FinishedReadingHeaders() const; 160 bool FinishedReadingHeaders() const;
199 161
200 // Returns true if trailers have been fully read and consumed, or FIN has 162 // Returns true if trailers have been fully read and consumed, or FIN has
201 // been received and there are no trailers. 163 // been received and there are no trailers.
(...skipping 13 matching lines...) Expand all
215 // will be available. 177 // will be available.
216 bool IsClosed() { return sequencer()->IsClosed(); } 178 bool IsClosed() { return sequencer()->IsClosed(); }
217 179
218 void set_allow_bidirectional_data(bool value) { 180 void set_allow_bidirectional_data(bool value) {
219 allow_bidirectional_data_ = value; 181 allow_bidirectional_data_ = value;
220 } 182 }
221 183
222 bool allow_bidirectional_data() const { return allow_bidirectional_data_; } 184 bool allow_bidirectional_data() const { return allow_bidirectional_data_; }
223 185
224 protected: 186 protected:
225 // Called by OnStreamHeadersComplete depending on which type (initial or
226 // trailing) headers are expected next.
227 virtual void OnInitialHeadersComplete(bool fin, size_t frame_len);
228 virtual void OnTrailingHeadersComplete(bool fin, size_t frame_len);
229 virtual void OnInitialHeadersComplete(bool fin, 187 virtual void OnInitialHeadersComplete(bool fin,
230 size_t frame_len, 188 size_t frame_len,
231 const QuicHeaderList& header_list); 189 const QuicHeaderList& header_list);
232 virtual void OnTrailingHeadersComplete(bool fin, 190 virtual void OnTrailingHeadersComplete(bool fin,
233 size_t frame_len, 191 size_t frame_len,
234 const QuicHeaderList& header_list); 192 const QuicHeaderList& header_list);
235 QuicSpdySession* spdy_session() const { return spdy_session_; } 193 QuicSpdySession* spdy_session() const { return spdy_session_; }
236 Visitor* visitor() { return visitor_; } 194 Visitor* visitor() { return visitor_; }
237 195
238 // Redirects to the headers stream if force HOL blocking enabled, 196 // Redirects to the headers stream if force HOL blocking enabled,
(...skipping 12 matching lines...) Expand all
251 QuicSpdySession* spdy_session_; 209 QuicSpdySession* spdy_session_;
252 210
253 Visitor* visitor_; 211 Visitor* visitor_;
254 // If true, allow sending of a request to continue while the response is 212 // If true, allow sending of a request to continue while the response is
255 // arriving. 213 // arriving.
256 bool allow_bidirectional_data_; 214 bool allow_bidirectional_data_;
257 // True if the headers have been completely decompressed. 215 // True if the headers have been completely decompressed.
258 bool headers_decompressed_; 216 bool headers_decompressed_;
259 // The priority of the stream, once parsed. 217 // The priority of the stream, once parsed.
260 SpdyPriority priority_; 218 SpdyPriority priority_;
261 // Contains a copy of the decompressed headers until they are consumed 219 // Contains a copy of the decompressed header (name, value) std::pairs until
262 // via ProcessData or Readv. 220 // they
263 std::string decompressed_headers_;
264 // Contains a copy of the decompressed header (name, value) pairs until they
265 // are consumed via Readv. 221 // are consumed via Readv.
266 QuicHeaderList header_list_; 222 QuicHeaderList header_list_;
267 223
268 // True if the trailers have been completely decompressed. 224 // True if the trailers have been completely decompressed.
269 bool trailers_decompressed_; 225 bool trailers_decompressed_;
270 // True if the trailers have been consumed. 226 // True if the trailers have been consumed.
271 bool trailers_consumed_; 227 bool trailers_consumed_;
272 // Contains a copy of the decompressed trailers until they are consumed
273 // via ProcessData or Readv.
274 std::string decompressed_trailers_;
275 // The parsed trailers received from the peer. 228 // The parsed trailers received from the peer.
276 SpdyHeaderBlock received_trailers_; 229 SpdyHeaderBlock received_trailers_;
277 230
278 DISALLOW_COPY_AND_ASSIGN(QuicSpdyStream); 231 DISALLOW_COPY_AND_ASSIGN(QuicSpdyStream);
279 }; 232 };
280 233
281 } // namespace net 234 } // namespace net
282 235
283 #endif // NET_QUIC_QUIC_SPDY_STREAM_H_ 236 #endif // NET_QUIC_QUIC_SPDY_STREAM_H_
OLDNEW
« no previous file with comments | « net/quic/core/quic_spdy_session.cc ('k') | net/quic/core/quic_spdy_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698