OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 client/server reliable streams. | 5 // The base class for client/server reliable streams. |
6 | 6 |
7 // It does not contain the entire interface needed by an application to interact | 7 // It does not contain the entire interface needed by an application to interact |
8 // with a QUIC stream. Some parts of the interface must be obtained by | 8 // with a QUIC stream. Some parts of the interface must be obtained by |
9 // accessing the owning session object. A subclass of ReliableQuicStream | 9 // accessing the owning session object. A subclass of ReliableQuicStream |
10 // connects the object and the application that generates and consumes the data | 10 // connects the object and the application that generates and consumes the data |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 // Sends as many bytes in the first |count| buffers of |iov| to the connection | 184 // Sends as many bytes in the first |count| buffers of |iov| to the connection |
185 // as the connection will consume. | 185 // as the connection will consume. |
186 // If |ack_listener| is provided, then it will be notified once all | 186 // If |ack_listener| is provided, then it will be notified once all |
187 // the ACKs for this write have been received. | 187 // the ACKs for this write have been received. |
188 // Returns the number of bytes consumed by the connection. | 188 // Returns the number of bytes consumed by the connection. |
189 QuicConsumedData WritevData(const struct iovec* iov, | 189 QuicConsumedData WritevData(const struct iovec* iov, |
190 int iov_count, | 190 int iov_count, |
191 bool fin, | 191 bool fin, |
192 QuicAckListenerInterface* ack_listener); | 192 QuicAckListenerInterface* ack_listener); |
193 | 193 |
| 194 // Allows override of the session level writev, for the force HOL |
| 195 // blocking experiment. |
| 196 virtual QuicConsumedData WritevDataInner( |
| 197 QuicIOVector iov, |
| 198 QuicStreamOffset offset, |
| 199 bool fin, |
| 200 QuicAckListenerInterface* ack_notifier_delegate); |
| 201 |
194 // Close the write side of the socket. Further writes will fail. | 202 // Close the write side of the socket. Further writes will fail. |
195 // Can be called by the subclass or internally. | 203 // Can be called by the subclass or internally. |
196 // Does not send a FIN. May cause the stream to be closed. | 204 // Does not send a FIN. May cause the stream to be closed. |
197 virtual void CloseWriteSide(); | 205 virtual void CloseWriteSide(); |
198 | 206 |
199 bool fin_buffered() const { return fin_buffered_; } | 207 bool fin_buffered() const { return fin_buffered_; } |
200 | 208 |
201 const QuicSession* session() const { return session_; } | 209 const QuicSession* session() const { return session_; } |
202 QuicSession* session() { return session_; } | 210 QuicSession* session() { return session_; } |
203 | 211 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 // connection level flow control limits (but are stream level flow control | 303 // connection level flow control limits (but are stream level flow control |
296 // limited). | 304 // limited). |
297 bool stream_contributes_to_connection_flow_control_; | 305 bool stream_contributes_to_connection_flow_control_; |
298 | 306 |
299 DISALLOW_COPY_AND_ASSIGN(ReliableQuicStream); | 307 DISALLOW_COPY_AND_ASSIGN(ReliableQuicStream); |
300 }; | 308 }; |
301 | 309 |
302 } // namespace net | 310 } // namespace net |
303 | 311 |
304 #endif // NET_QUIC_RELIABLE_QUIC_STREAM_H_ | 312 #endif // NET_QUIC_RELIABLE_QUIC_STREAM_H_ |
OLD | NEW |