Home | History | Annotate | Download | only in quic
      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