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.
5 #ifndef NET_QUIC_QUIC_CLIENT_SESSION_BASE_H_
6 #define NET_QUIC_QUIC_CLIENT_SESSION_BASE_H_
8 #include "net/quic/quic_crypto_client_stream.h"
9 #include "net/quic/quic_session.h"
13 // Base class for all client-specific QuicSession subclasses.
14 class NET_EXPORT_PRIVATE QuicClientSessionBase
: public QuicSession
{
16 QuicClientSessionBase(QuicConnection
* connection
,
17 const QuicConfig
& config
);
19 ~QuicClientSessionBase() override
;
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
26 virtual void OnProofValid(
27 const QuicCryptoClientConfig::CachedState
& cached
) = 0;
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;
35 // Override base class to set FEC policy before any data is sent by client.
36 void OnCryptoHandshakeEvent(CryptoHandshakeEvent event
) override
;
39 DISALLOW_COPY_AND_ASSIGN(QuicClientSessionBase
);
44 #endif // NET_QUIC_QUIC_CLIENT_SESSION_BASE_H_