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

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 
00033 DKC_EXTERN DKC_SAME_OBJECT_POOL *WINAPI 
00034     dkcAllocSameObjectPool(size_t object_size,size_t max_num,
00035                                                 DKC_ALLOC_FUNC_TYPE alloc_f,DKC_FREE_FUNC_TYPE free_f);
00036 
00037 
00038 
00041 DKC_EXTERN DKC_SAME_OBJECT_POOL *WINAPI dkcAllocSameObjectPoolAuto(size_t object_size);
00042 
00043 
00044 
00046 DKC_EXTERN int WINAPI dkcFreeSameObjectPool(DKC_SAME_OBJECT_POOL **p);
00047 
00048 /*
00050 DKC_EXTERN int WINAPI 
00051     dkcSameObjectPoolInit(DKC_SAME_OBJECT_POOL *p,size_t object_size,size_t max_num,DKC_ALLOC_FUNC_TYPE func);
00052 
00054 DKC_EXTERN int WINAPI dkcSameObjectPoolUninit((DKC_SAME_OBJECT_POOL *p,DKC_FREE_FUNC_TYPE func);
00055 */
00061 
00062 DKC_EXTERN void *dkcSameObjectPoolAlloc(DKC_SAME_OBJECT_POOL *p);
00063 
00070 
00071 
00072 DKC_EXTERN void WINAPI dkcSameObjectPoolRecycle(DKC_SAME_OBJECT_POOL *p, void *pv);
00073 
00074 
00075 DKC_EXTERN int WINAPI dkcSameObjectPoolReserve(DKC_SAME_OBJECT_POOL *p);
00076 
00078 #define dkcSameObjectPoolFree(p) dkcFree((void **)&(p))
00079 
00080 #if 0
00081 
00082 
00083 typedef struct dkc_MemoryPool{
00084     BYTE *mpool;
00085 
00087     DKC_ARRAY_ONEBYONE *mAobo;
00088 
00089 }DKC_MEMORY_POOL;
00090 
00091 
00092 DKC_EXTERN DKC_MEMORY_POOL *WINAPI dkcAllocMemoryPool(size_t poolsize,UINT flag);
00093 
00094 DKC_EXTERN int WINAPI dkcFreeMemoryPool(DKC_MEMORY_POOL **);
00095 
00096 
00097 DKC_EXTERN void *WINAPI dkcMemoryPoolAlloc(size_t size);
00098 
00099 DKC_EXTERN int WINAPI dkcMemoryPoolFree(void *p);
00100 
00101 DKC_EXTERN int WINAPI dkcMemoryPoolSafeFree(void **pp);
00102 
00103 #endif
00104 
00105 #endif

dkutil_cに対してSat Sep 10 09:23:55 2005に生成されました。  doxygen 1.4.4