本文整理汇总了C++中cfg_getnsec函数的典型用法代码示例。如果您正苦于以下问题:C++ cfg_getnsec函数的具体用法?C++ cfg_getnsec怎么用?C++ cfg_getnsec使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cfg_getnsec函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(void)
{
cfg_t *acfg, *bcfg;
cfg_t *sec;
acfg = create_config();
fail_unless(cfg_parse(acfg, SRC_DIR "/a.conf") == 0);
bcfg = create_config();
fail_unless(cfg_parse(bcfg, SRC_DIR "/b.conf") == 0);
sec = cfg_getnsec(acfg, "sec", 0);
fail_unless(sec != 0);
fail_unless(cfg_size(acfg, "sec") == 1);
fail_unless(strcmp(cfg_title(sec), "acfg") == 0);
fail_unless(cfg_getint(sec, "a") == 5);
fail_unless(cfg_getint(sec, "b") == 2);
sec = cfg_getnsec(bcfg, "sec", 0);
fail_unless(sec != 0);
fail_unless(cfg_size(bcfg, "sec") == 1);
fail_unless(strcmp(cfg_title(sec), "bcfg") == 0);
fail_unless(cfg_getint(sec, "a") == 1);
fail_unless(cfg_getint(sec, "b") == 9);
cfg_free(acfg);
cfg_free(bcfg);
return 0;
}
示例2: locker
int Settings::getNodeId(Node type, int intDeviceIndex) const {
if (intDeviceIndex >= getNumberOfNodes(type)) { // Out of bounds
return -1;
}
TelldusCore::MutexLocker locker(&mutex);
cfg_t *cfg_node;
if (type == Device) {
cfg_node = cfg_getnsec(d->cfg, "device", intDeviceIndex);
} else if (type == Controller) {
cfg_node = cfg_getnsec(d->cfg, "controller", intDeviceIndex);
}
int id = cfg_getint(cfg_node, "id");
return id;
}
示例3: parse_mapping_cfg_params
int
parse_mapping_cfg_params(cfg_t *map, conf_mapping_t *conf_mapping, uint8_t is_local)
{
int ctr;
cfg_t *rl;
conf_loc_t *conf_loc;
conf_loc_iface_t *conf_loc_iface;
int afi;
strcpy(conf_mapping->eid_prefix,cfg_getstr(map, "eid-prefix"));
conf_mapping->iid = cfg_getint(map, "iid");
for (ctr = 0; ctr < cfg_size(map, "rloc-address"); ctr++){
rl = cfg_getnsec(map, "rloc-address", ctr);
conf_loc = conf_loc_new_init(
cfg_getstr(rl, "address"),
cfg_getint(rl, "priority"),
cfg_getint(rl, "weight"),
255,0);
glist_add_tail(conf_loc,conf_mapping->conf_loc_list);
}
if (is_local){
for (ctr = 0; ctr < cfg_size(map, "rloc-iface"); ctr++){
rl = cfg_getnsec(map, "rloc-iface", ctr);
afi = cfg_getint(rl, "ip_version");
if (afi == 4){
afi = AF_INET;
}else if (afi == 6){
afi = AF_INET6;
}else{
OOR_LOG(LERR,"Configuration file: The conf_loc_iface->ip_version of the locator should be 4 (IPv4) or 6 (IPv6)");
return (BAD);
}
conf_loc_iface = conf_loc_iface_new_init(
cfg_getstr(rl, "interface"),
afi,
cfg_getint(rl, "priority"),
cfg_getint(rl, "weight"),
255,0);
glist_add_tail(conf_loc_iface,conf_mapping->conf_loc_iface_list);
}
}
return (GOOD);
}
示例4: cb_validate_conffile
int cb_validate_conffile(cfg_t *cfg)
{
char LaunchString[255];
cfg_t *cfg_greet;
if(cfg_size(cfg, "Channel") == 0)
{
cfg_error(cfg, "no \"Channel\" section found");
return -1;
}
printf("\t%d Channel setions found\n", cfg_size(cfg, "Channel"));
int j;
for(j = 0; j < cfg_size(cfg, "Channel"); j++)
{
cfg_greet = cfg_getnsec(cfg, "Channel", j);
sprintf(LaunchString, "%s", cfg_getstr(cfg_greet, "LaunchString"));
if(!(strlen(LaunchString) > 0))
{
cfg_error(cfg, "invalid LaunchString for Channel[%d]", j);
return -1;
}
printf("\tChannel[%d].LaunchString = %s\n", j, LaunchString);
printf("\tChannel[%d].AudioChannels = %ld\n", j, cfg_getint(cfg_greet, "AudioChannels"));
printf("\tChannel[%d].SampleRate = %ld\n", j, cfg_getint(cfg_greet, "SampleRate"));
printf("\tChannel[%d].Width = %ld\n", j, cfg_getint(cfg_greet, "Width"));
printf("\tChannel[%d].Height = %ld\n", j, cfg_getint(cfg_greet, "Height"));
printf("\tChannel[%d].Bitrate = %ld\n", j, cfg_getint(cfg_greet, "Bitrate"));
printf("\tChannel[%d].Ratio = %s\n", j, cfg_getstr(cfg_greet, "Ratio"));
}
return 0;
}
示例5: ParseFile
SyncLogEntry SyncLogger::ReadFirstEntry(const char* pszHash)
{
ParseFile(pszHash);
// Assures the correct parsing of the file.
assert(m_pCFG != NULL);
// cfg_t* pEntryCFG = cfg_getnsec(m_pCFG, MOD_NUMBER_VARNAME, 0);
return ReadEntry(cfg_getnsec(m_pCFG, MOD_NUMBER_VARNAME, 0));
/*
// Assures that the section has been found, which means there is at least one section.
assert(pEntryCFG != NULL);
// TODO: Copy values
SyncLogEntry sle;
sle.m_strFilePath = cfg_getstr(pEntryCFG, FILE_PATH_VARNAME);
sle.m_strModTime = cfg_getstr(pEntryCFG, MOD_TIME_VARNAME);
string strModType = cfg_getstr(pEntryCFG, MOD_TYPE_VARNAME);
if (strModType.length() != 1)
{
// The log entry does not meet the standard.
return NULL;
}
sle.m_chModType = strModType.c_str()[0];
return sle;
*/
}
示例6: parse_mcinfo_list
static void
parse_mcinfo_list(cfg_t *cfg, shash_t *ht)
{
mc_t *mc;
lisp_addr_t *laddr;
char *name;
int i, count;
count = 0;
for (i = 0; i < cfg_size(cfg, "multicast-info"); i++) {
cfg_t *mcnode = cfg_getnsec(cfg, "multicast-info", i);
name = cfg_getstr(mcnode, "mc-info-name");
laddr = lisp_addr_new_lafi(LM_AFI_LCAF);
lisp_addr_lcaf_set_type(laddr, LCAF_MCAST_INFO);
mc = mc_type_new();
lisp_addr_ip_from_char(cfg_getstr(mcnode, "source"), mc->src);
mc->src_plen = cfg_getint(mcnode, "source-mask-length");
lisp_addr_ip_from_char(cfg_getstr(mcnode, "group"), mc->grp);
mc->src_plen = cfg_getint(mcnode, "group-mask-length");
mc->iid = cfg_getint(mcnode, "iid");
lisp_addr_lcaf_set_addr(laddr, mc);
OOR_LOG(LDBG_1, "Configuration file: parsed multicast-info: %s",
lisp_addr_to_char(laddr));
shash_insert(ht, strdup(name), laddr);
count ++;
}
if (count != 0) {
OOR_LOG(LINF, "Parsed configured multicast addresses");
}
}
示例7: main
int main(int argc, char **argv)
{
int i;
cfg_t *cfg = parse_conf(argc > 1 ? argv[1] : "ftp.conf");
/* print the parsed configuration options */
if(cfg)
{
printf("reverse-dns = %s\n", cfg_getbool(cfg, "reverse-dns") ? "true" : "false");
printf("passive-mode = %s\n", cfg_getbool(cfg, "passive-mode") ? "true" : "false");
printf("remote-completion = %s\n", cfg_getbool(cfg, "remote-completion") ? "true" : "false");
printf("number of bookmarks: %d\n", cfg_size(cfg, "bookmark"));
for(i = 0; i < cfg_size(cfg, "bookmark"); i++)
{
cfg_t *bookmark = cfg_getnsec(cfg, "bookmark", i);
printf(" bookmark #%d: %s:%[email protected]%s:%ld%s\n", i+1,
cfg_getstr(bookmark, "login"),
cfg_getstr(bookmark, "password"),
cfg_getstr(bookmark, "host"),
cfg_getint(bookmark, "port"),
cfg_getstr(bookmark, "directory"));
}
for(i = 0; i < cfg_size(cfg, "xterm-terminals"); i++)
printf("xterm-terminal #%d: %s\n", i+1, cfg_getnstr(cfg, "xterm-terminals", i));
printf("auto-create-bookmark = %ld\n", cfg_getint(cfg, "auto-create-bookmark"));
cfg_free(cfg);
}
return 0;
}
示例8: getNodeString
int Settings::setIntSetting(Node type, int intDeviceId, const std::wstring &name, int value, bool parameter) {
// already locked
if (d->cfg == 0) {
return TELLSTICK_ERROR_PERMISSION_DENIED;
}
std::string strType = getNodeString(type);
cfg_t *cfg_device;
for (int i = 0; i < cfg_size(d->cfg, strType.c_str()); ++i) {
cfg_device = cfg_getnsec(d->cfg, strType.c_str(), i);
if (cfg_getint(cfg_device, "id") == intDeviceId) {
if (parameter) {
cfg_t *cfg_parameters = cfg_getsec(cfg_device, "parameters");
cfg_setint(cfg_parameters, TelldusCore::wideToString(name).c_str(), value);
} else {
cfg_setint(cfg_device, TelldusCore::wideToString(name).c_str(), value);
}
FILE *fp = fopen(CONFIG_FILE, "we"); // e for setting O_CLOEXEC on the file handle
if (!fp) {
return TELLSTICK_ERROR_PERMISSION_DENIED;
}
cfg_print(d->cfg, fp);
fclose(fp);
return TELLSTICK_SUCCESS;
}
}
return TELLSTICK_ERROR_DEVICE_NOT_FOUND;
}
示例9: parse_proxy_etrs
int
parse_proxy_etrs(cfg_t *cfg, lisp_xtr_t *xtr)
{
int n,i;
void *fwd_map_inf;
/* PROXY-ETR CONFIG */
n = cfg_size(cfg, "proxy-etr");
for(i = 0; i < n; i++) {
cfg_t *petr = cfg_getnsec(cfg, "proxy-etr", i);
if (add_proxy_etr_entry(xtr->petrs,
cfg_getstr(petr, "address"),
cfg_getint(petr, "priority"),
cfg_getint(petr, "weight")) == GOOD) {
OOR_LOG(LDBG_1, "Added %s to proxy-etr list", cfg_getstr(petr, "address"));
} else{
OOR_LOG(LERR, "Can't add proxy-etr %s", cfg_getstr(petr, "address"));
}
}
/* Calculate forwarding info for petrs */
fwd_map_inf = xtr->fwd_policy->new_map_cache_policy_inf(xtr->fwd_policy_dev_parm,mcache_entry_mapping(xtr->petrs));
if (fwd_map_inf == NULL){
OOR_LOG(LDBG_1, "xtr_ctrl_construct: Couldn't create routing info for PeTRs!.");
mcache_entry_del(xtr->petrs);
return(BAD);
}
mcache_entry_set_routing_info(xtr->petrs,fwd_map_inf,xtr->fwd_policy->del_map_cache_policy_inf);
return (GOOD);
}
示例10: E_ProcessInventoryDeltas
//
// E_ProcessInventoryDeltas
//
// Does processing for inventorydelta sections, which allow cascading editing
// of existing inventory items. The inventorydelta shares most of its fields
// and processing code with the thingtype section.
//
void E_ProcessInventoryDeltas(cfg_t *cfg)
{
int i, numdeltas;
E_EDFLogPuts("\t* Processing inventory deltas\n");
numdeltas = cfg_size(cfg, EDF_SEC_INVDELTA);
E_EDFLogPrintf("\t\t%d inventorydelta(s) defined\n", numdeltas);
for(i = 0; i < numdeltas; i++)
{
cfg_t *deltasec = cfg_getnsec(cfg, EDF_SEC_INVDELTA, i);
inventory_t *inv;
// get thingtype to edit
if(!cfg_size(deltasec, ITEM_DELTA_NAME))
E_EDFLoggedErr(2, "E_ProcessInventoryDeltas: inventorydelta requires name field\n");
inv = E_GetInventoryForName(cfg_getstr(deltasec, ITEM_DELTA_NAME));
E_ProcessInventory(inv, deltasec, cfg, false);
E_EDFLogPrintf("\t\tApplied inventorydelta #%d to %s(#%d)\n",
i, inv->name, inv->numkey);
}
}
示例11: print_systems
static void print_systems(cfg_t *cfg)
{
size_t i;
for (i = 0; i < cfg_size(cfg, "provider"); i++)
print_system(cfg_getnsec(cfg, "provider", i));
}
示例12: find_module_config
static cfg_t* find_module_config(char *modname)
{
cfg_t *modules_cfg;
int j;
modules_cfg = cfg_getsec(python_module.config_file, "modules");
for (j = 0; j < cfg_size(modules_cfg, "module"); j++) {
char *modName, *modLanguage;
int modEnabled;
cfg_t *pymodule = cfg_getnsec(modules_cfg, "module", j);
/* Check the module language to make sure that
the language designation is python.
*/
modLanguage = cfg_getstr(pymodule, "language");
if (!modLanguage || strcasecmp(modLanguage, "python"))
continue;
modName = cfg_getstr(pymodule, "name");
if (strcasecmp(modname, modName)) {
continue;
}
/* Check to make sure that the module is enabled.
*/
modEnabled = cfg_getbool(pymodule, "enabled");
if (!modEnabled)
continue;
return pymodule;
}
return NULL;
}
示例13: E_ProcessInventoryDefs
//
// E_ProcessInventoryDefs
//
// Resolves and loads all information for the inventory structures.
//
void E_ProcessInventoryDefs(cfg_t *cfg)
{
unsigned int i, numInventory;
E_EDFLogPuts("\t* Processing inventory data\n");
if(!(numInventory = cfg_size(cfg, EDF_SEC_INVENTORY)))
return;
// allocate inheritance stack and hitlist
inv_pstack = ecalloc(inventory_t **, numInventoryDefs, sizeof(inventory_t *));
// TODO: any first-time-only processing?
for(i = 0; i < numInventory; i++)
{
cfg_t *invsec = cfg_getnsec(cfg, EDF_SEC_INVENTORY, i);
const char *name = cfg_title(invsec);
inventory_t *inv = E_InventoryForName(name);
// reset the inheritance stack
E_ResetInventoryPStack();
// add this def to the stack
E_AddInventoryToPStack(inv);
E_ProcessInventory(inv, invsec, cfg, true);
E_EDFLogPrintf("\t\tFinished inventory %s(#%d)\n", inv->name, inv->numkey);
}
// free tables
efree(inv_pstack);
}
示例14: build_params_hash
static HV* build_params_hash(cfg_t *plmodule)
{
int k;
HV *params_hash;
params_hash = newHV();
if (plmodule && params_hash) {
for (k = 0; k < cfg_size(plmodule, "param"); k++) {
cfg_t *param;
char *name, *value;
SV *sv_value;
param = cfg_getnsec(plmodule, "param", k);
name = apr_pstrdup(pool, param->title);
value = apr_pstrdup(pool, cfg_getstr(param, "value"));
sv_value = newSVpv(value, 0);
if (name && sv_value) {
/* Silence "value computed is not used" warning */
(void)hv_store(params_hash, name, strlen(name), sv_value, 0);
}
}
}
return params_hash;
}
示例15: main
int main(void)
{
unsigned int i;
read_config();
signal(SIGHUP, sighandler);
signal(SIGUSR1, usr1handler);
while(loop)
{
printf("Message: %s", cfg_getstr(cfg, "message"));
for(i = 0; i < cfg_size(cfg, "argument"); i++)
{
cfg_t *arg = cfg_getnsec(cfg, "argument", i);
printf(", %s", cfg_getstr(arg, "value"));
}
printf("\n");
sleep(cfg_getint(cfg, "delay"));
}
cfg_free(cfg);
cfg = 0;
return 0;
}