acl
3.5.3.0
|
#include <dbuf_pool.hpp>
Public 成员函数 | |
dbuf_pool () | |
void | destroy () |
void * | operator new (size_t size, size_t nblock=2) |
void | operator delete (void *ptr) |
bool | dbuf_reset (size_t reserve=0) |
void * | dbuf_alloc (size_t len) |
void * | dbuf_calloc (size_t len) |
char * | dbuf_strdup (const char *s) |
char * | dbuf_strndup (const char *s, size_t len) |
void * | dbuf_memdup (const void *addr, size_t len) |
bool | dbuf_free (const void *addr) |
bool | dbuf_keep (const void *addr) |
bool | dbuf_unkeep (const void *addr) |
ACL_DBUF_POOL * | get_dbuf () |
~dbuf_pool () | |
会话类的内存链管理类,该类仅提供内存分配函数,在整个类对象被析构时该内存链 会被一次性地释放,该类适合于需要频繁分配一些大小不等的小内存的应用; 该类实际上是封装了 lib_acl 中的 ACL_DBUF_POOL 结构及方法
在文件 dbuf_pool.hpp 第 17 行定义.
acl::dbuf_pool::dbuf_pool | ( | ) |
该类对象必须动态创建
acl::dbuf_pool::~dbuf_pool | ( | ) |
void* acl::dbuf_pool::dbuf_alloc | ( | size_t | len | ) |
分配指定长度的内存
len | {size_t} 需要分配的内存长度,当内存比较小时(小于构造函数 中的 block_size)时,所分配的内存是在 dbuf_pool 所管理的内存链上, 当内存较大时会直接使用 malloc 进行分配 |
void* acl::dbuf_pool::dbuf_calloc | ( | size_t | len | ) |
分配指定长度的内存并将内存区域清零
len | {size_t} 需要分配的内存长度 |
bool acl::dbuf_pool::dbuf_free | ( | const void * | addr | ) |
归还由内存池分配的内存
addr | {const void*} 由内存池分配的内存地址 |
bool acl::dbuf_pool::dbuf_keep | ( | const void * | addr | ) |
保留由内存池分配的某段地址,以免当调用 dbuf_reset 时被提前释放掉
addr | {const void*} 由内存池分配的内存地址 |
void* acl::dbuf_pool::dbuf_memdup | ( | const void * | addr, |
size_t | len | ||
) |
根据输入的内存数据动态创建内存并将数据进行复制
addr | {const void*} 源数据内存地址 |
len | {size_t} 源数据长度 |
bool acl::dbuf_pool::dbuf_reset | ( | size_t | reserve = 0 | ) |
重置内存池的状态以便于重复使用该内存池对象
reserve | {size_t} 若该值 > 0,则需要指定额外保留的内存大小, 该大小必须小于等于已经在该内存池对象分配的大小 |
char* acl::dbuf_pool::dbuf_strdup | ( | const char * | s | ) |
根据输入的字符串动态创建新的内存并将字符串进行复制,类似于 strdup
s | {const char*} 源字符串 |
char* acl::dbuf_pool::dbuf_strndup | ( | const char * | s, |
size_t | len | ||
) |
根据输入的字符串动态创建新的内存并将字符串进行复制,类似于 strdup
s | {const char*} 源字符串 |
len | {size_t} 限制所复制字符串的最大长度 |
bool acl::dbuf_pool::dbuf_unkeep | ( | const void * | addr | ) |
取消保留由内存池分配的某段地址,以便于调用 dbuf_reset 时被释放掉
addr | {const void*} 由内存池分配的内存地址 |
void acl::dbuf_pool::destroy | ( | ) |
该类对象必须要动态创建,所以隐藏了析构函数,使用者需要调用 destroy 函数来销毁动态对象
|
inline |
void acl::dbuf_pool::operator delete | ( | void * | ptr | ) |
void* acl::dbuf_pool::operator new | ( | size_t | size, |
size_t | nblock = 2 |
||
) |