| 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 // the server and thus the encryption key has been updated. Therefore the | 46 // the server and thus the encryption key has been updated. Therefore the |
| 47 // connection should resend any packets that were sent under | 47 // connection should resend any packets that were sent under |
| 48 // ENCRYPTION_INITIAL. (Client only.) | 48 // ENCRYPTION_INITIAL. (Client only.) |
| 49 ENCRYPTION_REESTABLISHED, | 49 ENCRYPTION_REESTABLISHED, |
| 50 // HANDSHAKE_CONFIRMED, in a client, indicates the the server has accepted | 50 // HANDSHAKE_CONFIRMED, in a client, indicates the the server has accepted |
| 51 // our handshake. In a server it indicates that a full, valid client hello | 51 // our handshake. In a server it indicates that a full, valid client hello |
| 52 // has been received. (Client and server.) | 52 // has been received. (Client and server.) |
| 53 HANDSHAKE_CONFIRMED, | 53 HANDSHAKE_CONFIRMED, |
| 54 }; | 54 }; |
| 55 | 55 |
| 56 // Takes ownership of |connection|. |
| 56 QuicSession(QuicConnection* connection, const QuicConfig& config); | 57 QuicSession(QuicConnection* connection, const QuicConfig& config); |
| 57 | 58 |
| 58 ~QuicSession() override; | 59 ~QuicSession() override; |
| 59 | 60 |
| 60 virtual void Initialize(); | 61 virtual void Initialize(); |
| 61 | 62 |
| 62 // QuicConnectionVisitorInterface methods: | 63 // QuicConnectionVisitorInterface methods: |
| 63 void OnStreamFrame(const QuicStreamFrame& frame) override; | 64 void OnStreamFrame(const QuicStreamFrame& frame) override; |
| 64 void OnRstStream(const QuicRstStreamFrame& frame) override; | 65 void OnRstStream(const QuicRstStreamFrame& frame) override; |
| 65 void OnGoAway(const QuicGoAwayFrame& frame) override; | 66 void OnGoAway(const QuicGoAwayFrame& frame) override; |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 // Return the reserved crypto stream. | 219 // Return the reserved crypto stream. |
| 219 virtual QuicCryptoStream* GetCryptoStream() = 0; | 220 virtual QuicCryptoStream* GetCryptoStream() = 0; |
| 220 | 221 |
| 221 // Adds 'stream' to the active stream map. | 222 // Adds 'stream' to the active stream map. |
| 222 virtual void ActivateStream(ReliableQuicStream* stream); | 223 virtual void ActivateStream(ReliableQuicStream* stream); |
| 223 | 224 |
| 224 // Returns the stream ID for a new outgoing stream, and increments the | 225 // Returns the stream ID for a new outgoing stream, and increments the |
| 225 // underlying counter. | 226 // underlying counter. |
| 226 QuicStreamId GetNextOutgoingStreamId(); | 227 QuicStreamId GetNextOutgoingStreamId(); |
| 227 | 228 |
| 228 ReliableQuicStream* GetIncomingDynamicStream(QuicStreamId stream_id); | 229 // Returns existing stream with id = |stream_id|. If no such stream exists, |
| 229 | 230 // and |stream_id| is a peer-created id, then a new stream is created and |
| 230 ReliableQuicStream* GetDynamicStream(const QuicStreamId stream_id); | 231 // returned. However if |stream_id| is a locally-created id and no such stream |
| 232 // exists, the connection is closed. |
| 233 ReliableQuicStream* GetOrCreateDynamicStream(QuicStreamId stream_id); |
| 231 | 234 |
| 232 // This is called after every call other than OnConnectionClose from the | 235 // This is called after every call other than OnConnectionClose from the |
| 233 // QuicConnectionVisitor to allow post-processing once the work has been done. | 236 // QuicConnectionVisitor to allow post-processing once the work has been done. |
| 234 // In this case, it deletes streams given that it's safe to do so (no other | 237 // In this case, it deletes streams given that it's safe to do so (no other |
| 235 // operations are being done on the streams at this time) | 238 // operations are being done on the streams at this time) |
| 236 virtual void PostProcessAfterData(); | 239 virtual void PostProcessAfterData(); |
| 237 | 240 |
| 238 StreamMap& static_streams() { return static_stream_map_; } | 241 StreamMap& static_streams() { return static_stream_map_; } |
| 239 const StreamMap& static_streams() const { return static_stream_map_; } | 242 const StreamMap& static_streams() const { return static_stream_map_; } |
| 240 | 243 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 334 | 337 |
| 335 // Indicate if there is pending data for the crypto stream. | 338 // Indicate if there is pending data for the crypto stream. |
| 336 bool has_pending_handshake_; | 339 bool has_pending_handshake_; |
| 337 | 340 |
| 338 DISALLOW_COPY_AND_ASSIGN(QuicSession); | 341 DISALLOW_COPY_AND_ASSIGN(QuicSession); |
| 339 }; | 342 }; |
| 340 | 343 |
| 341 } // namespace net | 344 } // namespace net |
| 342 | 345 |
| 343 #endif // NET_QUIC_QUIC_SESSION_H_ | 346 #endif // NET_QUIC_QUIC_SESSION_H_ |
| OLD | NEW |