1
#include "source/extensions/formatter/metadata/config.h"
2

            
3
#include "envoy/extensions/formatter/metadata/v3/metadata.pb.h"
4

            
5
#include "source/extensions/formatter/metadata/metadata.h"
6

            
7
namespace Envoy {
8
namespace Extensions {
9
namespace Formatter {
10

            
11
::Envoy::Formatter::CommandParserPtr MetadataFormatterFactory::createCommandParserFromProto(
12
2
    const Protobuf::Message&, Server::Configuration::GenericFactoryContext&) {
13
2
  ENVOY_LOG_TO_LOGGER(Logger::Registry::getLog(Logger::Id::config), warn,
14
2
                      "'METADATA' formatter is treated as a built-in formatter and does not "
15
2
                      "require configuration.");
16
2
  return std::make_unique<MetadataFormatterCommandParser>();
17
2
}
18

            
19
6
ProtobufTypes::MessagePtr MetadataFormatterFactory::createEmptyConfigProto() {
20
6
  return std::make_unique<envoy::extensions::formatter::metadata::v3::Metadata>();
21
6
}
22

            
23
11
std::string MetadataFormatterFactory::name() const { return "envoy.formatter.metadata"; }
24

            
25
REGISTER_FACTORY(MetadataFormatterFactory, ::Envoy::Formatter::CommandParserFactory);
26

            
27
class BuiltInMetadataFormatterFactory : public Envoy::Formatter::BuiltInCommandParserFactory {
28
public:
29
6
  std::string name() const override { return "envoy.built_in_formatters.metadata"; }
30

            
31
4
  ::Envoy::Formatter::CommandParserPtr createCommandParser() const override {
32
4
    return std::make_unique<MetadataFormatterCommandParser>();
33
4
  }
34
};
35

            
36
REGISTER_FACTORY(BuiltInMetadataFormatterFactory, Envoy::Formatter::BuiltInCommandParserFactory);
37

            
38
} // namespace Formatter
39
} // namespace Extensions
40
} // namespace Envoy