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 |