1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef NET_QUIC_QUIC_CLIENT_SESSION_BASE_H_ 6 #define NET_QUIC_QUIC_CLIENT_SESSION_BASE_H_ 7 8 #include "net/quic/quic_crypto_client_stream.h" 9 #include "net/quic/quic_session.h" 10 11 namespace net { 12 13 // Base class for all client-specific QuicSession subclasses. 14 class NET_EXPORT_PRIVATE QuicClientSessionBase : public QuicSession { 15 public: 16 QuicClientSessionBase(QuicConnection* connection, 17 const QuicConfig& config); 18 19 virtual ~QuicClientSessionBase(); 20 21 // Called when the proof in |cached| is marked valid. If this is a secure 22 // QUIC session, then this will happen only after the proof verifier 23 // completes. If this is an insecure QUIC connection, this will happen 24 // as soon as a valid config is discovered (either from the cache or 25 // from the server). 26 virtual void OnProofValid( 27 const QuicCryptoClientConfig::CachedState& cached) = 0; 28 29 // Called when proof verification details become available, either because 30 // proof verification is complete, or when cached details are used. This 31 // will only be called for secure QUIC connections. 32 virtual void OnProofVerifyDetailsAvailable( 33 const ProofVerifyDetails& verify_details) = 0; 34 35 private: 36 DISALLOW_COPY_AND_ASSIGN(QuicClientSessionBase); 37 }; 38 39 } // namespace net 40 41 #endif // NET_QUIC_QUIC_CLIENT_SESSION_BASE_H_ 42