XMemPool(ulong chunkSize)

原型 XMemPool(ulong chunkSize)
描述 在变长模式下构造XMemPool对象
参数 [i]ulong ulSize:chunk的大小,其范围[MIN_CHUNK_SIZE, MAX_CHUNK_SIZE]
返回值

XMemPool(ulong unitCnt,ulong unitSize)

原型 XMemPool(ulong unitCnt,ulong unitSize)
描述 在定长模式下构造XMemPool对象
参数 [i]ulong ulUnitCount:每个内存块含有的Block的个数,其范围[1, MAX_CHUNK_SIZE/MIN_BLOCK_SIZE – 2]
[i]ulong ulUnitSize [in]:每个Block所占用的内存大小,其范围[1, MAX_BLOCK_SIZE]
返回值

void * alloc(ulong size)

原型 void * alloc(ulong size)
描述 变长模式下从池中分配大小为size的内存,定长模式下分配一个unit
参数 [i]ulong ulUnitCount:每个内存块含有的Block的个数,其范围[1, MAX_CHUNK_SIZE/MIN_BLOCK_SIZE – 2]
返回值 若分配成功则返回分配的内存地址,若失败则返回NULL

void * allocUnit()

原型 void * allocUnit()
描述 从内存池中分配一个unit的内存
参数
返回值 在变长模式下返回NULL,在定长模式下若成功分配返回unit内存地址,若失败返回NULL

void release(void * p,ulong size = 0)

原型 void release(void * p,ulong size = 0)
描述 释放指定的内存,如果该内存是从内存池中申请的,则返回给内存池,添加到相应的RBL中;如果该内存是从系统申请,则返回给系统。
参数 [i]void * p : 需要释放的内存地址
[i]ulong size : 需要释放的内存大小,取值下限为1
返回值

void dumpPool(const char * fname)

原型 void dumpPool(const char * fname)
描述 将内存内容写出到名字为fname的文件中
参数 [i]const char * fname:用于dump的文件路径名
返回值

void reset()

原型 void reset()
描述 将内存池置于初始状态(仅有一个未分配的Chunk)
参数
返回值

bool isInPool(void * p)

原型 bool isInPool(void * p)
描述 判断指定地址是否在内存池中
参数 [i]void * p : 需要判断的内存地址
返回值 若在内存池中返回true,否则返回false

XMemPool(XMemPool &)

原型 XMemPool(XMemPool &)
描述 禁止复制构造
参数 [i]XMemPool &:另外一个XMemPool的引用
返回值

void operator = (XMemPool &)

原型 void operator = (XMemPool &)
描述 禁止拷贝构造
参数 [i]XMemPool &:另外一个XMemPool的引用
返回值

void * addChunk()

原型 void * addChunk()
描述 从系统中申请一个chunk添加到内存池中
参数
返回值 若申请成功则返回该chunk的地址,否则返回NULL

void addToRBL(void * p, ulong size)

原型 void addToRBL(void * p, ulong size)
描述 在变长模式下将大小为size的内存p放入到内存池RBL中
参数 [i]void * p : 需要放回的内存
[i]ulong ulSize : 放回的内存大小
返回值

void addUnitToRBL(void *p)

原型 void addUnitToRBL(void *p)
描述 在定长模式下将内存p放入到内存池RBL中
参数 [i]void * p : 需要放回的Unit
返回值

void * allocFromRBL(ulong size)

原型 void * allocFromRBL(ulong size)
描述 在变长模式下从内存池的RBL中分配大小为ulSize的内存
参数 [i]ulong ulSize : 需要分配的内存大小
返回值 若在可重分配内存块中找到匹配的Block则返回该Block的内存地址,否则返回NULL