本文整理汇总了C++中config_setting_get_member函数的典型用法代码示例。如果您正苦于以下问题:C++ config_setting_get_member函数的具体用法?C++ config_setting_get_member怎么用?C++ config_setting_get_member使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了config_setting_get_member函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: assert
static config_setting_t *interface_group_for(const char *ifname) {
assert(config_setting_is_list(app_config));
config_setting_t *default_if_conf = NULL;
for (int i = 0; i < config_setting_length(app_config); i++) {
config_setting_t *cur = config_setting_get_elem(app_config, i);
config_setting_t *cur_ifname = config_setting_get_member(cur, "interface");
if (cur_ifname != NULL) {
const char *cur_ifname_str = config_setting_get_string(cur_ifname);
assert(cur_ifname_str != NULL);
if (strcmp(cur_ifname_str, ifname) == 0) return cur;
}
config_setting_t *cur_is_default = config_setting_get_member(cur, "default");
if (
default_if_conf == NULL &&
cur_is_default != NULL &&
config_setting_get_bool(cur_is_default)
) {
default_if_conf = cur;
}
}
return default_if_conf;
}
开发者ID:eatnumber1,项目名称:macspoof,代码行数:25,代码来源:macspoof.c
示例2: read_interval_setting
/*! \brief read interval setting from local config */
static int read_interval_setting(config_setting_t * setting_interval, int32_t * out_min, int32_t * out_max)
{
config_setting_t * setting_min = config_setting_get_member(setting_interval, "min");
config_setting_t * setting_max = config_setting_get_member(setting_interval, "max");
if (setting_min == NULL || setting_max == NULL)
{
message(LOG_ERROR, FACILITY_CONFIG, "In interval is missing one of theses keys: min or max\n");
return CONFIG_FALSE;
}
if ((config_setting_type(setting_min) != CONFIG_TYPE_INT)
|| (config_setting_type(setting_max) != CONFIG_TYPE_INT))
{
message(LOG_ERROR, FACILITY_CONFIG, "In interval has one of these keys: min or max wrong type, is should be int.\n");
return CONFIG_FALSE;
}
*out_min = config_setting_get_int(setting_min);
*out_max = config_setting_get_int(setting_max);
if (*out_min > *out_max)
{
message(LOG_ERROR, FACILITY_CONFIG, "Limits of interval are invalid. (max=%d min=%d)\n", *out_min, *out_max);
return CONFIG_FALSE;
}
return CONFIG_TRUE;
}
开发者ID:snua12,项目名称:zlomekfs,代码行数:30,代码来源:local_config.c
示例3: qtbl_if_set
int qtbl_if_set(config_setting_t *icsp, struct qtbl_t *qip, struct qtbl_e ifsnmpoid, struct qtbl_e iflocation) {
config_setting_t *tcsp;
int ret = 0;
/* to determine default value for each if*/
if((tcsp = config_setting_get_member(icsp, "host")) != NULL){
if(strlen(config_setting_get_string(tcsp)) == 0){
printf("vifset Wrong hostname \n");
}else{
strncpy(ifsnmpoid.data.snmp.host, config_setting_get_string(tcsp), 128);
}
}
if((tcsp = config_setting_get_member(icsp, "community")) != NULL){
if(strlen(config_setting_get_string(tcsp)) == 0){
printf("vifset Wrong community \n");
}else{
strncpy(ifsnmpoid.data.snmp.community, config_setting_get_string(tcsp), 128);
}
}
if(strlen(ifsnmpoid.data.snmp.host) > 0 && strlen(ifsnmpoid.data.snmp.community) > 0)
ifsnmpoid.flag = QSNMPOID;
if((tcsp = config_setting_get_member(icsp, "location")) != NULL){
iflocation = qtblloc_set(tcsp);
if(vifsetdebug && iflocation.flag == QSTATIC)
printf("vifset if location: %08x\n", iflocation.data.val);
}
/* getting in/out configuration*/
if((tcsp = config_setting_get_member(icsp, "in")) != NULL){
ret += qtbl_if_io_set(tcsp, qip->in, ifsnmpoid, iflocation);
}
if((tcsp = config_setting_get_member(icsp, "out")) != NULL){
ret += qtbl_if_io_set(tcsp, qip->out, ifsnmpoid, iflocation);
}
return ret;
}
开发者ID:ikob,项目名称:i-Path,代码行数:35,代码来源:vifset.c
示例4: read_thread_setting
/*! \brief read thread seetting from local config */
static int read_thread_setting(config_setting_t * setting, thread_limit * limit)
{
config_setting_t * config_max_total = config_setting_get_member(setting, "max_total");
config_setting_t * config_min_spare = config_setting_get_member(setting, "min_spare");
config_setting_t * config_max_spare = config_setting_get_member(setting, "max_spare");
if (config_max_total == NULL || config_min_spare == NULL || config_max_spare == NULL)
{
message(LOG_ERROR, FACILITY_CONFIG, "In thread setting is missing one of theses keys: max_total, min_spare or max_spare.\n");
return CONFIG_FALSE;
}
if ((config_setting_type(config_max_total) != CONFIG_TYPE_INT)
|| (config_setting_type(config_min_spare) != CONFIG_TYPE_INT)
|| (config_setting_type(config_max_spare) != CONFIG_TYPE_INT))
{
message(LOG_ERROR, FACILITY_CONFIG, "In thread setting has on of theses keys: max_total, min_spare or max_spare wrong type, it should be int.\n");
return CONFIG_FALSE;
}
limit->max_total = config_setting_get_int(config_max_total);
limit->min_spare = config_setting_get_int(config_min_spare);
limit->max_spare = config_setting_get_int(config_max_spare);
return (is_valid_thread_limit(limit, "") == true) ? CONFIG_TRUE : CONFIG_FALSE;
}
开发者ID:snua12,项目名称:zlomekfs,代码行数:27,代码来源:local_config.c
示例5: main
int main(int argc, char **argv)
{
static const char *output_file = "updated.cfg";
config_t cfg;
config_setting_t *root, *setting, *movie;
config_init(&cfg);
/* Read the file. If there is an error, report it and exit. */
if(! config_read_file(&cfg, "example.cfg"))
{
fprintf(stderr, "%s:%d - %s\n", config_error_file(&cfg),
config_error_line(&cfg), config_error_text(&cfg));
config_destroy(&cfg);
return(EXIT_FAILURE);
}
/* Find the 'movies' setting. Add intermediate settings if they don't yet
* exist.
*/
root = config_root_setting(&cfg);
setting = config_setting_get_member(root, "inventory");
if(!setting)
setting = config_setting_add(root, "inventory", CONFIG_TYPE_GROUP);
setting = config_setting_get_member(setting, "movies");
if(!setting)
setting = config_setting_add(setting, "movies", CONFIG_TYPE_LIST);
/* Create the new movie entry. */
movie = config_setting_add(setting, NULL, CONFIG_TYPE_GROUP);
setting = config_setting_add(movie, "title", CONFIG_TYPE_STRING);
config_setting_set_string(setting, "Buckaroo Banzai");
setting = config_setting_add(movie, "media", CONFIG_TYPE_STRING);
config_setting_set_string(setting, "DVD");
setting = config_setting_add(movie, "price", CONFIG_TYPE_FLOAT);
config_setting_set_float(setting, 12.99);
setting = config_setting_add(movie, "qty", CONFIG_TYPE_INT);
config_setting_set_float(setting, 20);
/* Write out the updated configuration. */
if(! config_write_file(&cfg, output_file))
{
fprintf(stderr, "Error while writing file.\n");
config_destroy(&cfg);
return(EXIT_FAILURE);
}
fprintf(stderr, "Updated configuration successfully written to: %s\n",
output_file);
config_destroy(&cfg);
return(EXIT_SUCCESS);
}
开发者ID:anagno,项目名称:imretOpenMVG,代码行数:59,代码来源:example2.c
示例6: logging_setup
int logging_setup(struct module *module, config_setting_t *conf)
{
config_setting_t *setting;
const char *val;
int num;
if (config.debug < 2)
skeeter_vlog = &skeeter_syslog;
num = LOG_ERR;
setting = config_setting_get_member(conf, "level");
if (setting) {
struct level *level;
val = config_setting_get_string(setting);
for (level = level_table; level->name; level++) {
if (!strcasecmp(val, level->name))
break;
}
if (!level->name) {
skeeter_log(LOG_ERR, "Could not parse loglevel value '%s'", val);
return 1;
}
num = level->level;
}
config.loglevel = num;
num = LOG_MAIL;
setting = config_setting_get_member(conf, "facility");
if (setting) {
struct facility *facility;
val = config_setting_get_string(setting);
for (facility = facility_table; facility->name; facility++) {
if (!strcasecmp(val, facility->name))
break;
}
if (!facility->name) {
skeeter_log(LOG_ERR, "Could not parse log facility value '%s'", val);
return 1;
}
num = facility->facility;
}
config.facility = num;
openlog("skeeter", LOG_PID, config.facility);
event_set_log_callback(skeeter_event_log);
return 0;
}
开发者ID:lntoly,项目名称:skeeter,代码行数:50,代码来源:logging.c
示例7: read_volume_tree_node_setting
/*! \brief read volume tree node settings */
static int read_volume_tree_node_setting(config_setting_t * node_setting)
{
int rv;
const char * node_key;
rv = config_setting_lookup_string(node_setting, "node", &node_key);
if (rv != CONFIG_TRUE)
{
message(LOG_INFO, FACILITY_CONFIG, "No node key in hierarchy tree in shared config found.\n");
return rv;
}
config_setting_t * children = config_setting_get_member(node_setting, "children");
if (children == NULL)
return CONFIG_TRUE;
int i;
config_setting_t * child;
for (i = 0; (child = config_setting_get_elem(children, i)) != NULL; ++i)
{
rv = read_volume_tree_node_setting(child);
if (rv != CONFIG_TRUE)
{
message(LOG_INFO, FACILITY_CONFIG, "Failed to read hierarchy tree from shared config.\n");
return rv;
}
}
return CONFIG_TRUE;
}
开发者ID:snua12,项目名称:zlomekfs,代码行数:32,代码来源:shared_config.c
示例8: return
config_setting_t *config_setting_add(config_setting_t *parent,
const char *name, int type)
{
if((type < CONFIG_TYPE_NONE) || (type > CONFIG_TYPE_LIST))
return(NULL);
if(! parent)
return(NULL);
if((parent->type == CONFIG_TYPE_ARRAY) || (parent->type == CONFIG_TYPE_LIST))
name = NULL;
if(name)
{
if(! __config_validate_name(name))
return(NULL);
}
#if 0
/* https://github.com/HerculesWS/Hercules/pull/136#discussion_r6363319
* With this code, accidental duplicate keys would cause the file parsing to fail
* (would cause several issues during runtime on file reloads), while libconfig's code
* has no problems with duplicate members so it was ducked out -- TODO: looking now though
* I'd think it could be useful to have it display a warning or error message when finding
* duplicate keys instead of silently moving on. [Ind]
*/
if(config_setting_get_member(parent, name) != NULL)
return(NULL); /* already exists */
#endif
return(config_setting_create(parent, name, type));
}
开发者ID:AchcarLucas,项目名称:Cronus,代码行数:32,代码来源:libconfig.c
示例9: print_layouts
void print_layouts(int num_frame)
{
config_setting_t *category_list, *category, *layout_list, *layout;
config_t layout_config;
int layout_length, i;
const char* ascii_image;
config_init(&layout_config);
config_read_file(&layout_config, "./layout.cfg");
category_list = config_lookup(&layout_config, "application.layout_group");
category = config_setting_get_elem(category_list, num_frame - MIN_NUM_FRAME);
layout_list = config_setting_get_member(category, "layout");
layout_length = config_setting_length(layout_list);
for(i = 0; i < layout_length; i++)
{
layout = config_setting_get_elem(layout_list, i);
config_setting_lookup_string(layout, "image", &ascii_image);
printf(" %c)\n", 'a' + i);
printf("%s\n", ascii_image);
}
config_destroy(&layout_config);
}
开发者ID:ChiaraCaiazza,项目名称:collageMaker,代码行数:26,代码来源:layout.c
示例10: config_setting_copy_simple
void config_setting_copy_simple(config_setting_t *parent, const config_setting_t *src)
{
if (config_setting_is_aggregate(src)) {
config_setting_copy_aggregate(parent, src);
}
else {
config_setting_t *set;
if( config_setting_get_member(parent, config_setting_name(src)) != NULL )
return;
if ((set = config_setting_add(parent, config_setting_name(src), config_setting_type(src))) == NULL)
return;
if (CONFIG_TYPE_INT == config_setting_type(src)) {
config_setting_set_int(set, config_setting_get_int(src));
config_setting_set_format(set, src->format);
} else if (CONFIG_TYPE_INT64 == config_setting_type(src)) {
config_setting_set_int64(set, config_setting_get_int64(src));
config_setting_set_format(set, src->format);
} else if (CONFIG_TYPE_FLOAT == config_setting_type(src)) {
config_setting_set_float(set, config_setting_get_float(src));
} else if (CONFIG_TYPE_STRING == config_setting_type(src)) {
config_setting_set_string(set, config_setting_get_string(src));
} else if (CONFIG_TYPE_BOOL == config_setting_type(src)) {
config_setting_set_bool(set, config_setting_get_bool(src));
}
}
}
开发者ID:DeveloperSam0219,项目名称:Project3,代码行数:29,代码来源:conf.c
示例11: while
LIBCONFIG_API config_setting_t *config_lookup(const config_t *config,
const char *path)
{
const char *p = path;
config_setting_t *setting = config->root, *found;
for(;;)
{
while(*p && strchr(PATH_TOKENS, *p))
p++;
if(! *p)
break;
found = config_setting_get_member(setting, p);
if(! found)
break;
setting = found;
while(! strchr(PATH_TOKENS, *p))
p++;
}
return(*p ? NULL : setting);
}
开发者ID:aveek0218,项目名称:ImpalaPythia,代码行数:27,代码来源:libconfig.c
示例12: while
config_setting_t *config_lookup_from(config_setting_t *setting,
const char *path)
{
const char *p = path;
config_setting_t *found;
for(;;)
{
while(*p && strchr(PATH_TOKENS, *p))
p++;
if(! *p)
break;
if(*p == '[')
found = config_setting_get_elem(setting, atoi(++p));
else
found = config_setting_get_member(setting, p);
if(! found)
break;
setting = found;
while(! strchr(PATH_TOKENS, *p))
p++;
}
return(*p ? NULL : setting);
}
开发者ID:mlafeldt,项目名称:ps2rd,代码行数:30,代码来源:libconfig.c
示例13: session_is_valid_sessid
// {{{ session_is_valid_sessid()
int session_is_valid_sessid(const char *sessid)
{
// TODO use timestamp: session not expires.
struct config_t cfg;
config_init(&cfg);
config_setting_t *cs;
config_setting_t *vs;
if(!config_read_file(&cfg, OD_SESSION_FILE))
return 0;
int i=0;
for(i=0; ;i++)
{
if( !(cs = config_setting_get_elem(cfg.root, i)) )
break;
if( !(vs = config_setting_get_member(cs, "sessid")) )
continue;
const char *res = config_setting_get_string(vs);
if(res)
if(strcmp(res, sessid)==0)
{
config_destroy(&cfg);
return 1;
}
}
config_destroy(&cfg);
return 0;
}
开发者ID:evomonza,项目名称:opendomo,代码行数:35,代码来源:session.c
示例14: return
config_setting_t *config_setting_add(config_setting_t *parent,
const char *name, int type)
{
if((type < CONFIG_TYPE_NONE) || (type > CONFIG_TYPE_LIST))
return(NULL);
if(! parent)
return(NULL);
if((parent->type == CONFIG_TYPE_ARRAY) || (parent->type == CONFIG_TYPE_LIST))
name = NULL;
if(name)
{
if(! __config_validate_name(name))
return(NULL);
}
config_setting_t *setting = config_setting_get_member(parent, name);
if (setting != NULL)
{
if ((setting->type != type && type != CONFIG_TYPE_NONE) ||
(setting->type != CONFIG_TYPE_GROUP &&
setting->type != CONFIG_TYPE_ARRAY &&
setting->type != CONFIG_TYPE_LIST))
return(NULL); /* already exists */
else
return setting; /* merge with existing config */
}
return(config_setting_create(parent, name, type));
}
开发者ID:krin-san,项目名称:libconfig,代码行数:32,代码来源:libconfig.c
示例15: pc_group_can_use_command
/**
* Checks if player group can use @/#command
* @param group_id ID of the group
* @param command Command name without @/# and params
* @param type enum AtCommanndType { COMMAND_ATCOMMAND = 1, COMMAND_CHARCOMMAND = 2 }
*/
bool pc_group_can_use_command(int group_id, const char *command, AtCommandType type)
{
int result = 0;
config_setting_t *commands = NULL;
GroupSettings *group = NULL;
if (pc_group_has_permission(group_id, PC_PERM_USE_ALL_COMMANDS))
return true;
if ((group = id2group(group_id)) == NULL)
return false;
commands = group->commands;
if (commands != NULL) {
config_setting_t *cmd = NULL;
// <commandname> : <bool> (only atcommand)
if (type == COMMAND_ATCOMMAND && config_setting_lookup_bool(commands, command, &result))
return (bool)result;
// <commandname> : [ <bool>, <bool> ] ([ atcommand, charcommand ])
if ((cmd = config_setting_get_member(commands, command)) != NULL &&
config_setting_is_aggregate(cmd) && config_setting_length(cmd) == 2)
return (bool)config_setting_get_bool_elem(cmd, AtCommandType2idx(type));
}
return false;
}
开发者ID:AsaK,项目名称:rathena,代码行数:33,代码来源:pc_groups.c
示例16: parse_ue_sim_param
bool parse_ue_sim_param(config_setting_t *ue_setting, int user_id, usim_data_conf_t *u) {
int rc = true;
config_setting_t *ue_param_setting = NULL;
ue_param_setting = config_setting_get_member(ue_setting, SIM);
if (ue_param_setting == NULL) {
printf("Check SIM section for UE%d. EXITING...\n", user_id);
return false;
}
rc = config_setting_lookup_string(ue_param_setting, MSIN, &u->msin);
if (rc != 1 || strlen(u->msin) > 10 || strlen(u->msin) < 9) {
printf("Check SIM MSIN section for UE%d. Exiting\n", user_id);
return false;
}
rc = config_setting_lookup_string(ue_param_setting, USIM_API_K,
&u->usim_api_k);
if (rc != 1) {
printf("Check SIM USIM_API_K section for UE%d. Exiting\n", user_id);
return false;
}
rc = config_setting_lookup_string(ue_param_setting, OPC, &u->opc);
if (rc != 1) {
printf("Check SIM OPC section for UE%d. Exiting\n", user_id);
return false;
}
rc = config_setting_lookup_string(ue_param_setting, MSISDN, &u->msisdn);
if (rc != 1) {
printf("Check SIM MSISDN section for UE%d. Exiting\n", user_id);
return false;
}
return true;
}
开发者ID:ShibinMathew36,项目名称:OAI-step,代码行数:31,代码来源:conf_usim.c
示例17: get_layout
int get_layout(struct layout_t* out, int num_frame, int id_layout)
{
config_setting_t *category_list, *category, *layout_list, *layout, *frame_list, *frame;
config_setting_t *pos, *size;
config_t layout_config;
int frame_length, i;
out->num_frames = num_frame;
out->perc_to_pixel = 0;
out->frames = (struct frame_t*) malloc (num_frame * sizeof(struct frame_t));
config_init(&layout_config);
config_read_file(&layout_config, "./layout.cfg");
category_list = config_lookup(&layout_config, "application.layout_group");
category = config_setting_get_elem(category_list, num_frame - MIN_NUM_FRAME);
layout_list = config_setting_get_member(category, "layout");
layout = config_setting_get_elem(layout_list, id_layout);
frame_list = config_setting_get_member(layout, "frame");
frame_length = config_setting_length(frame_list);
for(i = 0; i < frame_length; i++)
{
frame = config_setting_get_elem(frame_list, i);
pos= config_setting_get_member(frame, "pos");
size = config_setting_get_member(frame, "size");
if (config_setting_lookup_float(pos, "x", &(out->frames[i].pos_x))==CONFIG_FALSE)
printf("pos.x:\tONFIG_FALSE\n");
if ( config_setting_lookup_float(pos, "y", &(out->frames[i].pos_y))==CONFIG_FALSE)
printf("pos.y:\tONFIG_FALSE\n");
if ( config_setting_lookup_float(size, "w", &(out->frames[i].width))==CONFIG_FALSE)
printf("size.w:\tONFIG_FALSE\n");
if ( config_setting_lookup_float(size, "h", &(out->frames[i].height))==CONFIG_FALSE)
printf("size.h:\tONFIG_FALSE\n");
config_setting_lookup_float(frame, "rot", &(out->frames[i].rot));
}
config_destroy(&layout_config);
return 0;
}
开发者ID:ChiaraCaiazza,项目名称:collageMaker,代码行数:47,代码来源:layout.c
示例18: read_threads_config
int read_threads_config(config_t * config)
{
int rv;
config_setting_t * setting_threads = config_lookup(config, "threads");
if (setting_threads == NULL)
{
message(LOG_INFO, FACILITY_CONFIG, "No threads section was found in local config.\n");
return CONFIG_TRUE;
}
config_setting_t * setting_thread;
setting_thread = config_setting_get_member(setting_threads, "kernel_thread");
if (setting_thread != NULL)
{
rv = read_thread_setting(setting_thread, &zfs_config.threads.kernel_thread_limit);
if (rv != CONFIG_TRUE)
{
message(LOG_ERROR, FACILITY_CONFIG, "In threads section failed to read thread limit for kernel thread.\n");
return CONFIG_FALSE;
}
}
setting_thread = config_setting_get_member(setting_threads, "network_thread");
if (setting_thread != NULL)
{
rv = read_thread_setting(setting_thread, &zfs_config.threads.network_thread_limit);
if (rv != CONFIG_TRUE)
{
message(LOG_ERROR, FACILITY_CONFIG, "In threads section failed to read thread limit for network thread.\n");
return CONFIG_FALSE;
}
}
setting_thread = config_setting_get_member(setting_threads, "update_thread");
if (setting_thread != NULL)
{
rv = read_thread_setting(setting_thread, &zfs_config.threads.update_thread_limit);
if (rv != CONFIG_TRUE)
{
message(LOG_ERROR, FACILITY_CONFIG, "In threads section failed to read thread limit for update thread.\n");
return CONFIG_FALSE;
}
}
return CONFIG_TRUE;
}
开发者ID:snua12,项目名称:zlomekfs,代码行数:47,代码来源:local_config.c
示例19: config_setting_lookup_float
int config_setting_lookup_float (const config_setting_t * setting, const char *name, double *value)
{
config_setting_t *member = config_setting_get_member (setting, name);
if (!member)
return (CONFIG_FALSE);
return (__config_setting_get_float (member, value));
}
开发者ID:274914765,项目名称:C,代码行数:8,代码来源:libconfig.c
示例20: config_setting_remove
gboolean config_setting_remove(config_setting_t * parent, const char * name)
{
config_setting_t *s = config_setting_get_member(parent, name);
if (s == NULL)
return FALSE;
_config_setting_t_remove(s);
return TRUE;
}
开发者ID:bluemutedwisdom,项目名称:lxpanel,代码行数:8,代码来源:conf.c
注:本文中的config_setting_get_member函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论