MySQL 9.1.0
Source Code Documentation
|
Respresents the current Router configuration. More...
#include <dynamic_config.h>
Classes | |
struct | SectionConfig |
Public Types | |
enum class | ValueType { ConfiguredValue , DefaultForCluster , DefaultForClusterSet } |
Type of the options stored in the dynamic configuration object. More... | |
using | OptionName = std::string |
using | OptionValue = std::variant< std::monostate, int64_t, bool, double, std::string > |
using | SectionId = std::pair< std::string, std::string > |
using | SectionOptions = std::map< OptionName, OptionValue > |
using | JsonAllocator = rapidjson::CrtAllocator |
using | JsonDocument = rapidjson::GenericDocument< rapidjson::UTF8<>, JsonAllocator > |
Public Member Functions | |
void | set_option_configured (const SectionId §ion_id, std::string_view option_name, const OptionValue &value) |
Sets a given option in a given section to a specific value. More... | |
void | set_option_default (const SectionId §ion_id, std::string_view option_name, const OptionValue &default_value_cluster, const OptionValue &default_value_clusterset) |
Sets a default for an option in a given section to a specific value. More... | |
void | set_option_default (const SectionId §ion_id, std::string_view option_name, const OptionValue &default_value) |
Sets a default for an option in a given section to a specific value. More... | |
JsonDocument | get_json (const ValueType value_type) const |
Return the current configuration options and their values stored in the dynamic configuration object. More... | |
std::string | get_json_as_string (const ValueType value_type) const |
Return the current configuration options and their values stored in the dynamic configuration object as a string. More... | |
void | clear () |
Clear the DynamicConfig object (remove all registered sections with their option values and defaults). More... | |
Static Public Member Functions | |
static DynamicConfig & | instance () |
Returns a singleton object of DynamicConfig class. More... | |
Private Types | |
using | Config = std::map< SectionId, SectionConfig > |
Private Member Functions | |
DynamicConfig ()=default | |
DynamicConfig (const DynamicConfig &)=delete | |
DynamicConfig & | operator= (const DynamicConfig &)=delete |
void | set_option (const ValueType value_type, const SectionId §ion_id, std::string_view option_name, const OptionValue &value) |
Config & | get_config (const ValueType value_type) |
Config const & | get_config (const ValueType value_type) const |
Private Attributes | |
Config | configured_ |
Config | defaults_cluster_ |
Config | defaults_clusterset_ |
Respresents the current Router configuration.
It is initialized at start with the defaults and configuration from the configuration file(s).
|
private |
using mysql_harness::DynamicConfig::JsonAllocator = rapidjson::CrtAllocator |
using mysql_harness::DynamicConfig::JsonDocument = rapidjson::GenericDocument<rapidjson::UTF8<>, JsonAllocator> |
using mysql_harness::DynamicConfig::OptionName = std::string |
using mysql_harness::DynamicConfig::OptionValue = std::variant<std::monostate, int64_t, bool, double, std::string> |
using mysql_harness::DynamicConfig::SectionId = std::pair<std::string, std::string> |
using mysql_harness::DynamicConfig::SectionOptions = std::map<OptionName, OptionValue> |
|
strong |
|
privatedefault |
|
privatedelete |
void mysql_harness::DynamicConfig::clear | ( | ) |
Clear the DynamicConfig object (remove all registered sections with their option values and defaults).
|
private |
|
private |
JsonDocument mysql_harness::DynamicConfig::get_json | ( | const ValueType | value_type | ) | const |
Return the current configuration options and their values stored in the dynamic configuration object.
value_type | type of the options to be returned |
std::string mysql_harness::DynamicConfig::get_json_as_string | ( | const ValueType | value_type | ) | const |
Return the current configuration options and their values stored in the dynamic configuration object as a string.
value_type | type of the options to be returned |
|
static |
Returns a singleton object of DynamicConfig class.
|
privatedelete |
|
private |
void mysql_harness::DynamicConfig::set_option_configured | ( | const SectionId & | section_id, |
std::string_view | option_name, | ||
const OptionValue & | value | ||
) |
Sets a given option in a given section to a specific value.
section_id | identifier of a section for this operation |
option_name | name of the option inside a section for this operation |
value | value to be set |
void mysql_harness::DynamicConfig::set_option_default | ( | const SectionId & | section_id, |
std::string_view | option_name, | ||
const OptionValue & | default_value | ||
) |
Sets a default for an option in a given section to a specific value.
Overload for more common case when cluster and clusterset values are the same.
section_id | identifier of a section for this operation |
option_name | name of the option inside a section for this operation |
default_value | default value for both srtandalne cluster and clusterset setup to be set |
void mysql_harness::DynamicConfig::set_option_default | ( | const SectionId & | section_id, |
std::string_view | option_name, | ||
const OptionValue & | default_value_cluster, | ||
const OptionValue & | default_value_clusterset | ||
) |
Sets a default for an option in a given section to a specific value.
section_id | identifier of a section for this operation |
option_name | name of the option inside a section for this operation |
default_value_cluster | default value for srtandalne cluster setup to be set |
default_value_clusterset | default value for the clusterset setup to be set |
|
private |
|
private |
|
private |