24#ifndef ROUTER_SRC_ROUTING_GUIDELINES_SRC_ROUTING_SIMULATOR_H_
25#define ROUTER_SRC_ROUTING_GUIDELINES_SRC_ROUTING_SIMULATOR_H_
30#include <unordered_map>
32#ifdef RAPIDJSON_NO_SIZETYPEDEFINE
36#include <rapidjson/document.h>
37#include <rapidjson/error/en.h>
55 const rapidjson::Document &d, std::string_view expected_name);
57 const rapidjson::Document &d, std::string_view expected_name);
59 std::string_view expected_name);
61 std::unique_ptr<Routing_guidelines_engine>
rpd_;
74 std::unordered_map<int, Session_info>
sources_;
std::unordered_map< std::string, net::ip::address > ResolveCache
Map with preprocessed resolved hostnames.
Definition: routing_guidelines.h:186
Definition: routing_simulator.h:44
std::unordered_map< std::string, Server_info > destinations_
Definition: routing_simulator.h:72
std::string last_destination_
Definition: routing_simulator.h:73
std::unordered_map< int, Session_info > sources_
Definition: routing_simulator.h:74
Session_info session_
Definition: routing_simulator.h:67
Routing_guidelines_engine::ResolveCache * external_cache_
Definition: routing_simulator.h:65
stdx::expected< void, std::string > parse_source(const rapidjson::Document &d, std::string_view expected_name)
Definition: routing_simulator.cc:222
stdx::expected< void, std::string > parse_sql(const rapidjson::Document &d, std::string_view expected_name)
Definition: routing_simulator.cc:287
Server_info server_
Definition: routing_simulator.h:69
int64_t last_source_
Definition: routing_simulator.h:75
Routing_simulator(rpn::Context *external_context=nullptr, Routing_guidelines_engine::ResolveCache *external_cache=nullptr)
Definition: routing_simulator.cc:35
std::unique_ptr< Routing_guidelines_engine > rpd_
Definition: routing_simulator.h:61
stdx::expected< void, std::string > parse_destination(const rapidjson::Document &d, std::string_view expected_name)
Definition: routing_simulator.cc:133
rpn::Context * external_context_
Definition: routing_simulator.h:64
stdx::expected< void, std::string > parse_router(const rapidjson::Document &d)
Definition: routing_simulator.cc:101
Sql_info sql_
Definition: routing_simulator.h:68
Router_info router_
Definition: routing_simulator.h:66
stdx::expected< void, std::string > process_document(const std::string &s)
Definition: routing_simulator.cc:40
Definition: expected.h:286
Define rapidjson::SizeType to be std::uint64_t.
Definition: routing_guidelines_datatypes.h:30
Information about this Router instance.
Definition: routing_guidelines.h:57
Information about one server destination.
Definition: routing_guidelines.h:78
Information about incoming session.
Definition: routing_guidelines.h:101
Information about query details.
Definition: routing_guidelines.h:115