acl
3.5.3.0
|
#include "../stdlib/acl_define.h"
宏定义 | |
#define | ACL_MDT_FLAG_NUL (0) |
#define | ACL_MDT_FLAG_UNI (1 << 0) |
#define | ACL_MDT_FLAG_KMR (1 << 1) |
#define | ACL_MDT_FLAG_DMR (1 << 2) |
#define | ACL_MDT_FLAG_SLICE1 (1 << 10) |
#define | ACL_MDT_FLAG_SLICE2 (1 << 11) |
#define | ACL_MDT_FLAG_SLICE3 (1 << 12) |
#define | ACL_MDT_FLAG_SLICE_RTGC_OFF (1 << 13) |
类型定义 | |
typedef struct ACL_MDT_NOD | ACL_MDT_NOD |
typedef struct ACL_MDT_RES | ACL_MDT_RES |
typedef struct ACL_MDT_REC | ACL_MDT_REC |
typedef struct ACL_MDT_REF | ACL_MDT_REF |
typedef struct ACL_MDT_IDX | ACL_MDT_IDX |
typedef struct ACL_MDT | ACL_MDT |
typedef struct ACL_MDB | ACL_MDB |
函数 | |
ACL_API ACL_MDB * | acl_mdb_create (const char *dbname, const char *dbtype) |
ACL_API void | acl_mdb_free (ACL_MDB *mdb) |
ACL_API ACL_MDT * | acl_mdb_tbl_create (ACL_MDB *mdb, const char *tbl_name, unsigned int tbl_flag, size_t init_capacity, const char *key_labels[], unsigned int flags[]) |
ACL_API ACL_MDT_NOD * | acl_mdb_add (ACL_MDB *mdb, const char *tbl_name, void *data, unsigned int dlen, const char *key_labels[], const char *keys[]) |
ACL_API int | acl_mdb_probe (ACL_MDB *mdb, const char *tbl_name, const char *key_label, const char *key) |
ACL_API ACL_MDT_RES * | acl_mdb_find (ACL_MDB *mdb, const char *tbl_name, const char *key_label, const char *key, int from, int limit) |
ACL_API ACL_MDT_RES * | acl_mdb_list (ACL_MDB *mdb, const char *tbl_name, int from, int limit) |
ACL_API int | acl_mdb_del (ACL_MDB *mdb, const char *tbl_name, const char *key_label, const char *key, void(*onfree_fn)(void *, unsigned int)) |
ACL_API int | acl_mdb_walk (ACL_MDB *mdb, const char *tbl_name, int(*walk_fn)(const void *, unsigned int), int from, int limit) |
ACL_API int | acl_mdb_cnt (ACL_MDB *mdb, const char *tbl_name) |
ACL_API ACL_MDT * | acl_mdt_create (const char *dbtype, const char *tbl_name, unsigned int tbl_flag, size_t init_capacity, const char *key_labels[], unsigned int flags[]) |
ACL_API void | acl_mdt_free (ACL_MDT *mdt) |
ACL_API ACL_MDT_NOD * | acl_mdt_add (ACL_MDT *mdt, void *data, unsigned int dlen, const char *key_labels[], const char *keys[]) |
ACL_API int | acl_mdt_probe (ACL_MDT *mdt, const char *key_label, const char *key) |
ACL_API ACL_MDT_RES * | acl_mdt_find (ACL_MDT *mdt, const char *key_label, const char *key, int from, int limit) |
ACL_API ACL_MDT_RES * | acl_mdt_list (ACL_MDT *mdt, int from, int limit) |
ACL_API int | acl_mdt_delete (ACL_MDT *mdt, const char *key_label, const char *key, void(*onfree_fn)(void *, unsigned int)) |
ACL_API int | acl_mdt_walk (ACL_MDT *mdt, int(*walk_fn)(const void *, unsigned int), int from, int len) |
ACL_API const void * | acl_mdt_fetch_row (ACL_MDT_RES *res) |
ACL_API int | acl_mdt_row_count (ACL_MDT_RES *res) |
ACL_API void | acl_mdt_res_free (ACL_MDT_RES *res) |
ACL_API int | acl_mdt_cnt (ACL_MDT *mdt) |
typedef struct ACL_MDT_IDX ACL_MDT_IDX |
typedef struct ACL_MDT_NOD ACL_MDT_NOD |
typedef struct ACL_MDT_REC ACL_MDT_REC |
typedef struct ACL_MDT_REF ACL_MDT_REF |
typedef struct ACL_MDT_RES ACL_MDT_RES |
ACL_API ACL_MDT_NOD* acl_mdb_add | ( | ACL_MDB * | mdb, |
const char * | tbl_name, | ||
void * | data, | ||
unsigned int | dlen, | ||
const char * | key_labels[], | ||
const char * | keys[] | ||
) |
添加一条新的数据记录
mdb | {ACL_MDB*} 数据库句柄 |
tbl_name | {const char*} 数据表名 |
data | {void*} 应用数据项 |
dlen | {unsigned int} data 的数据大小 |
key_labels | {const char *[]} 数据表字段名数组 |
keys | {const char *[]} 数据表字段名对应值数组 |
ACL_API int acl_mdb_cnt | ( | ACL_MDB * | mdb, |
const char * | tbl_name | ||
) |
数据库中某个数据表中元素总个数
mdb | {ACL_MDB*} 数据库句柄 |
tbl_name | {const char*} 数据表名 |
ACL_API ACL_MDB* acl_mdb_create | ( | const char * | dbname, |
const char * | dbtype | ||
) |
创建一个数据库句柄
dbname | {const char*} 数据库名 |
dbtype | {const char*} 数据库类型: hash/avl |
ACL_API int acl_mdb_del | ( | ACL_MDB * | mdb, |
const char * | tbl_name, | ||
const char * | key_label, | ||
const char * | key, | ||
void(*)(void *, unsigned int) | onfree_fn | ||
) |
从数据库中删除一条数据记录
mdb | {ACL_MDB*} 数据库句柄 |
tbl_name | {const char*} 数据表名 |
key_label | {const char*} 数据表字段名 |
key | {const char*} 数据表字段值 |
onfree_fn | {void (*)(void*, unsigned int)} 释放用户的对象时调用的释放回调函数 |
ACL_API ACL_MDT_RES* acl_mdb_find | ( | ACL_MDB * | mdb, |
const char * | tbl_name, | ||
const char * | key_label, | ||
const char * | key, | ||
int | from, | ||
int | limit | ||
) |
从数据库中查询符合条件的结果集
mdb | {ACL_MDB*} 数据库句柄 |
tbl_name | {const char*} 数据表名 |
key_label | {const char*} 数据表中的字段名 |
key | {const char*} 数据表中的字段值 |
from | {int} 查询的结果希望是从该位置开始进行存储 |
limit | {int} 查询的结果的最大希望个数 |
ACL_API void acl_mdb_free | ( | ACL_MDB * | mdb | ) |
关闭并释放一个内存数据库
mdb | {ACL_MDB*} 数据库句柄 |
ACL_API ACL_MDT_RES* acl_mdb_list | ( | ACL_MDB * | mdb, |
const char * | tbl_name, | ||
int | from, | ||
int | limit | ||
) |
从数据库中列出某数据表中某个范围的结果集
mdb | {ACL_MDB*} 数据库句柄 |
tbl_name | {const char*} 数据表名 |
from | {int} 查询的结果希望是从该位置开始进行存储 |
limit | {int} 查询的结果的最大希望个数 |
ACL_API int acl_mdb_probe | ( | ACL_MDB * | mdb, |
const char * | tbl_name, | ||
const char * | key_label, | ||
const char * | key | ||
) |
探测数据表中对应的字段值是否存在
mdb | {ACL_MDB*} 数据库句柄 |
tbl_name | {const char*} 数据表名 |
key_label | {const char*} 数据表索引字段名 |
key | {const char*} 数据表索引字段键值 |
ACL_API ACL_MDT* acl_mdb_tbl_create | ( | ACL_MDB * | mdb, |
const char * | tbl_name, | ||
unsigned int | tbl_flag, | ||
size_t | init_capacity, | ||
const char * | key_labels[], | ||
unsigned int | flags[] | ||
) |
在给定数据库上创建一个数据表
mdb | {ACL_MDB*} 数据库句柄 |
tbl_name | {const char*} 表名 |
tbl_flag | {unsigned int} 表的属性标志位 |
init_capacity | {size_t} 数据表内针对每个索引键的内部哈希表的初始化容量 |
key_labels | {const char *[]} 数据表字段名数组 |
flags | {unsigned int[]} 与 key_labels 相对应的约束标志位 |
ACL_API int acl_mdb_walk | ( | ACL_MDB * | mdb, |
const char * | tbl_name, | ||
int(*)(const void *, unsigned int) | walk_fn, | ||
int | from, | ||
int | limit | ||
) |
遍历数据库中某个数据表的所有数据结点
mdb | {ACL_MDB*} 数据库句柄 |
tbl_name | {const char*} 数据表名 |
walk_fn | 遍历回调函数,如果该函数返回非0值,则停止遍历 |
from | {int} 查询的结果希望是从该位置开始进行存储 |
limit | {int} 查询的结果的最大希望个数 |
ACL_API ACL_MDT_NOD* acl_mdt_add | ( | ACL_MDT * | mdt, |
void * | data, | ||
unsigned int | dlen, | ||
const char * | key_labels[], | ||
const char * | keys[] | ||
) |
向数据表中添加一条新的数据记录
mdt | {ACL_MDT*} 数据表句柄 |
data | {void*} 用户的动态数据, 如果表的 ACL_MDT_FLAG_DMR 标志位 未被设置,则将在内部拷贝一份该动态数据 |
dlen | {unsigned int} data 的数据长度 |
key_labels | {const char*[]} 数据表的索引字段名数组,以NULL结束 |
keys | {const char*[]} 数据表的索引字段值数组,以NULL结束 |
ACL_API int acl_mdt_cnt | ( | ACL_MDT * | mdt | ) |
数据表中所有元素的总数
mdt | {ACL_MDT*} 数据表句柄 |
ACL_API ACL_MDT* acl_mdt_create | ( | const char * | dbtype, |
const char * | tbl_name, | ||
unsigned int | tbl_flag, | ||
size_t | init_capacity, | ||
const char * | key_labels[], | ||
unsigned int | flags[] | ||
) |
创建一个数据表
dbtype | {const char *} 表类型: hash/avl |
tbl_name | {const char*} 表名 |
tbl_flag | {unsigned int} 表的属性标志位 |
init_capacity | {size_t} 每个内部哈希表的初始化容量 |
key_labels | {const char *[]} 表中的各个字段名数组,最后以NULL结束 |
flags | {unsigned int[]} 与 key_labels 相对应的约束标志位 |
ACL_API int acl_mdt_delete | ( | ACL_MDT * | mdt, |
const char * | key_label, | ||
const char * | key, | ||
void(*)(void *, unsigned int) | onfree_fn | ||
) |
从数据表中删除对应某个索引字段键值的结果集合
mdt | {ACL_MDT*} 数据表句柄 |
key_label | {const char*} 数据表索引字段名 |
key | {const char*} 数据表索引字段键值 |
onfree_fn | {void (*)(void*, unsigned int} 用户用来释放动态数据的回调函数 |
ACL_API const void* acl_mdt_fetch_row | ( | ACL_MDT_RES * | res | ) |
从所查询的结果集合中获取下一个数据结果
res | {ACL_MDT_RES*} 数据结果集合 |
ACL_API ACL_MDT_RES* acl_mdt_find | ( | ACL_MDT * | mdt, |
const char * | key_label, | ||
const char * | key, | ||
int | from, | ||
int | limit | ||
) |
从数据表中查询某个数据表索引键值的结果集合
mdt | {ACL_MDT*} 数据表句柄 |
key_label | {const char*} 数据表索引字段名 |
key | {const char*} 数据表索引字段键值 |
from | {int} 查询的结果希望是从该位置开始进行存储 |
limit | {int} 查询的结果的最大希望个数 |
ACL_API void acl_mdt_free | ( | ACL_MDT * | mdt | ) |
释放一个内存表
mdt | {ACL_MDT*} 内存数据表句柄 |
ACL_API ACL_MDT_RES* acl_mdt_list | ( | ACL_MDT * | mdt, |
int | from, | ||
int | limit | ||
) |
从数据表中顺序列出某个范围内的所有数据结点集合
mdt | {ACL_MDT*} 数据表句柄 |
from | {int} 查询的结果希望是从该位置开始进行存储 |
limit | {int} 查询的结果的最大希望个数 |
ACL_API int acl_mdt_probe | ( | ACL_MDT * | mdt, |
const char * | key_label, | ||
const char * | key | ||
) |
探测数据表中对应的字段值是否存在
mdt | {ACL_MDT*} 数据表句柄 |
key_label | {const char*} 数据表索引字段名 |
key | {const char*} 数据表索引字段键值 |
ACL_API void acl_mdt_res_free | ( | ACL_MDT_RES * | res | ) |
释放查询结果动态内存,但并不释放实际的数据结点
res | {ACL_MDT_RES*} 数据结果集合 |
ACL_API int acl_mdt_row_count | ( | ACL_MDT_RES * | res | ) |
获得查询结果集中的记录数
res | {ACL_MDT_RES*} 数据结果集合 |
ACL_API int acl_mdt_walk | ( | ACL_MDT * | mdt, |
int(*)(const void *, unsigned int) | walk_fn, | ||
int | from, | ||
int | len | ||
) |
遍历数据表的所有数据结点,并回调用户的处理函数
mdt | {ACL_MDT*} 数据表句柄 |
walk_fn | 回调函数,如果返回0则继续,否则停止遍历 |
from | {int} 查询的结果希望是从该位置开始进行存储 |
len | {int} 查询的结果的最大希望个数 |