Coverage Report

Created: 2023-11-12 09:30

/proc/self/cwd/source/server/listener_manager_factory.h
Line
Count
Source
1
#pragma once
2
3
#include "envoy/config/typed_config.h"
4
#include "envoy/server/instance.h"
5
#include "envoy/server/listener_manager.h"
6
#include "envoy/server/worker.h"
7
8
#include "source/common/quic/quic_stat_names.h"
9
10
namespace Envoy {
11
namespace Server {
12
13
class ListenerManagerFactory : public Config::TypedFactory {
14
public:
15
  virtual std::unique_ptr<ListenerManager>
16
  createListenerManager(Instance& server, std::unique_ptr<ListenerComponentFactory>&& factory,
17
                        WorkerFactory& worker_factory, bool enable_dispatcher_stats,
18
                        Quic::QuicStatNames& quic_stat_names) PURE;
19
20
52
  std::string category() const override { return "envoy.listener_manager_impl"; }
21
};
22
23
class ConnectionHandler : public Network::TcpConnectionHandler,
24
                          public Network::UdpConnectionHandler,
25
                          public Network::InternalListenerManager {};
26
27
class ConnectionHandlerFactory : public Config::UntypedFactory {
28
public:
29
  virtual std::unique_ptr<ConnectionHandler>
30
  createConnectionHandler(Event::Dispatcher& dispatcher,
31
                          absl::optional<uint32_t> worker_index) PURE;
32
  virtual std::unique_ptr<ConnectionHandler>
33
  createConnectionHandler(Event::Dispatcher& dispatcher, absl::optional<uint32_t> worker_index,
34
                          OverloadManager& overload_manager) PURE;
35
36
72
  std::string category() const override { return "envoy.connection_handler"; }
37
};
38
39
} // namespace Server
40
} // namespace Envoy