Annotation of libaitcfg/inc/aitcfg.h, revision 1.1.1.1

1.1       misho       1: #ifndef __AITCFG_H
                      2: #define __AITCFG_H
                      3: 
                      4: 
                      5: struct tagPair {
                      6:        unsigned int    uLine;
                      7:        unsigned char   *psSection;
                      8:        unsigned char   *psAttribute;
                      9:        unsigned char   *psValue;
                     10:        struct tagPair *sle_next;
                     11: };
                     12: 
                     13: struct tagHead {
                     14:        struct tagPair *slh_first;
                     15: };
                     16: typedef struct tagHead sl_config;
                     17: 
                     18: 
                     19: /*
                     20:  * InitConfig() Head initializing function for config
                     21:  * @cfg = New head element for init
                     22:  * return: 0 ok; -1 error:: new head element is null
                     23: */
                     24: inline int InitConfig(sl_config * __restrict cfg);
                     25: /*
                     26:  * CreateConfig() Create config file from memory
                     27:  * @csConfigName = New config filename
                     28:  * @cfg = Head list element
                     29:  * return: 0 ok; -1 error:: can`t save new config
                     30: */
                     31: int CreateConfig(const char *csConfigName, sl_config * __restrict cfg);
                     32: /*
                     33:  * LoadConfig() Load config from file
                     34:  * @csConfigName = Filename of config
                     35:  * @cfg = Head list element
                     36:  * return: 0 ok; -1 error:: can`t load config
                     37: */
                     38: int LoadConfig(const char *csConfigName, sl_config * __restrict cfg);
                     39: /*
                     40:  * UnloadConfig() Unload config from memory and free resources
                     41:  * @cfg = Head list element
                     42: */
                     43: void UnloadConfig(sl_config * __restrict cfg);
                     44: 
                     45: 
                     46: // cfg_GetErrno() Get error code of last operation
                     47: inline int cfg_GetErrno();
                     48: // cfg_GetError() Get error text of last operation
                     49: inline const char *cfg_GetError();
                     50: 
                     51: 
                     52: /*
                     53:  * ReadConfig() Read from file and add new item to config list
                     54:  * @f = file resource
                     55:  * @cfg = Head list element
                     56:  * return: 0 ok; -1 error:: can`t allocate memory
                     57: */
                     58: int ReadConfig(FILE *f, sl_config * __restrict cfg);
                     59: /*
                     60:  * WriteConfig() Write to file from items in config list
                     61:  * @f = file resource
                     62:  * @cfg = Head list element
                     63:  * return: 0 ok; -1 error:: can`t write to file
                     64: */
                     65: int WriteConfig(FILE *f, sl_config * __restrict cfg);
                     66: 
                     67: 
                     68: /*
                     69:  * cfg_FindAttribute() Find attribute position in config list
                     70:  * @cfg = Head list element
                     71:  * @csSec = Config section //[{csSec}]
                     72:  * @csAttr = Config attribute //{csAttr} = ...
                     73:  * return: 0 not found item; -1 error: null parameters; >0 position in list
                     74: */
                     75: inline int cfg_FindAttribute(sl_config * __restrict cfg, const u_char *csSec, const u_char *csAttr);
                     76: /*
                     77:  * cfg_SetAttribute() Set item in config list or add new item if not exists
                     78:  * @cfg = Head list element
                     79:  * @csSec = Config section //[{csSec}], if NULL set in *default* section
                     80:  * @csAttr = Config attribute //{csAttr} = ..., if NULL set as *any* attribute
                     81:  * @csVal = Config value //... = {csVal} to setup
                     82:  * return: 0 nothing changed, -1 error: not enough memory; 1 find and update item; 2 added new item
                     83: */
                     84: int cfg_SetAttribute(sl_config * __restrict cfg, const u_char *csSec, const u_char *csAttr, const u_char *csVal);
                     85: /*
                     86:  * cfg_UnsetAttribute() Unset item from config list and free resources
                     87:  * @cfg = Head list element
                     88:  * @csSec = Config section //[{csSec}], if NULL unset in *default* section
                     89:  * @csAttr = Config attribute //{csAttr} = ..., if NULL unset as *any* attribute
                     90:  * return: 0 item not found, -1 error: null parameters; >0 position in list
                     91: */
                     92: int cfg_UnsetAttribute(sl_config * __restrict cfg, const u_char *csSec, const u_char *csAttr);
                     93: /*
                     94:  * cfg_GetAttribute() Get item from config list and return his value
                     95:  * @cfg = Head list element
                     96:  * @csSec = Config section //[{csSec}], if NULL unset in *default* section
                     97:  * @csAttr = Config attribute //{csAttr} = ..., if NULL unset as *any* attribute
                     98:  * return: NULL item not found or null parameters; !=NULL value const string
                     99: */
                    100: inline const u_char *cfg_GetAttribute(sl_config * __restrict cfg, const u_char *csSec, const u_char *csAttr);
                    101: 
                    102: /*
                    103:  * cfg_LoadAttribute() Extended get attribute, if not found item return *default value*
                    104:  * @cfg = Head list element
                    105:  * @csSec = Config section //[{csSec}], if NULL unset in *default* section
                    106:  * @csAttr = Config attribute //{csAttr} = ..., if NULL unset as *any* attribute
                    107:  * @psVal = Return buffer for item Value //... = {psVal}
                    108:  * @ValLen = Length of buffer //{psVal} for return
                    109:  * @csDefValue = *Default Value* for return in //{psVal}, if not found item in config list
                    110:  * return: 0 item not found, -1 error: null parameters; >0 number of copied bytes in //{psVal}
                    111: */
                    112: int cfg_LoadAttribute(sl_config * __restrict cfg, const u_char *csSec, const u_char *csAttr, 
                    113:                u_char * __restrict psVal, int ValLen, const char *csDefValue);
                    114: 
                    115: 
                    116: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>