/proc/self/cwd/source/server/regex_engine.cc
Line | Count | Source |
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 | 11.4k | Configuration::ServerFactoryContext& server_factory_context) { |
12 | 11.4k | Regex::EnginePtr regex_engine; |
13 | 11.4k | if (bootstrap.has_default_regex_engine()) { |
14 | 174 | const auto& default_regex_engine = bootstrap.default_regex_engine(); |
15 | 174 | Regex::EngineFactory& factory = |
16 | 174 | Config::Utility::getAndCheckFactory<Regex::EngineFactory>(default_regex_engine); |
17 | 174 | auto config = Config::Utility::translateAnyToFactoryConfig(default_regex_engine.typed_config(), |
18 | 174 | validation_visitor, factory); |
19 | 174 | regex_engine = factory.createEngine(*config, server_factory_context); |
20 | 11.2k | } else { |
21 | 11.2k | regex_engine = std::make_shared<Regex::GoogleReEngine>(); |
22 | 11.2k | } |
23 | 11.4k | Regex::EngineSingleton::clear(); |
24 | 11.4k | Regex::EngineSingleton::initialize(regex_engine.get()); |
25 | | |
26 | 11.4k | return regex_engine; |
27 | 11.4k | } |
28 | | |
29 | | } // namespace Server |
30 | | } // namespace Envoy |