1
#pragma once
2

            
3
#include "envoy/extensions/resource_monitors/downstream_connections/v3/downstream_connections.pb.h"
4
#include "envoy/extensions/resource_monitors/downstream_connections/v3/downstream_connections.pb.validate.h"
5
#include "envoy/server/resource_monitor_config.h"
6

            
7
#include "source/extensions/resource_monitors/common/factory_base.h"
8

            
9
namespace Envoy {
10
namespace Extensions {
11
namespace ResourceMonitors {
12
namespace DownstreamConnections {
13

            
14
class ActiveDownstreamConnectionsMonitorFactory
15
    : public Common::ProactiveFactoryBase<
16
          envoy::extensions::resource_monitors::downstream_connections::v3::
17
              DownstreamConnectionsConfig> {
18
public:
19
  ActiveDownstreamConnectionsMonitorFactory()
20
5
      : ProactiveFactoryBase("envoy.resource_monitors.global_downstream_max_connections") {}
21

            
22
private:
23
  Server::ProactiveResourceMonitorPtr createProactiveResourceMonitorFromProtoTyped(
24
      const envoy::extensions::resource_monitors::downstream_connections::v3::
25
          DownstreamConnectionsConfig& config,
26
      Server::Configuration::ResourceMonitorFactoryContext& context) override;
27
};
28

            
29
} // namespace DownstreamConnections
30
} // namespace ResourceMonitors
31
} // namespace Extensions
32
} // namespace Envoy