00001 00007 #ifndef DKUTIL_C_QUEUE_H 00008 #define DKUTIL_C_QUEUE_H 00009 00010 #include "dkcOSIndependent.h" 00011 00012 00016 typedef struct dkc_Queue{ 00018 BYTE *mBuffer; 00020 size_t mSize; 00022 size_t mEntrance,mExit; 00024 size_t mOffsetOf; 00026 size_t mCounter; 00027 }DKC_QUEUE; 00028 00029 00030 00036 00037 DKC_EXTERN DKC_QUEUE* WINAPI dkcAllocQueue(size_t numof__,size_t offsetof__); 00043 00044 DKC_EXTERN int WINAPI dkcFreeQueue(DKC_QUEUE **ptr); 00045 00046 00051 DKC_EXTERN int WINAPI dkcQueuePush(DKC_QUEUE *ptr,const void *); 00052 00053 DKC_EXTERN int WINAPI dkcQueueDynamicPush(DKC_QUEUE *ptr,const void *); 00057 DKC_EXTERN void WINAPI dkcQueuePop(DKC_QUEUE *ptr); 00058 00059 DKC_EXTERN int WINAPI dkcQueueTop(DKC_QUEUE *ptr,void *); 00060 00061 00062 DKC_EXTERN size_t WINAPI dkcQueueSize(DKC_QUEUE*ptr); 00063 00064 DKC_EXTERN BOOL WINAPI dkcQueueIsEmpty(DKC_QUEUE *ptr); 00068 DKC_EXTERN void WINAPI dkcQueueClear(DKC_QUEUE *ptr); 00069 00070 //DKC_EXTERN int WINAPI dkcQueueSerialize(const DKC_QUEUE *ptr,DKC_SERIALIZE *se); 00071 00072 //DKC_EXTERN DKC_QUEUE* WINAPI dkcAllocQueueDeserialize(DKC_DESERIALIZE *se); 00073 00080 DKC_EXTERN int WINAPI dkcQueueGetPoint(const DKC_QUEUE *ptr,size_t point_of__,void *buffer,size_t buffsize); 00081 00082 /* 00083 #ifndef DKUTIL_C_QUEUE_C 00084 # include "dkcQueue.c" 00085 #endif 00086 */ 00087 #endif //end of include once