Revert of Revert of Add a WorkerScheduler and a WebThreadImplForWorker (patchset...
[chromium-blink-merge.git] / net / quic / quic_client_session_base.h
blobd72996c41181a82de6fdf87dfc0d60bd3520bd6f
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"
11 namespace net {
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);
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
25 // from the server).
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;
38 private:
39 DISALLOW_COPY_AND_ASSIGN(QuicClientSessionBase);
42 } // namespace net
44 #endif // NET_QUIC_QUIC_CLIENT_SESSION_BASE_H_