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 // A QuicSession, which demuxes a single connection to individual streams. | 5 // A QuicSession, which demuxes a single connection to individual streams. |
6 | 6 |
7 #ifndef NET_QUIC_QUIC_SESSION_H_ | 7 #ifndef NET_QUIC_QUIC_SESSION_H_ |
8 #define NET_QUIC_QUIC_SESSION_H_ | 8 #define NET_QUIC_QUIC_SESSION_H_ |
9 | 9 |
10 #include <vector> | 10 #include <vector> |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 // for a stream. |fin| will be true if the fin flag was set in the headers | 89 // for a stream. |fin| will be true if the fin flag was set in the headers |
90 // frame. | 90 // frame. |
91 virtual void OnStreamHeadersComplete(QuicStreamId stream_id, | 91 virtual void OnStreamHeadersComplete(QuicStreamId stream_id, |
92 bool fin, | 92 bool fin, |
93 size_t frame_len); | 93 size_t frame_len); |
94 | 94 |
95 // Called by streams when they want to write data to the peer. | 95 // Called by streams when they want to write data to the peer. |
96 // Returns a pair with the number of bytes consumed from data, and a boolean | 96 // Returns a pair with the number of bytes consumed from data, and a boolean |
97 // indicating if the fin bit was consumed. This does not indicate the data | 97 // indicating if the fin bit was consumed. This does not indicate the data |
98 // has been sent on the wire: it may have been turned into a packet and queued | 98 // has been sent on the wire: it may have been turned into a packet and queued |
99 // if the socket was unexpectedly blocked. | 99 // if the socket was unexpectedly blocked. |fec_protection| indicates if |
| 100 // data is to be FEC protected. Note that data that is sent immediately |
| 101 // following MUST_FEC_PROTECT data may get protected by falling within the |
| 102 // same FEC group. |
100 // If provided, |ack_notifier_delegate| will be registered to be notified when | 103 // If provided, |ack_notifier_delegate| will be registered to be notified when |
101 // we have seen ACKs for all packets resulting from this call. | 104 // we have seen ACKs for all packets resulting from this call. |
102 virtual QuicConsumedData WritevData( | 105 virtual QuicConsumedData WritevData( |
103 QuicStreamId id, | 106 QuicStreamId id, |
104 const IOVector& data, | 107 const IOVector& data, |
105 QuicStreamOffset offset, | 108 QuicStreamOffset offset, |
106 bool fin, | 109 bool fin, |
| 110 FecProtection fec_protection, |
107 QuicAckNotifier::DelegateInterface* ack_notifier_delegate); | 111 QuicAckNotifier::DelegateInterface* ack_notifier_delegate); |
108 | 112 |
109 // Writes |headers| for the stream |id| to the dedicated headers stream. | 113 // Writes |headers| for the stream |id| to the dedicated headers stream. |
110 // If |fin| is true, then no more data will be sent for the stream |id|. | 114 // If |fin| is true, then no more data will be sent for the stream |id|. |
111 // If provided, |ack_notifier_delegate| will be registered to be notified when | 115 // If provided, |ack_notifier_delegate| will be registered to be notified when |
112 // we have seen ACKs for all packets resulting from this call. | 116 // we have seen ACKs for all packets resulting from this call. |
113 size_t WriteHeaders( | 117 size_t WriteHeaders( |
114 QuicStreamId id, | 118 QuicStreamId id, |
115 const SpdyHeaderBlock& headers, | 119 const SpdyHeaderBlock& headers, |
116 bool fin, | 120 bool fin, |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 | 322 |
319 // Initial flow control receive window size for new streams. | 323 // Initial flow control receive window size for new streams. |
320 uint32 max_flow_control_receive_window_bytes_; | 324 uint32 max_flow_control_receive_window_bytes_; |
321 | 325 |
322 DISALLOW_COPY_AND_ASSIGN(QuicSession); | 326 DISALLOW_COPY_AND_ASSIGN(QuicSession); |
323 }; | 327 }; |
324 | 328 |
325 } // namespace net | 329 } // namespace net |
326 | 330 |
327 #endif // NET_QUIC_QUIC_SESSION_H_ | 331 #endif // NET_QUIC_QUIC_SESSION_H_ |
OLD | NEW |