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_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
|
||||
#define _SF_GLOBAL_H
|
||||
#ifndef _SF_CONFIGS_H
|
||||
#define _SF_CONFIGS_H
|
||||
|
||||
#include "fastcommon/common_define.h"
|
||||
#include "fastcommon/ini_file_reader.h"
|
||||
|
|
@ -22,6 +22,12 @@ typedef struct sf_net_retry_config {
|
|||
int network_retry_interval_ms;
|
||||
} 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
|
||||
extern "C" {
|
||||
#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,
|
||||
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
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue