acl  3.5.3.0
acl_dbuf_pool.h 文件参考
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

类型定义

typedef struct ACL_DBUF_POOL ACL_DBUF_POOL
 

函数

ACL_API ACL_DBUF_POOLacl_dbuf_pool_create (size_t block_size)
 
ACL_API int acl_dbuf_pool_reset (ACL_DBUF_POOL *pool, size_t off)
 
ACL_API void acl_dbuf_pool_destroy (ACL_DBUF_POOL *pool)
 
ACL_API void * acl_dbuf_pool_alloc (ACL_DBUF_POOL *pool, size_t len)
 
ACL_API void * acl_dbuf_pool_calloc (ACL_DBUF_POOL *pool, size_t len)
 
ACL_API char * acl_dbuf_pool_strdup (ACL_DBUF_POOL *pool, const char *s)
 
ACL_API char * acl_dbuf_pool_strndup (ACL_DBUF_POOL *pool, const char *s, size_t len)
 
ACL_API void * acl_dbuf_pool_memdup (ACL_DBUF_POOL *pool, const void *addr, size_t len)
 
ACL_API int acl_dbuf_pool_free (ACL_DBUF_POOL *pool, const void *addr)
 
ACL_API int acl_dbuf_pool_keep (ACL_DBUF_POOL *pool, const void *addr)
 
ACL_API int acl_dbuf_pool_unkeep (ACL_DBUF_POOL *pool, const void *addr)
 
ACL_API void acl_dbuf_pool_test (size_t max)
 

类型定义说明

◆ ACL_DBUF_POOL

typedef struct ACL_DBUF_POOL ACL_DBUF_POOL

在文件 acl_dbuf_pool.h8 行定义.

函数说明

◆ acl_dbuf_pool_alloc()

ACL_API void* acl_dbuf_pool_alloc ( ACL_DBUF_POOL pool,
size_t  len 
)

分配指定长度的内存

参数
pool{ACL_DBUF_POOL*} 对象池对象
len{size_t} 需要分配的内存大小
返回
{void*} 新分配的内存地址

◆ acl_dbuf_pool_calloc()

ACL_API void* acl_dbuf_pool_calloc ( ACL_DBUF_POOL pool,
size_t  len 
)

分配指定长度的内存并将内存区域清零

参数
pool{ACL_DBUF_POOL*} 对象池对象
len{size_t} 需要分配的内存长度
返回
{void*} 新分配的内存地址

◆ acl_dbuf_pool_create()

ACL_API ACL_DBUF_POOL* acl_dbuf_pool_create ( size_t  block_size)

创建内存池对象

参数
block_size{size_t} 内存池中每个连续内存块的大小(字节)
返回
{ACL_DBUF_POOL*} 返回非 NULL 对象

◆ acl_dbuf_pool_destroy()

ACL_API void acl_dbuf_pool_destroy ( ACL_DBUF_POOL pool)

销毁内存池

参数
pool{ACL_DBUF_POOL*} 对象池对象

◆ acl_dbuf_pool_free()

ACL_API int acl_dbuf_pool_free ( ACL_DBUF_POOL pool,
const void *  addr 
)

归还由内存池分配的内存

参数
pool{ACL_DBUF_POOL*} 对象池对象
addr{const void*} 由内存池分配的内存地址
返回
{int} 如果该内存地址非内存池分配或释放多次,则返回 -1,操作成功则 返回 0

◆ acl_dbuf_pool_keep()

ACL_API int acl_dbuf_pool_keep ( ACL_DBUF_POOL pool,
const void *  addr 
)

保留由内存池分配的某段地址,以免当调用 reset 时被提前释放掉

参数
pool{ACL_DBUF_POOL*} 对象池对象
addr{const void*} 由内存池分配的内存地址
返回
{int} 操作成功则返回 0,如果该内存地址非内存池分配,则返回 -1

◆ acl_dbuf_pool_memdup()

ACL_API void* acl_dbuf_pool_memdup ( ACL_DBUF_POOL pool,
const void *  addr,
size_t  len 
)

根据输入的内存数据动态创建内存并将数据进行复制

参数
pool{ACL_DBUF_POOL*} 对象池对象
addr{const void*} 源数据内存地址
len{size_t} 源数据长度
返回
{void*} 新复制的数据地址

◆ acl_dbuf_pool_reset()

ACL_API int acl_dbuf_pool_reset ( ACL_DBUF_POOL pool,
size_t  off 
)

重置内存池状态,会将多余的内存数据块释放

参数
pool{ACL_DBUF_POOL*} 内存池对象
off{size_t} 要求保留的最小内存相对偏移位置
返回
{int} 返回 0 表示操作成功,非 0 表示失败

◆ acl_dbuf_pool_strdup()

ACL_API char* acl_dbuf_pool_strdup ( ACL_DBUF_POOL pool,
const char *  s 
)

根据输入的字符串动态创建新的内存并将字符串进行复制,类似于 strdup

参数
pool{ACL_DBUF_POOL*} 对象池对象
s{const char*} 源字符串
返回
{char*} 新复制的字符串地址

◆ acl_dbuf_pool_strndup()

ACL_API char* acl_dbuf_pool_strndup ( ACL_DBUF_POOL pool,
const char *  s,
size_t  len 
)

根据输入的字符串动态创建新的内存并将字符串进行复制,类似于 strdup

参数
pool{ACL_DBUF_POOL*} 对象池对象
s{const char*} 源字符串
len{size_t} 限定的最大字符串长度
返回
{char*} 新复制的字符串地址

◆ acl_dbuf_pool_test()

ACL_API void acl_dbuf_pool_test ( size_t  max)

内部测试用函数

◆ acl_dbuf_pool_unkeep()

ACL_API int acl_dbuf_pool_unkeep ( ACL_DBUF_POOL pool,
const void *  addr 
)

取消保留由内存池分配的某段地址,以便于调用 dbuf_reset 时被释放掉

参数
pool{ACL_DBUF_POOL*} 对象池对象
addr{const void*} 由内存池分配的内存地址
返回
{int} 操作成功则返回 0,如果该内存地址非内存池分配,则返回 -1