メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcMemoryPool.h

説明を見る。
00001 #ifndef DKC_MEMORY_POOL_H
00002 #define DKC_MEMORY_POOL_H
00003 
00004 #include "dkcOSIndependent.h"
00005 
00006 
00007 typedef struct dkc_SameObjectPoolNode{
00008     struct dkc_SameObjectPoolNode *next;
00009 }DKC_SAME_OBJECT_POOL_NODE;
00010 
00011 
00012 
00013 typedef struct dkc_SameObjectPool{
00015     size_t max_num;
00017     size_t now_num;
00019     size_t obj_size;
00020 
00022     DKC_SAME_OBJECT_POOL_NODE *root;
00023     DKC_SAME_OBJECT_POOL_NODE *tail;
00024 
00025     DKC_ALLOC_FUNC_TYPE alloc_f;
00026     DKC_FREE_FUNC_TYPE free_f;
00027 
00028 }DKC_SAME_OBJECT_POOL;
00029 
00030 
00031 
00038 DKC_EXTERN DKC_SAME_OBJECT_POOL *WINAPI 
00039     dkcAllocSameObjectPool(size_t object_size,size_t max_num,
00040                                                 DKC_ALLOC_FUNC_TYPE alloc_f,DKC_FREE_FUNC_TYPE free_f);
00041 
00042 
00043 
00046 DKC_EXTERN DKC_SAME_OBJECT_POOL *WINAPI dkcAllocSameObjectPoolAuto(size_t object_size);
00047 
00048 
00049 
00051 DKC_EXTERN int WINAPI dkcFreeSameObjectPool(DKC_SAME_OBJECT_POOL **p);
00052 
00053 /*
00055 DKC_EXTERN int WINAPI 
00056     dkcSameObjectPoolInit(DKC_SAME_OBJECT_POOL *p,size_t object_size,size_t max_num,DKC_ALLOC_FUNC_TYPE func);
00057 
00059 DKC_EXTERN int WINAPI dkcSameObjectPoolUninit((DKC_SAME_OBJECT_POOL *p,DKC_FREE_FUNC_TYPE func);
00060 */
00066 
00067 DKC_EXTERN void *dkcSameObjectPoolAlloc(DKC_SAME_OBJECT_POOL *p);
00068 
00075 
00076 
00077 DKC_EXTERN void WINAPI dkcSameObjectPoolRecycle(DKC_SAME_OBJECT_POOL *p, void *pv);
00078 
00079 
00080 DKC_EXTERN int WINAPI dkcSameObjectPoolReserve(DKC_SAME_OBJECT_POOL *p);
00081 
00083 #define dkcSameObjectPoolFree(p) dkcFree((void **)&(p))
00084 
00085 #if 0
00086 
00087 
00088 typedef struct dkc_MemoryPool{
00089     BYTE *mpool;
00090 
00092     DKC_ARRAY_ONEBYONE *mAobo;
00093 
00094 }DKC_MEMORY_POOL;
00095 
00096 
00097 DKC_EXTERN DKC_MEMORY_POOL *WINAPI dkcAllocMemoryPool(size_t poolsize,UINT flag);
00098 
00099 DKC_EXTERN int WINAPI dkcFreeMemoryPool(DKC_MEMORY_POOL **);
00100 
00101 
00102 DKC_EXTERN void *WINAPI dkcMemoryPoolAlloc(size_t size);
00103 
00104 DKC_EXTERN int WINAPI dkcMemoryPoolFree(void *p);
00105 
00106 DKC_EXTERN int WINAPI dkcMemoryPoolSafeFree(void **pp);
00107 
00108 #endif
00109 
00110 #endif

dkutil_cに対してMon Jan 16 00:39:48 2006に生成されました。  doxygen 1.4.4