26#ifndef MYSQLROUTER_METADATA_CACHE_DATATYPES_INCLUDED
27#define MYSQLROUTER_METADATA_CACHE_DATATYPES_INCLUDED
34#include <system_error>
56 :
public std::true_type {};
61 class metadata_category_impl :
public std::error_category {
63 const char *
name()
const noexcept override {
return "metadata cache"; }
64 std::string message(
int ev)
const override {
69 return "no metadata server accessible";
71 return "did not successfully read metadata from any metadata server";
73 return "metadata refresh terminated";
75 return "cluster not found in the metadata";
77 return "unexpected cluster type";
79 return "highier view_id seen";
86 static metadata_category_impl instance;
104 const std::string &p_mysql_server_uuid,
106 const std::string &p_host,
const uint16_t p_port,
107 const uint16_t p_xport);
166 bool md_discrepancy{
false};
168 bool has_quorum{
true};
171 bool is_primary{
true};
173 bool is_invalidated{
false};
175 bool empty() const noexcept {
return members.empty(); }
177 void clear() noexcept { members.clear(); }
200 std::optional<metadata_cache::metadata_server_t> writable_server{};
205 for (
const auto &cluster : clusters_data) {
207 cluster.members.end());
214 for (
auto &cluster : clusters_data) {
215 cluster.members.clear();
Defines an IP address with port number
Definition: tcp_address.h:40
InstanceType
Definition: cluster_metadata.h:199
ServerMode
Definition: datatypes.h:50
Definition: gcs_xcom_synode.h:64
mode
Definition: file_handle.h:61
struct result result
Definition: result.h:34
required uint64 port
Definition: replication_asynchronous_connection_failover.proto:33
case opt name
Definition: sslopt-case.h:29
Definition: datatypes.h:45