00001 00005 #ifndef dkutil_c_Deque__h 00006 #define dkutil_c_Deque__h 00007 00008 #include "dkcOSIndependent.h" 00009 #include "dkcSerialize.h" 00010 00014 typedef struct dkc_Deque{ 00016 BYTE *mBuffer; 00018 size_t mSize; 00020 size_t mOffsetOf; 00022 size_t mStart,mEnd; 00024 size_t mCount; 00025 }DKC_DEQUE; 00026 00027 00033 00034 DKC_EXTERN DKC_DEQUE* WINAPI dkcAllocDeque(size_t numof__,size_t offsetof__); 00038 DKC_EXTERN int WINAPI dkcFreeDeque(DKC_DEQUE **ptr); 00039 00040 00045 DKC_EXTERN int WINAPI dkcDequePushBack(DKC_DEQUE *ptr,const void *); 00049 DKC_EXTERN int WINAPI dkcDequePopBack(DKC_DEQUE *ptr,void *); 00050 00051 DKC_EXTERN int WINAPI dkcDequePushFront(DKC_DEQUE *ptr,const void *); 00055 DKC_EXTERN int WINAPI dkcDequePopFront(DKC_DEQUE *ptr,void *); 00059 DKC_EXTERN void WINAPI dkcDequeClear(DKC_DEQUE *ptr); 00060 00061 DKC_EXTERN int WINAPI dkcDequeSerialize(const DKC_DEQUE *ptr,DKC_SERIALIZE *se); 00062 00063 DKC_EXTERN DKC_DEQUE* WINAPI dkcAllocDequeDeserialize(DKC_DESERIALIZE *se); 00064 00071 DKC_EXTERN int WINAPI dkcDequeGetPoint(const DKC_DEQUE *ptr,size_t point_of__,void *buffer,size_t buffsize); 00072 00073 00074 00075 00076 #endif //end of include once