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