MySQL 9.2.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
routing_guidelines::Routing_guidelines_document_parser Class Reference

Public Types

enum class  Match_role_type { Destination , Route }
 

Public Member Functions

Routing_guidelines_engine operator() (const std::string &document)
 
void validate_rule (const rapidjson::Value &rule)
 
void validate_route (const rapidjson::Value &route)
 

Private Types

using Deleter = std::unique_ptr< std::vector< std::string >, void(*)(std::vector< std::string > *)>
 

Private Member Functions

Deleter push_scope (const std::string &s)
 
Deleter push_scope (int n)
 
void add_error (const std::string &msg)
 
bool is_string_value (const rapidjson::Value &elem)
 
bool is_object_value (const rapidjson::Value &elem)
 
bool is_bool_value (const rapidjson::Value &elem)
 
bool is_array_value (const rapidjson::Value &elem)
 
std::optional< rpn::Expressionparse_matching_rule (const std::string &match_str, Match_role_type match_role_type)
 
std::pair< std::optional< std::string >, std::optional< rpn::Expression > > parse_rule (const rapidjson::Value &rule)
 
void parse_rules (const rapidjson::Value &elem, std::vector< std::string > *names, std::vector< rpn::Expression > *rules)
 
void parse_routes (const rapidjson::Value &elem)
 
void parse_route (const rapidjson::Value &elem)
 
std::vector< Routing_guidelines_engine::Route::DestinationGroupparse_route_destinations (const rapidjson::Value &elem)
 

Static Private Member Functions

static void pop_scope (std::vector< std::string > *scope)
 

Private Attributes

Routing_guidelines_engine routing_guidelines_
 
Routing_guidelines_engine::Rpdrpd_ {*routing_guidelines_.rpd_}
 
Rules_parser parser_
 
rpn::Context context_
 
std::vector< std::string > errors_
 
std::vector< std::string > json_scope_
 

Member Typedef Documentation

◆ Deleter

using routing_guidelines::Routing_guidelines_document_parser::Deleter = std::unique_ptr<std::vector<std::string>, void (*)(std::vector<std::string> *)>
private

Member Enumeration Documentation

◆ Match_role_type

Enumerator
Destination 
Route 

Member Function Documentation

◆ add_error()

void routing_guidelines::Routing_guidelines_document_parser::add_error ( const std::string &  msg)
inlineprivate

◆ is_array_value()

bool routing_guidelines::Routing_guidelines_document_parser::is_array_value ( const rapidjson::Value &  elem)
inlineprivate

◆ is_bool_value()

bool routing_guidelines::Routing_guidelines_document_parser::is_bool_value ( const rapidjson::Value &  elem)
inlineprivate

◆ is_object_value()

bool routing_guidelines::Routing_guidelines_document_parser::is_object_value ( const rapidjson::Value &  elem)
inlineprivate

◆ is_string_value()

bool routing_guidelines::Routing_guidelines_document_parser::is_string_value ( const rapidjson::Value &  elem)
inlineprivate

◆ operator()()

Routing_guidelines_engine routing_guidelines::Routing_guidelines_document_parser::operator() ( const std::string &  document)
inline

◆ parse_matching_rule()

std::optional< rpn::Expression > routing_guidelines::Routing_guidelines_document_parser::parse_matching_rule ( const std::string &  match_str,
Match_role_type  match_role_type 
)
inlineprivate

◆ parse_route()

void routing_guidelines::Routing_guidelines_document_parser::parse_route ( const rapidjson::Value &  elem)
inlineprivate

◆ parse_route_destinations()

std::vector< Routing_guidelines_engine::Route::DestinationGroup > routing_guidelines::Routing_guidelines_document_parser::parse_route_destinations ( const rapidjson::Value &  elem)
inlineprivate

◆ parse_routes()

void routing_guidelines::Routing_guidelines_document_parser::parse_routes ( const rapidjson::Value &  elem)
inlineprivate

◆ parse_rule()

std::pair< std::optional< std::string >, std::optional< rpn::Expression > > routing_guidelines::Routing_guidelines_document_parser::parse_rule ( const rapidjson::Value &  rule)
inlineprivate

◆ parse_rules()

void routing_guidelines::Routing_guidelines_document_parser::parse_rules ( const rapidjson::Value &  elem,
std::vector< std::string > *  names,
std::vector< rpn::Expression > *  rules 
)
inlineprivate

◆ pop_scope()

static void routing_guidelines::Routing_guidelines_document_parser::pop_scope ( std::vector< std::string > *  scope)
inlinestaticprivate

◆ push_scope() [1/2]

Deleter routing_guidelines::Routing_guidelines_document_parser::push_scope ( const std::string &  s)
inlineprivate

◆ push_scope() [2/2]

Deleter routing_guidelines::Routing_guidelines_document_parser::push_scope ( int  n)
inlineprivate

◆ validate_route()

void routing_guidelines::Routing_guidelines_document_parser::validate_route ( const rapidjson::Value &  route)
inline

◆ validate_rule()

void routing_guidelines::Routing_guidelines_document_parser::validate_rule ( const rapidjson::Value &  rule)
inline

Member Data Documentation

◆ context_

rpn::Context routing_guidelines::Routing_guidelines_document_parser::context_
private

◆ errors_

std::vector<std::string> routing_guidelines::Routing_guidelines_document_parser::errors_
private

◆ json_scope_

std::vector<std::string> routing_guidelines::Routing_guidelines_document_parser::json_scope_
private

◆ parser_

Rules_parser routing_guidelines::Routing_guidelines_document_parser::parser_
private

◆ routing_guidelines_

Routing_guidelines_engine routing_guidelines::Routing_guidelines_document_parser::routing_guidelines_
private

◆ rpd_

Routing_guidelines_engine::Rpd& routing_guidelines::Routing_guidelines_document_parser::rpd_ {*routing_guidelines_.rpd_}
private

The documentation for this class was generated from the following file: