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

dkcMemoryPool.h

説明を見る。
00001 #ifndef DKC_MEMORY_POOL_H
00002 #define DKC_MEMORY_POOL_H
00003 
00004 #include "dkcOSIndependent.h"
00005 #include "dkcArrayOneByOne.h"
00006 
00007 typedef struct dkc_SameObjectPoolNode{
00009     void *pool;
00010 
00011     struct dkc_SameObjectPoolNode *next;
00012 
00013 }DKC_SAME_OBJECT_POOL_NODE;
00014 
00015 
00016 
00017 typedef struct dkc_SameObjectPool{
00019     size_t max_num;
00021     size_t now_num;
00023     size_t obj_size;
00024 
00026     DKC_SAME_OBJECT_POOL_NODE **recycle_pool;
00028     size_t recycle_size;
00030     BYTE *flag;
00031 
00032     //数珠プールの尻尾
00033     //DKC_SAME_OBJECT_POOL_NODE *tail;
00035     DKC_SAME_OBJECT_POOL_NODE *root;
00036 
00037 }DKC_SAME_OBJECT_POOL;
00038 
00039 
00040 
00041 enum{
00042     edkcSameObjectPool_Dynamic,
00043     edkcSameObjectPool_Static,
00044 };
00045 
00047 DKC_EXTERN DKC_SAME_OBJECT_POOL *WINAPI dkcAllocSameObjectPool(size_t object_size,size_t max_num,size_t recycle_size);
00048 
00051 DKC_EXTERN DKC_SAME_OBJECT_POOL *WINAPI dkcAllocSameObjectPoolDynamic(size_t object_size);
00052 
00054 DKC_EXTERN int WINAPI dkcFreeSameObjectPool(DKC_SAME_OBJECT_POOL **p);
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 DKC_EXTERN int WINAPI dkcSameObjectPoolReserve(DKC_SAME_OBJECT_POOL *p);
00075 
00077 #define dkcSameObjectPoolFree(p) dkcFree((void **)&(p));
00078 
00079 
00080 typedef struct dkc_MemoryPool{
00081     BYTE *mpool;
00082 
00084     DKC_ARRAY_ONEBYONE *mAobo;
00085 
00086 }DKC_MEMORY_POOL;
00087 
00088 
00089 DKC_EXTERN DKC_MEMORY_POOL *WINAPI dkcAllocMemoryPool(size_t poolsize,UINT flag);
00090 
00091 DKC_EXTERN int WINAPI dkcFreeMemoryPool(DKC_MEMORY_POOL **);
00092 
00093 
00094 DKC_EXTERN void *WINAPI dkcMemoryPoolAlloc(size_t size);
00095 
00096 DKC_EXTERN int WINAPI dkcMemoryPoolFree(void *p);
00097 
00098 DKC_EXTERN int WINAPI dkcMemoryPoolSafeFree(void **pp);
00099 
00100 #endif

dkutil_cに対してTue Dec 7 01:09:56 2004に生成されました。 doxygen 1.3.6