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 client specific QuicSession subclass. This class owns the underlying | 5 // A client specific QuicSession subclass. This class owns the underlying |
6 // QuicConnection and QuicConnectionHelper objects. The connection stores | 6 // QuicConnection and QuicConnectionHelper objects. The connection stores |
7 // a non-owning pointer to the helper so this session needs to ensure that | 7 // a non-owning pointer to the helper so this session needs to ensure that |
8 // the helper outlives the connection. | 8 // the helper outlives the connection. |
9 | 9 |
10 #ifndef NET_QUIC_QUIC_CHROMIUM_CLIENT_SESSION_H_ | 10 #ifndef NET_QUIC_QUIC_CHROMIUM_CLIENT_SESSION_H_ |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 class NET_EXPORT_PRIVATE QuicChromiumClientSession | 61 class NET_EXPORT_PRIVATE QuicChromiumClientSession |
62 : public QuicClientSessionBase, | 62 : public QuicClientSessionBase, |
63 public QuicChromiumPacketReader::Visitor, | 63 public QuicChromiumPacketReader::Visitor, |
64 public QuicChromiumPacketWriter::Delegate { | 64 public QuicChromiumPacketWriter::Delegate { |
65 public: | 65 public: |
66 // An interface for observing events on a session. | 66 // An interface for observing events on a session. |
67 class NET_EXPORT_PRIVATE Observer { | 67 class NET_EXPORT_PRIVATE Observer { |
68 public: | 68 public: |
69 virtual ~Observer() {} | 69 virtual ~Observer() {} |
70 virtual void OnCryptoHandshakeConfirmed() = 0; | 70 virtual void OnCryptoHandshakeConfirmed() = 0; |
| 71 virtual void OnSuccessfulVersionNegotiation(const QuicVersion& version) = 0; |
71 virtual void OnSessionClosed(int error, bool port_migration_detected) = 0; | 72 virtual void OnSessionClosed(int error, bool port_migration_detected) = 0; |
72 }; | 73 }; |
73 | 74 |
74 // A helper class used to manage a request to create a stream. | 75 // A helper class used to manage a request to create a stream. |
75 class NET_EXPORT_PRIVATE StreamRequest { | 76 class NET_EXPORT_PRIVATE StreamRequest { |
76 public: | 77 public: |
77 StreamRequest(); | 78 StreamRequest(); |
78 ~StreamRequest(); | 79 ~StreamRequest(); |
79 | 80 |
80 // Starts a request to create a stream. If OK is returned, then | 81 // Starts a request to create a stream. If OK is returned, then |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 void DeletePromised(QuicClientPromisedInfo* promised) override; | 305 void DeletePromised(QuicClientPromisedInfo* promised) override; |
305 | 306 |
306 void OnPushStreamTimedOut(QuicStreamId stream_id) override; | 307 void OnPushStreamTimedOut(QuicStreamId stream_id) override; |
307 | 308 |
308 // Cancels the push if the push stream for |url| has not been claimed and is | 309 // Cancels the push if the push stream for |url| has not been claimed and is |
309 // still active. Otherwise, no-op. | 310 // still active. Otherwise, no-op. |
310 void CancelPush(const GURL& url); | 311 void CancelPush(const GURL& url); |
311 | 312 |
312 const LoadTimingInfo::ConnectTiming& GetConnectTiming(); | 313 const LoadTimingInfo::ConnectTiming& GetConnectTiming(); |
313 | 314 |
| 315 QuicVersion GetQuicVersion() const; |
| 316 |
314 protected: | 317 protected: |
315 // QuicSession methods: | 318 // QuicSession methods: |
316 bool ShouldCreateIncomingDynamicStream(QuicStreamId id) override; | 319 bool ShouldCreateIncomingDynamicStream(QuicStreamId id) override; |
317 bool ShouldCreateOutgoingDynamicStream() override; | 320 bool ShouldCreateOutgoingDynamicStream() override; |
318 | 321 |
319 QuicChromiumClientStream* CreateIncomingDynamicStream( | 322 QuicChromiumClientStream* CreateIncomingDynamicStream( |
320 QuicStreamId id) override; | 323 QuicStreamId id) override; |
321 | 324 |
322 private: | 325 private: |
323 friend class test::QuicChromiumClientSessionPeer; | 326 friend class test::QuicChromiumClientSessionPeer; |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 // the current sockets_.size() == the passed in value. | 402 // the current sockets_.size() == the passed in value. |
400 bool migration_pending_; // True while migration is underway. | 403 bool migration_pending_; // True while migration is underway. |
401 base::WeakPtrFactory<QuicChromiumClientSession> weak_factory_; | 404 base::WeakPtrFactory<QuicChromiumClientSession> weak_factory_; |
402 | 405 |
403 DISALLOW_COPY_AND_ASSIGN(QuicChromiumClientSession); | 406 DISALLOW_COPY_AND_ASSIGN(QuicChromiumClientSession); |
404 }; | 407 }; |
405 | 408 |
406 } // namespace net | 409 } // namespace net |
407 | 410 |
408 #endif // NET_QUIC_QUIC_CHROMIUM_CLIENT_SESSION_H_ | 411 #endif // NET_QUIC_QUIC_CHROMIUM_CLIENT_SESSION_H_ |
OLD | NEW |