1
#include "source/extensions/access_loggers/stats/config.h"
2

            
3
#include "envoy/extensions/access_loggers/stats/v3/stats.pb.validate.h"
4
#include "envoy/registry/registry.h"
5

            
6
#include "source/extensions/access_loggers/stats/stats.h"
7

            
8
namespace Envoy {
9
namespace Extensions {
10
namespace AccessLoggers {
11
namespace StatsAccessLog {
12

            
13
AccessLog::InstanceSharedPtr AccessLogFactory::createAccessLogInstance(
14
    const Protobuf::Message& config, AccessLog::FilterPtr&& filter,
15
    Server::Configuration::GenericFactoryContext& context,
16
5
    std::vector<Formatter::CommandParserPtr>&& command_parsers) {
17
5
  const auto& proto_config =
18
5
      MessageUtil::downcastAndValidate<const envoy::extensions::access_loggers::stats::v3::Config&>(
19
5
          config, context.messageValidationVisitor());
20

            
21
5
  return std::make_shared<StatsAccessLog>(proto_config, context, std::move(filter),
22
5
                                          command_parsers);
23
5
}
24

            
25
8
ProtobufTypes::MessagePtr AccessLogFactory::createEmptyConfigProto() {
26
8
  return std::make_unique<envoy::extensions::access_loggers::stats::v3::Config>();
27
8
}
28

            
29
10
std::string AccessLogFactory::name() const { return "envoy.access_loggers.stats"; }
30

            
31
REGISTER_FACTORY(AccessLogFactory, AccessLog::AccessLogInstanceFactory);
32

            
33
} // namespace StatsAccessLog
34
} // namespace AccessLoggers
35
} // namespace Extensions
36
} // namespace Envoy