1 /*
2  * Copyright (c) Facebook, Inc. and its affiliates.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  *
7  */
8 
9 #pragma once
10 
11 #include <memory>
12 
13 namespace quic {
14 
15 class ClientHandshake;
16 struct QuicClientConnectionState;
17 
18 class ClientHandshakeFactory {
19  public:
20   virtual ~ClientHandshakeFactory() = default;
21 
22   /**
23    * Construct a new client handshake.
24    */
25   virtual std::unique_ptr<ClientHandshake> makeClientHandshake(
26       QuicClientConnectionState* conn) && = 0;
27 };
28 
29 } // namespace quic
30