blob: 60adecab10838b62be52d1be1a78870802f9d4ca [file] [log] [blame]
dschinazi22e23c72019-12-17 17:16:15 -08001// Copyright 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#include "net/third_party/quiche/src/quic/masque/masque_epoll_server.h"
6#include "net/third_party/quiche/src/quic/core/quic_epoll_alarm_factory.h"
7#include "net/third_party/quiche/src/quic/masque/masque_dispatcher.h"
8#include "net/third_party/quiche/src/quic/masque/masque_utils.h"
9#include "net/third_party/quiche/src/quic/platform/api/quic_default_proof_providers.h"
10#include "net/third_party/quiche/src/quic/tools/quic_simple_crypto_server_stream_helper.h"
11
12namespace quic {
13
14MasqueEpollServer::MasqueEpollServer(MasqueServerBackend* masque_server_backend)
15 : QuicServer(CreateDefaultProofSource(),
16 masque_server_backend,
17 MasqueSupportedVersions()),
18 masque_server_backend_(masque_server_backend) {}
19
20QuicDispatcher* MasqueEpollServer::CreateQuicDispatcher() {
21 QuicEpollAlarmFactory alarm_factory(epoll_server());
22 return new MasqueDispatcher(
23 &config(), &crypto_config(), version_manager(),
24 std::make_unique<QuicEpollConnectionHelper>(epoll_server(),
25 QuicAllocator::BUFFER_POOL),
26 std::make_unique<QuicSimpleCryptoServerStreamHelper>(),
27 std::make_unique<QuicEpollAlarmFactory>(epoll_server()),
28 masque_server_backend_, expected_server_connection_id_length());
29}
30
31} // namespace quic