25#ifndef MYSQLROUTER_METADATA_CACHE_INCLUDED
26#define MYSQLROUTER_METADATA_CACHE_INCLUDED
41#include <rapidjson/document.h>
71 "_disconnect_existing_sessions_when_hidden"};
81 :
std::runtime_error(what_arg) {}
92 : instance_vector(instance_vector_) {}
119 const bool md_servers_reachable,
const uint64_t view_id) = 0;
222 std::chrono::milliseconds
ttl;
278 const std::string &cluster_type_specific_id,
279 const std::string &clusterset_id,
287 bool use_cluster_notifications =
false,
const uint64_t view_id = 0) = 0;
299 virtual
void cache_start() = 0;
304 virtual
void cache_stop() noexcept = 0;
324 virtual
bool wait_primary_failover(const
std::
string &primary_server_uuid,
351 virtual
void add_acceptor_handler_listener(
360 virtual
void remove_acceptor_handler_listener(
368 virtual
void add_md_refresh_listener(
377 virtual
void remove_md_refresh_listener(
391 get_rest_user_auth_data(const
std::
string &username) const = 0;
397 virtual
void enable_fetch_auth_metadata() = 0;
402 virtual
void force_cache_update() = 0;
412 virtual
void check_auth_metadata_timers() const = 0;
417 virtual
void handle_sockets_acceptors_on_md_refresh() = 0;
440 virtual std::chrono::milliseconds
ttl()
const = 0;
446 const bool use_cluster_notifications,
unsigned view_id)>;
460 const unsigned view_id);
467 const unsigned router_id,
468 const std::string &cluster_type_specific_id,
469 const std::string &clusterset_id,
476 size_t thread_stack_size,
bool use_cluster_notifications,
477 const uint64_t view_id)
override;
481 void instance_name(
const std::string &inst_name)
override;
482 std::string instance_name()
const override;
484 std::string cluster_type_specific_id()
const override;
486 std::chrono::milliseconds ttl()
const override;
489 void cache_start()
override;
491 void cache_stop() noexcept override;
495 bool wait_primary_failover(const
std::
string &primary_server_uuid,
502 void add_acceptor_handler_listener(
505 void remove_acceptor_handler_listener(
508 void add_md_refresh_listener(
511 void remove_md_refresh_listener(
514 RefreshStatus get_refresh_status() override;
517 get_rest_user_auth_data(const
std::
string &
user) const override;
519 void enable_fetch_auth_metadata() override;
520 void force_cache_update() override;
521 void check_auth_metadata_timers() const override;
523 void handle_sockets_acceptors_on_md_refresh() override;
526 instance_factory_ = std::move(cb);
537 std::atomic<bool> is_initialized_{
false};
Monitor pattern.
Definition: monitor.h:38
static constexpr int kDefaultReadTimeout
Definition: mysql_session.h:157
static constexpr int kDefaultConnectTimeout
Definition: mysql_session.h:156
Definition: cluster_metadata.h:146
Define rapidjson::SizeType to be std::size_t.
char * user
Definition: mysqladmin.cc:59
static bool timeout(bool(*wait_condition)())
Timeout function.
Definition: log0meb.cc:495
static const size_t kDefaultStackSizeInKiloBytes
Definition: mysql_router_thread.h:43
ClusterType
Definition: cluster_metadata.h:128
Definition: my_rapidjson_size_t.h:37
Definition: varlen_sort.h:183
SSL connection related options.
Definition: datatypes.h:38
double seconds()
Definition: task.cc:309