1
#pragma once
2

            
3
#include "envoy/extensions/quic/server_preferred_address/v3/fixed_server_preferred_address_config.pb.h"
4
#include "envoy/extensions/quic/server_preferred_address/v3/fixed_server_preferred_address_config.pb.validate.h"
5
#include "envoy/registry/registry.h"
6

            
7
#include "source/common/quic/envoy_quic_server_preferred_address_config_factory.h"
8

            
9
namespace Envoy {
10
namespace Quic {
11

            
12
class FixedServerPreferredAddressConfigFactory
13
    : public Quic::EnvoyQuicServerPreferredAddressConfigFactory {
14
public:
15
78
  std::string name() const override { return "quic.server_preferred_address.fixed"; }
16

            
17
  Quic::EnvoyQuicServerPreferredAddressConfigPtr
18
  createServerPreferredAddressConfig(const Protobuf::Message& message,
19
                                     ProtobufMessage::ValidationVisitor& validation_visitor,
20
                                     Server::Configuration::ServerFactoryContext& context) override;
21

            
22
21
  ProtobufTypes::MessagePtr createEmptyConfigProto() override {
23
21
    return ProtobufTypes::MessagePtr{new envoy::extensions::quic::server_preferred_address::v3::
24
21
                                         FixedServerPreferredAddressConfig()};
25
21
  }
26
};
27

            
28
DECLARE_FACTORY(FixedServerPreferredAddressConfigFactory);
29

            
30
} // namespace Quic
31
} // namespace Envoy