|
|
| version 1.6.4.5, 2012/04/03 09:21:06 | version 1.6.4.8, 2012/04/03 13:47:23 |
|---|---|
| Line 49 SUCH DAMAGE. | Line 49 SUCH DAMAGE. |
| #include <aitio.h> | #include <aitio.h> |
| #include <atree.h> | #include <atree.h> |
| #include <pthread.h> | |
| struct tagCfg { | struct tagCfg { |
| Line 60 struct tagCfg { | Line 61 struct tagCfg { |
| RB_ENTRY(tagCfg) cfg_node; | RB_ENTRY(tagCfg) cfg_node; |
| }; | }; |
| typedef struct tagRC { | typedef struct tagRC { |
| #ifdef HAVE_LIBPTHREAD | |
| pthread_mutex_t rc_mtx; | pthread_mutex_t rc_mtx; |
| #endif | |
| struct tagCfg *slh_first; | struct tagCfg *slh_first; |
| struct tagCfg *rbh_root; | struct tagCfg *rbh_root; |
| } cfg_root_t; | } cfg_root_t; |
| #ifdef HAVE_LIBPTHREAD | |
| #define CFG_RC_LOCK(x) pthread_mutex_lock(&(x)->rc_mtx) | #define CFG_RC_LOCK(x) pthread_mutex_lock(&(x)->rc_mtx) |
| #define CFG_RC_UNLOCK(x) pthread_mutex_unlock(&(x)->rc_mtx) | #define CFG_RC_UNLOCK(x) pthread_mutex_unlock(&(x)->rc_mtx) |
| #else | |
| #define CFG_RC_LOCK(x) | |
| #define CFG_RC_UNLOCK(x) | |
| #endif | |
| // cfg_GetErrno() Get error code of last operation | // cfg_GetErrno() Get error code of last operation |
| Line 127 int cfgReadConfig(FILE *f, cfg_root_t * __restrict cfg | Line 122 int cfgReadConfig(FILE *f, cfg_root_t * __restrict cfg |
| * return: -1 error or 0 ok | * return: -1 error or 0 ok |
| */ | */ |
| int cfgWriteConfig(FILE *f, cfg_root_t * __restrict cfg, int whitespace); | int cfgWriteConfig(FILE *f, cfg_root_t * __restrict cfg, int whitespace); |
| /* | |
| * cfgConcatConfig() - Concat two configs into one | |
| * | |
| * @cfg = Config root | |
| * @add_cfg = Concated config will be destroy after merge | |
| * return: -1 error or 0 ok | |
| */ | |
| int cfgConcatConfig(cfg_root_t * __restrict cfg, cfg_root_t * __restrict add_cfg); | |
| /* | |
| * cfgMergeConfig() - Marge two list in one cfg and destroy add_cfg | |
| * | |
| * @cfg = Config root of main list | |
| * @add_cfg = Merged config will be destroy after merge | |
| * return: -1 error or 0 ok | |
| */ | |
| int cfgMergeConfig(cfg_root_t * __restrict cfg, cfg_root_t * __restrict add_cfg); | |
| #if 0 | #if 0 |
| /* | /* |
| Line 143 int cfg_CreateConfig(const char *csConfigName, sl_conf | Line 154 int cfg_CreateConfig(const char *csConfigName, sl_conf |
| * return: 0 ok; -1 error:: can`t save new config | * return: 0 ok; -1 error:: can`t save new config |
| */ | */ |
| int CreateConfig(const char *csConfigName, sl_config * __restrict cfg); | int CreateConfig(const char *csConfigName, sl_config * __restrict cfg); |
| /* | |
| * ConcatConfig() Concat two list in one | |
| * @cfg = Head list element of main list | |
| * @add_cfg = Head list element of added list | |
| * return: 0 ok; -1 error:: can`t concat lists | |
| */ | |
| int ConcatConfig(sl_config * __restrict cfg, sl_config * __restrict add_cfg); | |
| /* | |
| * MergeConfig() Marge two list in one cfg and destroy add_cfg | |
| * @cfg = Head list element of main list | |
| * @add_cfg = Head list element of merged list (destroy after all!) | |
| * return: 0 ok; -1 error:: can`t merge lists | |
| */ | |
| int MergeConfig(sl_config * __restrict cfg, sl_config * __restrict add_cfg); | |
| #endif | #endif |
| /* | /* |