#include "quiche/quic/tools/quic_server.h"
#include <cstdint>
#include <memory>
#include <utility>
#include "quiche/quic/core/crypto/crypto_handshake.h"
#include "quiche/quic/core/crypto/quic_random.h"
#include "quiche/quic/core/io/event_loop_socket_factory.h"
#include "quiche/quic/core/io/quic_default_event_loop.h"
#include "quiche/quic/core/io/quic_event_loop.h"
#include "quiche/quic/core/quic_clock.h"
#include "quiche/quic/core/quic_crypto_stream.h"
#include "quiche/quic/core/quic_data_reader.h"
#include "quiche/quic/core/quic_default_clock.h"
#include "quiche/quic/core/quic_default_connection_helper.h"
#include "quiche/quic/core/quic_default_packet_writer.h"
#include "quiche/quic/core/quic_dispatcher.h"
#include "quiche/quic/core/quic_packet_reader.h"
#include "quiche/quic/core/quic_packets.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_logging.h"
#include "quiche/quic/tools/quic_simple_crypto_server_stream_helper.h"
#include "quiche/quic/tools/quic_simple_dispatcher.h"
#include "quiche/quic/tools/quic_simple_server_backend.h"
#include "quiche/common/simple_buffer_allocator.h"
namespace quic {
namespace {
const char kSourceAddressTokenSecret[] = …;
}
const size_t kNumSessionsToCreatePerSocketEvent = …;
QuicServer::QuicServer(std::unique_ptr<ProofSource> proof_source,
QuicSimpleServerBackend* quic_simple_server_backend)
: … { … }
QuicServer::QuicServer(std::unique_ptr<ProofSource> proof_source,
QuicSimpleServerBackend* quic_simple_server_backend,
const ParsedQuicVersionVector& supported_versions)
: … { … }
QuicServer::QuicServer(
std::unique_ptr<ProofSource> proof_source, const QuicConfig& config,
const QuicCryptoServerConfig::ConfigOptions& crypto_config_options,
const ParsedQuicVersionVector& supported_versions,
QuicSimpleServerBackend* quic_simple_server_backend,
uint8_t expected_server_connection_id_length)
: … { … }
void QuicServer::Initialize() { … }
QuicServer::~QuicServer() { … }
bool QuicServer::CreateUDPSocketAndListen(const QuicSocketAddress& address) { … }
QuicPacketWriter* QuicServer::CreateWriter(int fd) { … }
QuicDispatcher* QuicServer::CreateQuicDispatcher() { … }
std::unique_ptr<QuicEventLoop> QuicServer::CreateEventLoop() { … }
void QuicServer::HandleEventsForever() { … }
void QuicServer::WaitForEvents() { … }
void QuicServer::Shutdown() { … }
void QuicServer::OnSocketEvent(QuicEventLoop* ,
QuicUdpSocketFd fd, QuicSocketEventMask events) { … }
}