MXS-2304 Use get_service() and get_server()

This commit is contained in:
Esa Korhonen
2019-01-31 16:29:31 +02:00
parent 882d360355
commit 3eb7d89c80
6 changed files with 29 additions and 32 deletions

View File

@ -164,7 +164,7 @@ RRRouter::RRRouter(SERVICE* service)
/* Read options specific to round robin router. */
MXS_CONFIG_PARAMETER* params = service->svc_config_param;
m_max_backends = params->get_integer(MAX_BACKENDS);
m_write_server = config_get_server(params, WRITE_BACKEND);
m_write_server = params->get_server(WRITE_BACKEND);
m_print_on_routing = params->get_bool(PRINT_ON_ROUTING);
m_example_enum = params->get_enum(DUMMY, enum_example);

View File

@ -288,6 +288,22 @@ public:
*/
uint64_t get_size(const std::string& key) const;
/**
* @brief Get a service value
*
* @param key Parameter name
* @return Pointer to configured service
*/
SERVICE* get_service(const std::string& key) const;
/**
* @brief Get a server value
*
* @param key Parameter name
* @return Pointer to configured server
*/
SERVER* get_server(const std::string& key) const;
char* name; /**< The name of the parameter */
char* value; /**< The value of the parameter */
MXS_CONFIG_PARAMETER* next; /**< Next pointer in the linked list */
@ -413,27 +429,8 @@ bool config_param_is_valid(const MXS_MODULE_PARAM* params,
const char* config_get_string(const MXS_CONFIG_PARAMETER* params, const char* key);
/**
* @brief Get a service value
*
* @param params List of configuration parameters
* @param key Parameter name
*
* @return Pointer to configured service
*/
SERVICE* config_get_service(const MXS_CONFIG_PARAMETER* params, const char* key);
/**
* @brief Get a server value
*
* @param params List of configuration parameters
* @param key Parameter name
*
* @return Pointer to configured server
*/
SERVER* config_get_server(const MXS_CONFIG_PARAMETER* params, const char* key);
/**
* Get a serverlist value. The returned list is empty if even a partial error occurs.
* @brief Get an array of servers. The caller should free the produced array,
* but not the array elements.
*
* @param params List of configuration parameters
* @param key Parameter name

View File

@ -1802,16 +1802,16 @@ int64_t MXS_CONFIG_PARAMETER::get_enum(const std::string& key, const MXS_ENUM_VA
return found ? rv : -1;
}
SERVICE* config_get_service(const MXS_CONFIG_PARAMETER* params, const char* key)
SERVICE* MXS_CONFIG_PARAMETER::get_service(const std::string& key) const
{
const char* value = config_get_value_string(params, key);
return service_find(value);
string param_value = get_string(key);
return service_find(param_value.c_str());
}
SERVER* config_get_server(const MXS_CONFIG_PARAMETER* params, const char* key)
SERVER* MXS_CONFIG_PARAMETER::get_server(const std::string& key) const
{
const char* value = config_get_value_string(params, key);
return Server::find_by_unique_name(value);
string param_value = get_string(key);
return Server::find_by_unique_name(param_value.c_str());
}
std::vector<SERVER*> config_get_server_list(const MXS_CONFIG_PARAMETER* params, const char* key,
@ -3911,7 +3911,7 @@ int create_new_listener(CONFIG_CONTEXT* obj)
else
{
const char* address = config_get_string(obj->parameters, CN_ADDRESS);
Service* service = static_cast<Service*>(config_get_service(obj->parameters, CN_SERVICE));
Service* service = static_cast<Service*>(obj->parameters->get_service(CN_SERVICE));
mxb_assert(service);
// Remove this once maxadmin is removed

View File

@ -64,7 +64,7 @@ Tee::Tee(SERVICE* service,
*/
Tee* Tee::create(const char* name, MXS_CONFIG_PARAMETER* params)
{
SERVICE* service = config_get_service(params, "service");
SERVICE* service = params->get_service("service");
const char* source = config_get_string(params, "source");
const char* user = config_get_string(params, "user");
uint32_t cflags = params->get_enum("options", option_values);

View File

@ -117,7 +117,7 @@ void CsMonitor::update_server_status(MXS_MONITORED_SERVER* srv)
bool CsMonitor::configure(const MXS_CONFIG_PARAMETER* pParams)
{
m_primary = config_get_server(pParams, "primary");
m_primary = pParams->get_server("primary");
return true;
}

View File

@ -24,7 +24,7 @@ Config::Config(MXS_CONFIG_PARAMETER* conf)
, debug(conf->get_bool("debug"))
, ignore_regex(config_get_compiled_regex(conf, "ignore_databases_regex", 0, NULL))
, ignore_match_data(ignore_regex ? pcre2_match_data_create_from_pattern(ignore_regex, NULL) : NULL)
, preferred_server(config_get_server(conf, "preferred_server"))
, preferred_server(conf->get_server("preferred_server"))
{
ignored_dbs.insert("mysql");
ignored_dbs.insert("information_schema");