1
#pragma once
2

            
3
#include "envoy/config/core/v3/protocol.pb.h"
4
#include "envoy/http/codec.h"
5
#include "envoy/network/connection.h"
6

            
7
#include "source/common/http/http3/codec_stats.h"
8

            
9
namespace Envoy {
10
class QuicHttpServerConnectionFactory : public Config::UntypedFactory {
11
public:
12
  virtual std::unique_ptr<Http::ServerConnection> createQuicHttpServerConnectionImpl(
13
      Network::Connection& connection, Http::ServerConnectionCallbacks& callbacks,
14
      Http::Http3::CodecStats& stats,
15
      const envoy::config::core::v3::Http3ProtocolOptions& http3_options,
16
      const uint32_t max_request_headers_kb, const uint32_t max_request_headers_count,
17
      envoy::config::core::v3::HttpProtocolOptions::HeadersWithUnderscoresAction
18
          headers_with_underscores_action,
19
      Server::OverloadManager& overload_manager) PURE;
20

            
21
1022
  std::string category() const override { return "quic.http_server_connection"; }
22
};
23
} // namespace Envoy