26#ifndef ROUTER_SRC_ROUTING_GUIDELINES_SRC_ROUTING_SIMULATOR_H_
27#define ROUTER_SRC_ROUTING_GUIDELINES_SRC_ROUTING_SIMULATOR_H_
32#include <unordered_map>
34#ifdef RAPIDJSON_NO_SIZETYPEDEFINE
38#include <rapidjson/document.h>
39#include <rapidjson/error/en.h>
57 const rapidjson::Document &d, std::string_view expected_name);
59 const rapidjson::Document &d, std::string_view expected_name);
61 std::string_view expected_name);
63 std::unique_ptr<Routing_guidelines_engine>
rpd_;
76 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:188
Definition: routing_simulator.h:46
std::unordered_map< std::string, Server_info > destinations_
Definition: routing_simulator.h:74
std::string last_destination_
Definition: routing_simulator.h:75
std::unordered_map< int, Session_info > sources_
Definition: routing_simulator.h:76
Session_info session_
Definition: routing_simulator.h:69
Routing_guidelines_engine::ResolveCache * external_cache_
Definition: routing_simulator.h:67
stdx::expected< void, std::string > parse_source(const rapidjson::Document &d, std::string_view expected_name)
Definition: routing_simulator.cc:224
stdx::expected< void, std::string > parse_sql(const rapidjson::Document &d, std::string_view expected_name)
Definition: routing_simulator.cc:289
Server_info server_
Definition: routing_simulator.h:71
int64_t last_source_
Definition: routing_simulator.h:77
Routing_simulator(rpn::Context *external_context=nullptr, Routing_guidelines_engine::ResolveCache *external_cache=nullptr)
Definition: routing_simulator.cc:37
std::unique_ptr< Routing_guidelines_engine > rpd_
Definition: routing_simulator.h:63
stdx::expected< void, std::string > parse_destination(const rapidjson::Document &d, std::string_view expected_name)
Definition: routing_simulator.cc:135
rpn::Context * external_context_
Definition: routing_simulator.h:66
stdx::expected< void, std::string > parse_router(const rapidjson::Document &d)
Definition: routing_simulator.cc:103
Sql_info sql_
Definition: routing_simulator.h:70
Router_info router_
Definition: routing_simulator.h:68
stdx::expected< void, std::string > process_document(const std::string &s)
Definition: routing_simulator.cc:42
Definition: expected.h:286
Define rapidjson::SizeType to be std::uint64_t.
Definition: routing_guidelines_datatypes.h:31
Information about this Router instance.
Definition: routing_guidelines.h:59
Information about one server destination.
Definition: routing_guidelines.h:80
Information about incoming session.
Definition: routing_guidelines.h:103
Information about query details.
Definition: routing_guidelines.h:117