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