xref: /aosp_15_r20/external/cronet/net/third_party/quiche/src/quiche/quic/tools/quic_epoll_client_factory.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright (c) 2019 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 QUICHE_QUIC_TOOLS_QUIC_EPOLL_CLIENT_FACTORY_H_
6 #define QUICHE_QUIC_TOOLS_QUIC_EPOLL_CLIENT_FACTORY_H_
7 
8 #include <memory>
9 
10 #include "quiche/quic/core/io/quic_event_loop.h"
11 #include "quiche/quic/tools/quic_client_factory.h"
12 
13 namespace quic {
14 
15 // Factory creating QuicClient instances.
16 class QuicEpollClientFactory : public ClientFactoryInterface {
17  public:
18   QuicEpollClientFactory();
19 
20   std::unique_ptr<QuicSpdyClientBase> CreateClient(
21       std::string host_for_handshake, std::string host_for_lookup,
22       int address_family_for_lookup, uint16_t port,
23       ParsedQuicVersionVector versions, const QuicConfig& config,
24       std::unique_ptr<ProofVerifier> verifier,
25       std::unique_ptr<SessionCache> session_cache) override;
26 
27  private:
28   std::unique_ptr<QuicEventLoop> event_loop_;
29 };
30 
31 }  // namespace quic
32 
33 #endif  // QUICHE_QUIC_TOOLS_QUIC_EPOLL_CLIENT_FACTORY_H_
34