acl  3.5.3.0
acl_xinetd_cfg.h
浏览该文件的文档.
1 #ifndef ACL_XINETD_CFG_INCLUDE_H
2 #define ACL_XINETD_CFG_INCLUDE_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #include "acl_define.h"
9 #include "acl_array.h"
10 
11 /**
12  * 配置文件解析句柄类型定义
13  */
15 
16 /**
17  * 功能: 获得所需要的配置 项的内容
18  * @param xcp 结构指针, 不能为空
19  * @param name 配置项的变量名
20  * @return 配置文件中配置项的内容
21  */
22 ACL_API const char *acl_xinetd_cfg_get(const ACL_XINETD_CFG_PARSER *xcp, const char *name);
23 
24 /**
25  * 功能: 获得所需要的配置项的数组,对于一个变量名对应多个变量值时有用
26  * @param xcp 结构指针, 不能为空
27  * @param name 配置项的变量名
28  * @return 配置文件中配置项的内容动态数组
29  */
30 ACL_API const ACL_ARRAY *acl_xinetd_cfg_get_ex(const ACL_XINETD_CFG_PARSER *xcp, const char *name);
31 
32 /**
33  * 功能: 从配置文件中获得对应在于某一个索引值位置的内容
34  * @param xcp 结构指针, 不能为空
35  * @param idx 索引位置值
36  * @param ppname 指向指针的地址的变量
37  * @param ppvalue 指向指针的地址的变量
38  * @return 0: OK, -1: ERR
39  */
40 ACL_API int acl_xinetd_cfg_index(const ACL_XINETD_CFG_PARSER *xcp,
41  int idx,
42  char **ppname,
43  char **ppvalue);
44 
45 /**
46  * 功能: 配置文件中配置项的条数
47  * @param xcp 结构指针, 不能为空
48  * @return 配置文件中配置项的条数
49  */
50 ACL_API int acl_xinetd_cfg_size(const ACL_XINETD_CFG_PARSER *xcp);
51 
52 /**
53  * 功能: 释放由结构指针所指向的内存空间
54  * @param xcp 结构指针
55  */
57 
58 /**
59  * 功能: 读取配置文件并进行解析
60  * @param pathname 配置文件的文件名
61  * @return 已经解析了配置文件的结构指针
62  */
63 ACL_API ACL_XINETD_CFG_PARSER *acl_xinetd_cfg_load(const char *pathname);
64 
65 /**
66  * 整数类配置项结构
67  */
68 typedef struct ACL_CFG_INT_TABLE {
69  const char *name;
70  int defval;
71  int *target;
72  int min;
73  int max;
75 
76 /**
77  * 64 位整数类配置项结构
78  */
79 typedef struct ACL_CFG_INT64_TABLE {
80  const char *name;
81  acl_int64 defval;
82  acl_int64 *target;
83  acl_int64 min;
84  acl_int64 max;
86 
87 /**
88  * 字符串类配置项结构
89  */
90 typedef struct ACL_CFG_STR_TABLE {
91  const char *name;
92  const char *defval;
93  char **target;
95 
96 /**
97  * 布尔型类配置项结构
98  */
99 typedef struct ACL_CFG_BOOL_TABLE {
100  const char *name;
101  int defval;
102  int *target;
104 
105 /* in acl_xinetd_params.c */
106 
107 /**
108  * 从配置文件解析器中读取整数类型的表
109  * @param cfg {ACL_XINETD_CFG_PARSER*} 当为空时则用默认值进行赋值
110  * @param table {ACL_CFG_INT_TABLE*}
111  */
113  ACL_CFG_INT_TABLE *table);
114 
115 /**
116  * 从配置文件解析器中读取 64 位整数类型的表
117  * @param cfg {ACL_XINETD_CFG_PARSER*} 当为空时则用默认值进行赋值
118  * @param table {ACL_CFG_INT64_TABLE*}
119  */
121  ACL_CFG_INT64_TABLE *table);
122 
123 /**
124 * 从配置文件解析器中读取字符串类型的表
125 * @param cfg {ACL_XINETD_CFG_PARSER*} 当为空时则用默认值进行赋值
126 * @param table {ACL_CFG_STR_TABLE*}
127 */
129  ACL_CFG_STR_TABLE *table);
130 
131 /**
132 * 从配置文件解析器中读取BOOL类型的表
133 * @param cfg {ACL_XINETD_CFG_PARSER*} 当为空时则用默认值进行赋值
134 * @param table {ACL_CFG_BOOL_TABLE*}
135 */
137  ACL_CFG_BOOL_TABLE *table);
138 
139 #ifdef __cplusplus
140 }
141 #endif
142 
143 #endif
144 
HTTP_API void const char * name
Definition: lib_http.h:620
ACL_API const char * acl_xinetd_cfg_get(const ACL_XINETD_CFG_PARSER *xcp, const char *name)
ACL_API ACL_XINETD_CFG_PARSER * acl_xinetd_cfg_load(const char *pathname)
struct ACL_XINETD_CFG_PARSER ACL_XINETD_CFG_PARSER
ACL_API void acl_xinetd_params_str_table(ACL_XINETD_CFG_PARSER *cfg, ACL_CFG_STR_TABLE *table)
ACL_API int acl_xinetd_cfg_size(const ACL_XINETD_CFG_PARSER *xcp)
ACL_API void acl_xinetd_params_int64_table(ACL_XINETD_CFG_PARSER *cfg, ACL_CFG_INT64_TABLE *table)
const char * defval
ACL_API int acl_xinetd_cfg_index(const ACL_XINETD_CFG_PARSER *xcp, int idx, char **ppname, char **ppvalue)
const char * name
struct ACL_CFG_INT_TABLE ACL_CFG_INT_TABLE
struct ACL_CFG_STR_TABLE ACL_CFG_STR_TABLE
struct ACL_CFG_INT64_TABLE ACL_CFG_INT64_TABLE
const char * name
ACL_API const ACL_ARRAY * acl_xinetd_cfg_get_ex(const ACL_XINETD_CFG_PARSER *xcp, const char *name)
ACL_API void acl_xinetd_cfg_free(ACL_XINETD_CFG_PARSER *xcp)
struct ACL_CFG_BOOL_TABLE ACL_CFG_BOOL_TABLE
ACL_API void acl_xinetd_params_int_table(ACL_XINETD_CFG_PARSER *cfg, ACL_CFG_INT_TABLE *table)
ACL_API void acl_xinetd_params_bool_table(ACL_XINETD_CFG_PARSER *cfg, ACL_CFG_BOOL_TABLE *table)