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 <map> | 10 #include <map> |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 | 61 |
62 // QuicConnectionVisitorInterface methods: | 62 // QuicConnectionVisitorInterface methods: |
63 void OnStreamFrames(const std::vector<QuicStreamFrame>& frames) override; | 63 void OnStreamFrames(const std::vector<QuicStreamFrame>& frames) override; |
64 void OnRstStream(const QuicRstStreamFrame& frame) override; | 64 void OnRstStream(const QuicRstStreamFrame& frame) override; |
65 void OnGoAway(const QuicGoAwayFrame& frame) override; | 65 void OnGoAway(const QuicGoAwayFrame& frame) override; |
66 void OnWindowUpdateFrames( | 66 void OnWindowUpdateFrames( |
67 const std::vector<QuicWindowUpdateFrame>& frames) override; | 67 const std::vector<QuicWindowUpdateFrame>& frames) override; |
68 void OnBlockedFrames(const std::vector<QuicBlockedFrame>& frames) override; | 68 void OnBlockedFrames(const std::vector<QuicBlockedFrame>& frames) override; |
69 void OnConnectionClosed(QuicErrorCode error, bool from_peer) override; | 69 void OnConnectionClosed(QuicErrorCode error, bool from_peer) override; |
70 void OnWriteBlocked() override {} | 70 void OnWriteBlocked() override {} |
71 void OnSuccessfulVersionNegotiation(const QuicVersion& version) override; | 71 void OnSuccessfulVersionNegotiation(const QuicVersion& version) override {} |
72 void OnCanWrite() override; | 72 void OnCanWrite() override; |
73 void OnCongestionWindowChange(QuicTime now) override {} | 73 void OnCongestionWindowChange(QuicTime now) override {} |
74 bool WillingAndAbleToWrite() const override; | 74 bool WillingAndAbleToWrite() const override; |
75 bool HasPendingHandshake() const override; | 75 bool HasPendingHandshake() const override; |
76 bool HasOpenDataStreams() const override; | 76 bool HasOpenDataStreams() const override; |
77 | 77 |
78 // Called by the headers stream when headers have been received for a stream. | 78 // Called by the headers stream when headers have been received for a stream. |
79 virtual void OnStreamHeaders(QuicStreamId stream_id, | 79 virtual void OnStreamHeaders(QuicStreamId stream_id, |
80 base::StringPiece headers_data); | 80 base::StringPiece headers_data); |
81 // Called by the headers stream when headers with a priority have been | 81 // Called by the headers stream when headers with a priority have been |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 base::hash_set<QuicStreamId> implicitly_created_streams_; | 315 base::hash_set<QuicStreamId> implicitly_created_streams_; |
316 | 316 |
317 // A list of streams which need to write more data. | 317 // A list of streams which need to write more data. |
318 QuicWriteBlockedList write_blocked_streams_; | 318 QuicWriteBlockedList write_blocked_streams_; |
319 | 319 |
320 QuicStreamId largest_peer_created_stream_id_; | 320 QuicStreamId largest_peer_created_stream_id_; |
321 | 321 |
322 // The latched error with which the connection was closed. | 322 // The latched error with which the connection was closed. |
323 QuicErrorCode error_; | 323 QuicErrorCode error_; |
324 | 324 |
| 325 // Used for session level flow control. |
| 326 scoped_ptr<QuicFlowController> flow_controller_; |
| 327 |
325 // Whether a GoAway has been received. | 328 // Whether a GoAway has been received. |
326 bool goaway_received_; | 329 bool goaway_received_; |
327 // Whether a GoAway has been sent. | 330 // Whether a GoAway has been sent. |
328 bool goaway_sent_; | 331 bool goaway_sent_; |
329 | 332 |
330 // Indicate if there is pending data for the crypto stream. | 333 // Indicate if there is pending data for the crypto stream. |
331 bool has_pending_handshake_; | 334 bool has_pending_handshake_; |
332 | 335 |
333 // Used for session level flow control. | |
334 scoped_ptr<QuicFlowController> flow_controller_; | |
335 | |
336 // True if this is a secure (HTTPS) QUIC session. | |
337 bool is_secure_; | |
338 | |
339 DISALLOW_COPY_AND_ASSIGN(QuicSession); | 336 DISALLOW_COPY_AND_ASSIGN(QuicSession); |
340 }; | 337 }; |
341 | 338 |
342 } // namespace net | 339 } // namespace net |
343 | 340 |
344 #endif // NET_QUIC_QUIC_SESSION_H_ | 341 #endif // NET_QUIC_QUIC_SESSION_H_ |
OLD | NEW |