--- libaitcfg/inc/aitcfg.h 2014/03/19 16:35:28 1.14.2.1 +++ libaitcfg/inc/aitcfg.h 2014/03/19 18:36:08 1.14.2.5 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitcfg.h,v 1.14.2.1 2014/03/19 16:35:28 misho Exp $ +* $Id: aitcfg.h,v 1.14.2.5 2014/03/19 18:36:08 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -69,7 +69,11 @@ typedef struct tagRC { #define CFG_RC_LOCK(x) pthread_mutex_lock(&(x)->rc_mtx) #define CFG_RC_UNLOCK(x) pthread_mutex_unlock(&(x)->rc_mtx) +#define CFG_SECTION(x) (assert((x)), AIT_GET_LIKE(&((struct tagCfg*) (x))->cfg_sec, const char*)) +#define CFG_ATTRIBUTE(x) (assert((x)), AIT_GET_LIKE(&((struct tagCfg*) (x))->cfg_attr, const char*)) +#define CFG_VALUE(x) (assert((x)), AIT_GET_LIKE(&((struct tagCfg*) (x))->cfg_val, const char*)) + // cfg_GetErrno() Get error code of last operation int cfg_GetErrno(); // cfg_GetError() Get error text of last operation @@ -185,6 +189,14 @@ int cfgConcatConfig(cfg_root_t * __restrict cfg, cfg_r */ int cfgMergeConfig(cfg_root_t * __restrict cfg, cfg_root_t * __restrict add_cfg); +/* + * cfg_getSection() - Get entire section attributes into array + * + * @cfg = Config root + * @csSec = Config section //[{csSec}] + * return: NULL not found or !=NULL allocated array, must free with array_Destroy() after use! + */ +array_t *cfg_getSection(cfg_root_t * __restrict cfg, const char *csSec); /* * cfg_findAttribute() - Find attribute position in config file *