本文整理汇总了C++中config_setting_get_elem函数的典型用法代码示例。如果您正苦于以下问题:C++ config_setting_get_elem函数的具体用法?C++ config_setting_get_elem怎么用?C++ config_setting_get_elem使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了config_setting_get_elem函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: configureTuner
void configureTuner(config_t *propConfig) {
config_setting_t *blockSetting = config_lookup(propConfig, "tuner.block");
config_setting_t *gridSetting = config_lookup(propConfig, "tuner.grid");
if (blockSetting != NULL && gridSetting != NULL) {
int length = config_setting_length(blockSetting); // Only need the length of one metric
performanceMetricCount = length;
performanceMetric.blockDimList = malloc(sizeof(CudaDim) * length);
performanceMetric.gridDimList = malloc(sizeof(CudaDim) * length);
int i;
for (i = 0; i < length; ++i) {
int x, y, z;
config_setting_t *block = config_setting_get_elem(blockSetting, i);
config_setting_t *grid = config_setting_get_elem(gridSetting, i);
config_setting_lookup_int(block, "x", &x);
config_setting_lookup_int(block, "y", &y);
config_setting_lookup_int(block, "z", &z);
performanceMetric.blockDimList[i].x = (uint32_t) x;
performanceMetric.blockDimList[i].y = (uint32_t) y;
performanceMetric.blockDimList[i].z = (uint32_t) z;
config_setting_lookup_int(grid, "x", &x);
config_setting_lookup_int(grid, "y", &y);
config_setting_lookup_int(grid, "z", &z);
performanceMetric.gridDimList[i].x = (uint32_t) x;
performanceMetric.gridDimList[i].y = (uint32_t) y;
performanceMetric.gridDimList[i].z = (uint32_t) z;
}
}
}
开发者ID:psawmora,项目名称:couldhopper-gpu,代码行数:31,代码来源:smpp_codec.c
示例2: 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
示例3: return
LIBCONFIG_API config_setting_t *config_setting_set_bool_elem(
config_setting_t *vector, int index, int value)
{
config_setting_t *element = NULL;
if((vector->type != CONFIG_TYPE_ARRAY) && (vector->type != CONFIG_TYPE_LIST))
return(NULL);
if(index < 0)
{
if(! __config_vector_checktype(vector, CONFIG_TYPE_BOOL))
return(NULL);
element = config_setting_create(vector, NULL, CONFIG_TYPE_BOOL);
}
else
element = config_setting_get_elem(vector, index);
if(! element)
return(NULL);
if(! config_setting_set_bool(element, value))
return(NULL);
return(element);
}
开发者ID:aveek0218,项目名称:ImpalaPythia,代码行数:26,代码来源:libconfig.c
示例4: config_setting_get_float_elem
LIBCONFIG_API double config_setting_get_float_elem(
const config_setting_t *vector, int index)
{
config_setting_t *element = config_setting_get_elem(vector, index);
return(element ? config_setting_get_float(element) : 0.0);
}
开发者ID:aveek0218,项目名称:ImpalaPythia,代码行数:7,代码来源:libconfig.c
示例5: config_setting_get_int_elem
LIBCONFIG_API long config_setting_get_int_elem(const config_setting_t *vector,
int index)
{
const config_setting_t *element = config_setting_get_elem(vector, index);
return(element ? config_setting_get_int(element) : 0);
}
开发者ID:aveek0218,项目名称:ImpalaPythia,代码行数:7,代码来源:libconfig.c
示例6: parse_hw_compatibility
/*
* Check if the software can run on the hardware
*/
static int parse_hw_compatibility(config_t *cfg, struct swupdate_cfg *swcfg)
{
const config_setting_t *setting, *hw;
int count, i;
const char *s;
struct hw_type *hwrev;
setting = get_setting(cfg, "hardware-compatibility", swcfg);
if (setting == NULL) {
ERROR("HW compatibility not found\n");
return -1;
}
count = config_setting_length(setting);
for(i = 0; i < count; ++i) {
hw = config_setting_get_elem(setting, i);
s = config_setting_get_string(hw);
if (!s)
continue;
hwrev = (struct hw_type *)calloc(1, sizeof(struct hw_type));
if (!hwrev) {
ERROR("No memory: malloc failed\n");
return -1;
}
strncpy(hwrev->revision, s, sizeof(hwrev->revision));
LIST_INSERT_HEAD(&swcfg->hardware, hwrev, next);
TRACE("Accepted Hw Revision : %s", hwrev->revision);
}
return 0;
}
开发者ID:pombredanne,项目名称:swupdate,代码行数:38,代码来源:parse_config.c
示例7: 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
示例8: return
config_setting_t *config_setting_set_string_elem(config_setting_t *vector,
int idx, const char *value)
{
config_setting_t *element = NULL;
if((vector->type != CONFIG_TYPE_ARRAY) && (vector->type != CONFIG_TYPE_LIST))
return(NULL);
if(idx < 0)
{
if(! __config_vector_checktype(vector, CONFIG_TYPE_STRING))
return(NULL);
element = config_setting_create(vector, NULL, CONFIG_TYPE_STRING);
}
else
element = config_setting_get_elem(vector, idx);
if(! element)
return(NULL);
if(! config_setting_set_string(element, value))
return(NULL);
return(element);
}
开发者ID:mlafeldt,项目名称:ps2rd,代码行数:26,代码来源:libconfig.c
示例9: config_setting_get_int64_elem
long long config_setting_get_int64_elem(const config_setting_t *vector,
int idx)
{
const config_setting_t *element = config_setting_get_elem(vector, idx);
return(element ? config_setting_get_int64(element) : 0);
}
开发者ID:mlafeldt,项目名称:ps2rd,代码行数:7,代码来源:libconfig.c
示例10: 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
示例11: configure_clay_handlers
void configure_clay_handlers(spade_server* server, config_t* configuration) {
config_setting_t* handler_settings = config_lookup(configuration,
"clay.handlers");
if (!handler_settings) {
log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
"No Clay handlers registered");
return;
}
int clay_handler_count = config_setting_length(handler_settings);
for (int n = 0; n < clay_handler_count; n++) {
config_setting_t* handler_setting = config_setting_get_elem(
handler_settings, n);
const char* endpoint = NULL;
config_setting_lookup_string(handler_setting, "endpoint", &endpoint);
const char* url = NULL;
config_setting_lookup_string(handler_setting, "url", &url);
if(!register_clay_handler(server, url, endpoint)) {
log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
"Registered Clay handler for URL prefix '%s' at endpoint %s",
url, endpoint);
}
}
if (server->clay_handler_count == 0) {
log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
"No Clay handlers registered");
} else {
log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
"Registered a total of %d Clay handlers",
server->clay_handler_count);
}
}
开发者ID:peplin,项目名称:spade,代码行数:34,代码来源:config.c
示例12: upd8_config_parse
// TODO: audit exit routes to "unset"/"unalloc" values.
int upd8_config_parse(upd8_config_t *config, const char *config_file) {
// TODO: check that config is not null.
config_t *cfg = malloc(sizeof(config_t));
config_init(cfg);
if (!config_read_file(cfg, config_file)) {
fprintf(stderr, "%s:%d - %s\n", config_error_file(cfg),
config_error_line(cfg), config_error_text(cfg));
config_destroy(cfg);
return EXIT_FAILURE;
}
config->cfg = cfg;
config_setting_t *settings;
settings = config_lookup(cfg, settings_path);
if (settings == NULL) {
fprintf(stderr, "Unable to find %s in %s\n", settings_path, config_file);
config_destroy(cfg);
return EXIT_FAILURE;
}
config->num_sources = config_setting_length(settings);
config->sources = malloc(config->num_sources * sizeof(upd8_source_t));
for (int i = 0; i < config->num_sources; ++i) {
config_setting_t *individual_config = config_setting_get_elem(settings, i);
upd8_source_parse(&(config->sources[i]), individual_config);
}
return 0;
}
开发者ID:shalecraig,项目名称:updatemgr,代码行数:33,代码来源:config.c
示例13: processRequest
static int processRequest(char *request) {
int count = 0;
int responseTotal = 0;
config_setting_t *responseConfig = NULL;
config_setting_t *responseCurrent = NULL;
const char *responseValue = NULL;
const char *requestName = NULL;
const char *requestValue = NULL;
long volume;
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
pthread_mutex_lock(&lockConfig);
responseConfig = config_lookup(&config, "response");
responseTotal = config_setting_length(responseConfig);
for(count = 0; count < responseTotal; count++) {
responseCurrent = config_setting_get_elem(responseConfig, count);
if((responseValue = config_setting_get_string_elem(responseCurrent, 1)) != NULL &&
strcmp(responseValue, request) == 0) {
responseValue = config_setting_get_string_elem(responseCurrent, 2);
if(config_setting_get_bool_elem(responseCurrent, 0) == 1) { // formulating default response
pthread_mutex_unlock(&lockConfig);
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
common_data.interface->reply(responseValue, strlen(responseValue));
}
else { // attempt to formulate custom response
requestName = config_setting_name(responseCurrent);
pthread_mutex_unlock(&lockConfig);
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
if(strcmp(requestName, "volume") == 0) {
if(getMixer(&volume) == EXIT_FAILURE) {
return EXIT_FAILURE;
}
replyVolumeCommand(&volume);
}
else {
statusInfo.retrieve(requestName, &requestValue);
if(requestValue != NULL)
replyDeviceCommand((char *)requestName, (char *)requestValue);
else // custom response not possible, reverting to default value
replyDeviceCommand((char *)requestName, (char *)responseValue);
}
}
syslog(LOG_DEBUG, "Successfully processed request: %s", request);
return EXIT_SUCCESS; // command is matched, returning
}
else {
pthread_mutex_unlock(&lockConfig);
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
}
}
syslog(LOG_DEBUG, "Could not identify request: %s", request);
return EXIT_SUCCESS;
}
开发者ID:therealmuffin,项目名称:synchronator,代码行数:60,代码来源:processAscii.c
示例14: 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
示例15: read_pairs_setting
/*! \brief read pair setting */
static int read_pairs_setting(config_setting_t * setting, add_pair_mapping add, void * data)
{
int i;
config_setting_t * pair;
for (i = 0; (pair = config_setting_get_elem(setting, i)) != NULL; ++i)
{
int rv;
const char * local;
const char * remote;
rv = config_setting_lookup_string(pair, "local", &local);
if (rv != CONFIG_TRUE)
{
message(LOG_ERROR, FACILITY_CONFIG, "Failed to read local key from pairs in shared config.\n");
return CONFIG_FALSE;
}
rv = config_setting_lookup_string(pair, "remote", &remote);
if (rv != CONFIG_TRUE)
{
message(LOG_ERROR, FACILITY_CONFIG, "Failed to read remote key from pairs in shared config.\n");
return CONFIG_FALSE;
}
add(data, local, remote);
}
return CONFIG_TRUE;
}
开发者ID:snua12,项目名称:zlomekfs,代码行数:30,代码来源:shared_config.c
示例16: read_mapping_setting
int read_mapping_setting(config_setting_t * setting, add_mapping add, void * data)
{
int i;
config_setting_t * pair;
for (i = 0; (pair = config_setting_get_elem(setting, i)) != NULL; ++i)
{
int rv;
uint64_t id;
rv = config_setting_lookup_uint64_t(pair, "id", &id);
if (rv != CONFIG_TRUE)
{
message(LOG_ERROR, FACILITY_CONFIG, "Id config key is wrong type or is missing in shared config.\n");
return CONFIG_FALSE;
}
const char * name;
rv = config_setting_lookup_string(pair, "name", &name);
if (rv != CONFIG_TRUE)
{
message(LOG_ERROR, FACILITY_CONFIG, "Name config key is wrong type or is missing in shared config.\n");
return CONFIG_FALSE;
}
string str_name;
xmkstring(&str_name, name);
add(data, id, &str_name);
}
return CONFIG_TRUE;
}
开发者ID:snua12,项目名称:zlomekfs,代码行数:31,代码来源:shared_config.c
示例17: sensors_load_configuration
//------------------------------------------------------------------------------
// UWAGA - istniejaca lista czujnikow JEST czyszczona !
// Dzieki temu kolejnosc czujnikow na liscie jest zgodna z kolejnoscia z pliku.
int sensors_load_configuration (config_setting_t *setting)
{
config_setting_t *sensor_list = NULL, *sensor = NULL, *s = NULL ;
unsigned int i ;
const char *s_id = NULL, *s_name = NULL ;
unsigned int s_res = 9, s_interval = 5 ;
gboolean s_cached = FALSE ;
sensor_list = config_setting_get_member(setting, "Sensor_List") ;
clear_sensor_list() ;
i=0 ;
while ((sensor = config_setting_get_elem(sensor_list,i)) != NULL) {
// ten kod powinien chyba byc w t_sensor.c
s = config_setting_get_member(sensor, "sensor_id") ;
if (s != NULL) s_id = config_setting_get_string(s) ;
s = config_setting_get_member(sensor, "name") ;
if (s != NULL) s_name = config_setting_get_string(s) ;
s = config_setting_get_member(sensor, "resolution") ;
if (s != NULL) s_res = config_setting_get_int(s) ;
s = config_setting_get_member(sensor, "read_interval") ;
if (s != NULL) s_interval = config_setting_get_int(s) ;
s = config_setting_get_member(sensor, "cached") ;
if (s != NULL) s_cached = config_setting_get_bool(s) ;
add_sensor (s_name, s_id, s_res, s_interval, s_cached) ;
i++ ;
} ;
rebuild_sensors_tree(FALSE) ;
return 0 ;
} ;
开发者ID:BackupTheBerlios,项目名称:gtemp1w,代码行数:38,代码来源:sensors.c
示例18: 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
示例19: configure_cgi_handlers
void configure_cgi_handlers(spade_server* server, config_t* configuration) {
config_setting_t* handler_settings = config_lookup(configuration,
"cgi.handlers");
int cgi_handler_count = config_setting_length(handler_settings);
for (int n = 0; n < cgi_handler_count; n++) {
config_setting_t* handler_setting = config_setting_get_elem(
handler_settings, n);
const char* handler = NULL;
config_setting_lookup_string(handler_setting, "handler", &handler);
const char* url = NULL;
config_setting_lookup_string(handler_setting, "url", &url);
if(!register_cgi_handler(server, url, handler)) {
log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
"Registered CGI handler '%s' for URL prefix '%s'",
handler, url);
}
}
if (server->cgi_handler_count == 0) {
log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
"No CGI handlers registered");
} else {
log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
"Registered a total of %d CGI handlers",
server->cgi_handler_count);
}
}
开发者ID:peplin,项目名称:spade,代码行数:29,代码来源:config.c
示例20: 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
注:本文中的config_setting_get_elem函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论