mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-15 09:20:52 +08:00
145 lines
3.4 KiB
C
145 lines
3.4 KiB
C
#ifndef ACL_XINETD_CFG_INCLUDE_H
|
|
#define ACL_XINETD_CFG_INCLUDE_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "acl_define.h"
|
|
#include "acl_array.h"
|
|
|
|
/**
|
|
* 配置文件解析句柄类型定义
|
|
*/
|
|
typedef struct ACL_XINETD_CFG_PARSER ACL_XINETD_CFG_PARSER;
|
|
|
|
/**
|
|
* 功能: 获得所需要的配置 项的内容
|
|
* @param xcp: 结构指针, 不能为空
|
|
* @param name: 配置项的变量名
|
|
* @return 配置文件中配置项的内容
|
|
*/
|
|
ACL_API const char *acl_xinetd_cfg_get(const ACL_XINETD_CFG_PARSER *xcp, const char *name);
|
|
|
|
/**
|
|
* 功能: 获得所需要的配置项的数组,对于一个变量名对应多个变量值时有用
|
|
* @param xcp: 结构指针, 不能为空
|
|
* @param name: 配置项的变量名
|
|
* @return 配置文件中配置项的内容动态数组
|
|
*/
|
|
ACL_API const ACL_ARRAY *acl_xinetd_cfg_get_ex(const ACL_XINETD_CFG_PARSER *xcp, const char *name);
|
|
|
|
/**
|
|
* 功能: 从配置文件中获得对应在于某一个索引值位置的内容
|
|
* @param xcp: 结构指针, 不能为空
|
|
* @param idx: 索引位置值
|
|
* @param ppname: 指向指针的地址的变量
|
|
* @param ppvalue: 指向指针的地址的变量
|
|
* @return 0: OK, -1: ERR
|
|
*/
|
|
ACL_API int acl_xinetd_cfg_index(const ACL_XINETD_CFG_PARSER *xcp,
|
|
int idx,
|
|
char **ppname,
|
|
char **ppvalue);
|
|
|
|
/**
|
|
* 功能: 配置文件中配置项的条数
|
|
* @param xcp: 结构指针, 不能为空
|
|
* @return 配置文件中配置项的条数
|
|
*/
|
|
ACL_API int acl_xinetd_cfg_size(const ACL_XINETD_CFG_PARSER *xcp);
|
|
|
|
/**
|
|
* 功能: 释放由结构指针所指向的内存空间
|
|
* @param xcp: 结构指针
|
|
*/
|
|
ACL_API void acl_xinetd_cfg_free(ACL_XINETD_CFG_PARSER *xcp);
|
|
|
|
/**
|
|
* 功能: 读取配置文件并进行解析
|
|
* @param pathname: 配置文件的文件名
|
|
* @return 已经解析了配置文件的结构指针
|
|
*/
|
|
ACL_API ACL_XINETD_CFG_PARSER *acl_xinetd_cfg_load(const char *pathname);
|
|
|
|
/**
|
|
* 整数类配置项结构
|
|
*/
|
|
typedef struct ACL_CFG_INT_TABLE {
|
|
const char *name;
|
|
int defval;
|
|
int *target;
|
|
int min;
|
|
int max;
|
|
} ACL_CFG_INT_TABLE;
|
|
|
|
/**
|
|
* 64 位整数类配置项结构
|
|
*/
|
|
typedef struct ACL_CFG_INT64_TABLE {
|
|
const char *name;
|
|
acl_int64 defval;
|
|
acl_int64 *target;
|
|
acl_int64 min;
|
|
acl_int64 max;
|
|
} ACL_CFG_INT64_TABLE;
|
|
|
|
/**
|
|
* 字符串类配置项结构
|
|
*/
|
|
typedef struct ACL_CFG_STR_TABLE {
|
|
const char *name;
|
|
const char *defval;
|
|
char **target;
|
|
} ACL_CFG_STR_TABLE;
|
|
|
|
/**
|
|
* 布尔型类配置项结构
|
|
*/
|
|
typedef struct ACL_CFG_BOOL_TABLE {
|
|
const char *name;
|
|
int defval;
|
|
int *target;
|
|
} ACL_CFG_BOOL_TABLE;
|
|
|
|
/* in acl_xinetd_params.c */
|
|
|
|
/**
|
|
* 从配置文件解析器中读取整数类型的表
|
|
* @param cfg {ACL_XINETD_CFG_PARSER*} 当为空时则用默认值进行赋值
|
|
* @param table {ACL_CFG_INT_TABLE*}
|
|
*/
|
|
ACL_API void acl_xinetd_params_int_table(ACL_XINETD_CFG_PARSER *cfg,
|
|
ACL_CFG_INT_TABLE *table);
|
|
|
|
/**
|
|
* 从配置文件解析器中读取 64 位整数类型的表
|
|
* @param cfg {ACL_XINETD_CFG_PARSER*} 当为空时则用默认值进行赋值
|
|
* @param table {ACL_CFG_INT64_TABLE*}
|
|
*/
|
|
ACL_API void acl_xinetd_params_int64_table(ACL_XINETD_CFG_PARSER *cfg,
|
|
ACL_CFG_INT64_TABLE *table);
|
|
|
|
/**
|
|
* 从配置文件解析器中读取字符串类型的表
|
|
* @param cfg {ACL_XINETD_CFG_PARSER*} 当为空时则用默认值进行赋值
|
|
* @param table {ACL_CFG_STR_TABLE*}
|
|
*/
|
|
ACL_API void acl_xinetd_params_str_table(ACL_XINETD_CFG_PARSER *cfg,
|
|
ACL_CFG_STR_TABLE *table);
|
|
|
|
/**
|
|
* 从配置文件解析器中读取BOOL类型的表
|
|
* @param cfg {ACL_XINETD_CFG_PARSER*} 当为空时则用默认值进行赋值
|
|
* @param table {ACL_CFG_BOOL_TABLE*}
|
|
*/
|
|
ACL_API void acl_xinetd_params_bool_table(ACL_XINETD_CFG_PARSER *cfg,
|
|
ACL_CFG_BOOL_TABLE *table);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|