26#ifndef MYSQLROUTER_METADATA_CACHE_INCLUDED
27#define MYSQLROUTER_METADATA_CACHE_INCLUDED
38#include <rapidjson/document.h>
73 :
std::runtime_error(what_arg) {}
93 const uint64_t view_id) = 0;
260 const std::string &clusterset_id,
268 bool use_cluster_notifications =
false,
const uint64_t view_id = 0,
269 bool close_connection_after_refresh =
false) = 0;
281 virtual
void cache_start() = 0;
289 virtual
void reload_tls() = 0;
315 virtual
bool wait_primary_failover(const
std::
string &primary_server_uuid,
342 virtual
void add_acceptor_handler_listener(
351 virtual
void remove_acceptor_handler_listener(
359 virtual
void add_md_refresh_listener(
368 virtual
void remove_md_refresh_listener(
382 get_rest_user_auth_data(const
std::
string &username) const = 0;
388 virtual
void enable_fetch_auth_metadata() = 0;
393 virtual
void force_cache_update() = 0;
403 virtual
void check_auth_metadata_timers() const = 0;
408 virtual
void handle_sockets_acceptors_on_md_refresh() = 0;
416 const
std::
string &)>;
425 virtual
void add_routing_guidelines_update_callbacks(
429 virtual
void clear_routing_guidelines_update_callbacks() = 0;
438 virtual
void add_router_info_update_callback(
441 virtual
void clear_router_info_update_callback() = 0;
469 const bool use_cluster_notifications,
unsigned view_id)>;
483 const unsigned view_id);
490 const unsigned router_id,
const std::string &clusterset_id,
497 size_t thread_stack_size,
bool use_cluster_notifications,
498 const uint64_t view_id,
499 bool close_connection_after_refresh)
override;
503 void instance_name(
const std::string &inst_name)
override;
504 std::string instance_name()
const override;
510 void cache_start()
override;
512 void cache_stop()
noexcept override;
513 void reload_tls() override;
518 bool wait_primary_failover(const
std::
string &primary_server_uuid,
525 void add_acceptor_handler_listener(
528 void remove_acceptor_handler_listener(
531 void add_md_refresh_listener(
534 void remove_md_refresh_listener(
537 RefreshStatus get_refresh_status() override;
540 get_rest_user_auth_data(const
std::
string &user) const override;
542 void enable_fetch_auth_metadata() override;
543 void force_cache_update() override;
544 void check_auth_metadata_timers() const override;
546 void handle_sockets_acceptors_on_md_refresh() override;
548 void add_routing_guidelines_update_callbacks(
549 update_routing_guidelines_callback_t,
550 on_routing_guidelines_change_callback_t) override;
552 void clear_routing_guidelines_update_callbacks() override;
554 void add_router_info_update_callback(
555 update_router_info_callback_t clb) override;
557 void clear_router_info_update_callback() override;
560 instance_factory_ = std::move(
cb);
571 std::atomic<bool> is_initialized_{
false};
Monitor pattern.
Definition: monitor.h:39
static constexpr int kDefaultReadTimeout
Definition: mysql_session.h:160
static constexpr int kDefaultConnectTimeout
Definition: mysql_session.h:159
Definition: cluster_metadata.h:179
Define rapidjson::SizeType to be std::uint64_t.
static bool cb(unsigned long long new_value)
Definition: option_usage.cc:45
static bool timeout(bool(*wait_condition)())
Timeout function.
Definition: log0meb.cc:499
std::chrono::seconds seconds
Definition: authorize_manager.cc:71
std::chrono::milliseconds milliseconds
Definition: authorize_manager.cc:70
noexcept
The return type for any call_and_catch(f, args...) call where f(args...) returns Type.
Definition: call_and_catch.h:76
static const size_t kDefaultStackSizeInKiloBytes
Definition: mysql_router_thread.h:44
Definition: mrs_component_embedded_mysql_session.h:29
ClusterType
Definition: cluster_metadata.h:157
Definition: my_rapidjson_size_t.h:38
Definition: routing_guidelines_datatypes.h:31
Define std::hash<Gtid>.
Definition: gtid.h:355
SSL connection related options.
Definition: datatypes.h:34