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>