| 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 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 } | 255 } |
| 256 | 256 |
| 257 private: | 257 private: |
| 258 friend class test::QuicSessionPeer; | 258 friend class test::QuicSessionPeer; |
| 259 friend class VisitorShim; | 259 friend class VisitorShim; |
| 260 | 260 |
| 261 // Performs the work required to close |stream_id|. If |locally_reset| | 261 // Performs the work required to close |stream_id|. If |locally_reset| |
| 262 // then the stream has been reset by this endpoint, not by the peer. | 262 // then the stream has been reset by this endpoint, not by the peer. |
| 263 void CloseStreamInner(QuicStreamId stream_id, bool locally_reset); | 263 void CloseStreamInner(QuicStreamId stream_id, bool locally_reset); |
| 264 | 264 |
| 265 // When a stream is closed locally, it may not yet know how many bytes the |
| 266 // peer sent on that stream. |
| 267 // When this data arrives (via stream frame w. FIN, or RST) this method |
| 268 // is called, and correctly updates the connection level flow controller. |
| 269 void UpdateFlowControlOnFinalReceivedByteOffset( |
| 270 QuicStreamId id, QuicStreamOffset final_byte_offset); |
| 271 |
| 272 // Keep track of highest received byte offset of locally closed streams, while |
| 273 // waiting for a definitive final highest offset from the peer. |
| 274 std::map<QuicStreamId, QuicStreamOffset> |
| 275 locally_closed_streams_highest_offset_; |
| 276 |
| 265 scoped_ptr<QuicConnection> connection_; | 277 scoped_ptr<QuicConnection> connection_; |
| 266 | 278 |
| 267 scoped_ptr<QuicHeadersStream> headers_stream_; | 279 scoped_ptr<QuicHeadersStream> headers_stream_; |
| 268 | 280 |
| 269 // A shim to stand between the connection and the session, to handle stream | 281 // A shim to stand between the connection and the session, to handle stream |
| 270 // deletions. | 282 // deletions. |
| 271 scoped_ptr<VisitorShim> visitor_shim_; | 283 scoped_ptr<VisitorShim> visitor_shim_; |
| 272 | 284 |
| 273 std::vector<QuicDataStream*> closed_streams_; | 285 std::vector<QuicDataStream*> closed_streams_; |
| 274 | 286 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 306 | 318 |
| 307 // Initial flow control receive window size for new streams. | 319 // Initial flow control receive window size for new streams. |
| 308 uint32 max_flow_control_receive_window_bytes_; | 320 uint32 max_flow_control_receive_window_bytes_; |
| 309 | 321 |
| 310 DISALLOW_COPY_AND_ASSIGN(QuicSession); | 322 DISALLOW_COPY_AND_ASSIGN(QuicSession); |
| 311 }; | 323 }; |
| 312 | 324 |
| 313 } // namespace net | 325 } // namespace net |
| 314 | 326 |
| 315 #endif // NET_QUIC_QUIC_SESSION_H_ | 327 #endif // NET_QUIC_QUIC_SESSION_H_ |
| OLD | NEW |