1
#pragma once
2

            
3
#include "envoy/extensions/resource_monitors/cgroup_memory/v3/cgroup_memory.pb.h"
4
#include "envoy/extensions/resource_monitors/cgroup_memory/v3/cgroup_memory.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 CgroupMemory {
13

            
14
/**
15
 * Config registration for the cgroup memory resource monitor.
16
 * @see RegistryFactory.
17
 */
18
class CgroupMemoryMonitorFactory
19
    : public Common::FactoryBase<
20
          envoy::extensions::resource_monitors::cgroup_memory::v3::CgroupMemoryConfig> {
21
public:
22
4
  CgroupMemoryMonitorFactory() : FactoryBase("envoy.resource_monitors.cgroup_memory") {}
23

            
24
private:
25
  // Common::FactoryBase
26
  Server::ResourceMonitorPtr createResourceMonitorFromProtoTyped(
27
      const envoy::extensions::resource_monitors::cgroup_memory::v3::CgroupMemoryConfig& config,
28
      Server::Configuration::ResourceMonitorFactoryContext& context) override;
29
};
30

            
31
} // namespace CgroupMemory
32
} // namespace ResourceMonitors
33
} // namespace Extensions
34
} // namespace Envoy