add func sf_load_read_rule_config
parent
ae72705785
commit
b02dae19be
|
|
@ -78,3 +78,24 @@ void sf_net_retry_config_to_string(SFNetRetryConfig *net_retry_cfg,
|
||||||
net_retry_cfg->network_retry_times,
|
net_retry_cfg->network_retry_times,
|
||||||
net_retry_cfg->network_retry_interval_ms);
|
net_retry_cfg->network_retry_interval_ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sf_load_read_rule_config(SFDataReadRule *rule, IniFullContext *ini_ctx)
|
||||||
|
{
|
||||||
|
char *read_rule;
|
||||||
|
read_rule = iniGetStrValue(ini_ctx->section_name,
|
||||||
|
"read_rule", ini_ctx->context);
|
||||||
|
if (read_rule == NULL || *read_rule == '\0') {
|
||||||
|
*rule = sf_data_read_rule_any_available;
|
||||||
|
} else if (strncasecmp(read_rule, "any", 3)) {
|
||||||
|
*rule = sf_data_read_rule_any_available;
|
||||||
|
} else if (strncasecmp(read_rule, "slave", 5)) {
|
||||||
|
*rule = sf_data_read_rule_slave_first;
|
||||||
|
} else if (strncasecmp(read_rule, "master", 6)) {
|
||||||
|
*rule = sf_data_read_rule_master_only;
|
||||||
|
} else {
|
||||||
|
logError("file: "__FILE__", line: %d, "
|
||||||
|
"config file: %s, unkown read_rule: %s, set to any",
|
||||||
|
__LINE__, ini_ctx->filename, read_rule);
|
||||||
|
*rule = sf_data_read_rule_any_available;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
//sf_global.h
|
//sf_configs.h
|
||||||
|
|
||||||
#ifndef _SF_GLOBAL_H
|
#ifndef _SF_CONFIGS_H
|
||||||
#define _SF_GLOBAL_H
|
#define _SF_CONFIGS_H
|
||||||
|
|
||||||
#include "fastcommon/common_define.h"
|
#include "fastcommon/common_define.h"
|
||||||
#include "fastcommon/ini_file_reader.h"
|
#include "fastcommon/ini_file_reader.h"
|
||||||
|
|
@ -22,6 +22,12 @@ typedef struct sf_net_retry_config {
|
||||||
int network_retry_interval_ms;
|
int network_retry_interval_ms;
|
||||||
} SFNetRetryConfig;
|
} SFNetRetryConfig;
|
||||||
|
|
||||||
|
typedef enum sf_data_read_rule {
|
||||||
|
sf_data_read_rule_any_available,
|
||||||
|
sf_data_read_rule_slave_first,
|
||||||
|
sf_data_read_rule_master_only,
|
||||||
|
} SFDataReadRule;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -32,6 +38,23 @@ int sf_load_net_retry_config(SFNetRetryConfig *net_retry_cfg,
|
||||||
void sf_net_retry_config_to_string(SFNetRetryConfig *net_retry_cfg,
|
void sf_net_retry_config_to_string(SFNetRetryConfig *net_retry_cfg,
|
||||||
char *output, const int size);
|
char *output, const int size);
|
||||||
|
|
||||||
|
void sf_load_read_rule_config(SFDataReadRule *rule, IniFullContext *ini_ctx);
|
||||||
|
|
||||||
|
static inline const char *sf_get_read_rule_caption(
|
||||||
|
const SFDataReadRule read_rule)
|
||||||
|
{
|
||||||
|
switch (read_rule) {
|
||||||
|
case sf_data_read_rule_any_available:
|
||||||
|
return "any available";
|
||||||
|
case sf_data_read_rule_slave_first:
|
||||||
|
return "slave first";
|
||||||
|
case sf_data_read_rule_master_only:
|
||||||
|
return "master only";
|
||||||
|
default:
|
||||||
|
return "unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue