1
#include "source/server/regex_engine.h"
2

            
3
#include "source/common/common/regex.h"
4
#include "source/common/config/utility.h"
5

            
6
namespace Envoy {
7
namespace Server {
8

            
9
Regex::EnginePtr createRegexEngine(const envoy::config::bootstrap::v3::Bootstrap& bootstrap,
10
                                   ProtobufMessage::ValidationVisitor& validation_visitor,
11
10720
                                   Configuration::ServerFactoryContext& server_factory_context) {
12
10720
  Regex::EnginePtr regex_engine;
13
10720
  if (bootstrap.has_default_regex_engine()) {
14
1
    const auto& default_regex_engine = bootstrap.default_regex_engine();
15
1
    Regex::EngineFactory& factory =
16
1
        Config::Utility::getAndCheckFactory<Regex::EngineFactory>(default_regex_engine);
17
1
    auto config = Config::Utility::translateAnyToFactoryConfig(default_regex_engine.typed_config(),
18
1
                                                               validation_visitor, factory);
19
1
    regex_engine = factory.createEngine(*config, server_factory_context);
20
10720
  } else {
21
10719
    regex_engine = std::make_shared<Regex::GoogleReEngine>();
22
10719
  }
23
10720
  return regex_engine;
24
10720
}
25

            
26
} // namespace Server
27
} // namespace Envoy