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;
 
  286  virtual 
void cache_stop() noexcept = 0;
 
  312  virtual 
bool wait_primary_failover(const 
std::
string &primary_server_uuid,
 
  339  virtual 
void add_acceptor_handler_listener(
 
  348  virtual 
void remove_acceptor_handler_listener(
 
  356  virtual 
void add_md_refresh_listener(
 
  365  virtual 
void remove_md_refresh_listener(
 
  379  get_rest_user_auth_data(const 
std::
string &username) const = 0;
 
  385  virtual 
void enable_fetch_auth_metadata() = 0;
 
  390  virtual 
void force_cache_update() = 0;
 
  400  virtual 
void check_auth_metadata_timers() const = 0;
 
  405  virtual 
void handle_sockets_acceptors_on_md_refresh() = 0;
 
  413          const 
std::
string &)>;
 
  422  virtual 
void add_routing_guidelines_update_callbacks(
 
  426  virtual 
void clear_routing_guidelines_update_callbacks() = 0;
 
  435  virtual 
void add_router_info_update_callback(
 
  438  virtual 
void clear_router_info_update_callback() = 0;
 
  466      const bool use_cluster_notifications, 
unsigned view_id)>;
 
  480    const unsigned view_id);
 
  487                  const unsigned router_id, 
const std::string &clusterset_id,
 
  494                  size_t thread_stack_size, 
bool use_cluster_notifications,
 
  495                  const uint64_t view_id,
 
  496                  bool close_connection_after_refresh) 
override;
 
  500  void instance_name(
const std::string &inst_name) 
override;
 
  501  std::string instance_name() 
const override;
 
  507  void cache_start() 
override;
 
  509  void cache_stop() noexcept override;
 
  514  bool wait_primary_failover(const 
std::
string &primary_server_uuid,
 
  521  void add_acceptor_handler_listener(
 
  524  void remove_acceptor_handler_listener(
 
  527  void add_md_refresh_listener(
 
  530  void remove_md_refresh_listener(
 
  533  RefreshStatus get_refresh_status() override;
 
  536  get_rest_user_auth_data(const 
std::
string &user) const override;
 
  538  void enable_fetch_auth_metadata() override;
 
  539  void force_cache_update() override;
 
  540  void check_auth_metadata_timers() const override;
 
  542  void handle_sockets_acceptors_on_md_refresh() override;
 
  544  void add_routing_guidelines_update_callbacks(
 
  545      update_routing_guidelines_callback_t,
 
  546      on_routing_guidelines_change_callback_t) override;
 
  548  void clear_routing_guidelines_update_callbacks() override;
 
  550  void add_router_info_update_callback(
 
  551      update_router_info_callback_t clb) override;
 
  553  void clear_router_info_update_callback() override;
 
  556    instance_factory_ = std::move(
cb);
 
  567  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:176
 
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:498
 
std::chrono::seconds seconds
Definition: authorize_manager.cc:68
 
std::chrono::milliseconds milliseconds
Definition: authorize_manager.cc:67
 
static const size_t kDefaultStackSizeInKiloBytes
Definition: mysql_router_thread.h:44
 
ClusterType
Definition: cluster_metadata.h:154
 
Definition: my_rapidjson_size_t.h:38
 
Definition: routing_guidelines_datatypes.h:31
 
Definition: gcs_xcom_synode.h:64
 
SSL connection related options.
Definition: datatypes.h:34