メインページ | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcDeque.c

説明を見る。
00001 
00008 #include "dkcDeque.h"
00009 #include "dkcStdio.h"
00010 
00011 
00012 
00013 DKC_DEQUE* WINAPI dkcAllocDeque(size_t numof__,size_t offsetof__)
00014 {
00015     DKC_DEQUE *p;
00016     size_t size = numof__ * offsetof__;
00017 
00018     p = dkcAllocate(sizeof(DKC_DEQUE));
00019     if(NULL==p) return NULL;
00020 
00021     p->mBuffer = dkcAllocate(size);
00022     if(NULL==p->mBuffer) goto Error;
00023 
00024     /* dkcAllocateでmemset(0)なのでヽ(゚д゚)ノ ええじゃないか
00025     p->mCount = 0;
00026     p->mEnd = 0;
00027     p->mStart = 0;
00028     */
00029     p->mSize = size;
00030     p->mOffsetOf = offsetof__;
00031 Error:
00032     dkcFree(&p);
00033     return NULL;
00034 }
00035 
00036 int WINAPI dkcFreeDeque(DKC_DEQUE **ptr){
00037     if(NULL==ptr || NULL == (*ptr)) return edk_ArgumentException;
00038     dkcFree(&(*ptr)->mBuffer);
00039     return dkcFree(ptr);
00040 }
00041 #if 0
00042 
00043 
00044 int WINAPI dkcDequePushBack(DKC_DEQUE *ptr,const void *data)
00045 {
00046     BYTE *tb;
00047     dkcmNOT_ASSERT(NULL==ptr);
00048 
00049     if(ptr->mCount >= ptr->mSize / ptr->mOffsetOf){
00050         return edk_FAILED;
00051     }
00052 
00053     tb = ptr->mBuffer;
00054 
00055     memcpy(&tb[ptr->mEnd],data,ptr->mOffsetOf);
00056 
00057 
00058     ptr->mEnd += ptr->mOffsetOf;#error ここはmEndのlength checkが必要
00059     ptr->mCount++;
00060 
00061 
00062 }
00063 #endif
00064 
00067 int WINAPI dkcDequePopBack(DKC_DEQUE *ptr,void *);
00068 
00069 int WINAPI dkcDequePushFront(DKC_DEQUE *ptr,const void *);
00073 int WINAPI dkcDequePopFront(DKC_DEQUE *ptr,void *);
00077 void WINAPI dkcDequeClear(DKC_DEQUE *ptr);
00078 
00079 int WINAPI dkcDequeSerialize(const DKC_DEQUE *ptr,DKC_SERIALIZE *se);
00080 
00081 DKC_DEQUE* WINAPI dkcAllocQueueDeserialize(DKC_DESERIALIZE *se);
00082 
00089 int WINAPI dkcDequeGetPoint(const DKC_DEQUE *ptr,size_t point_of__,void *buffer,size_t buffsize);
00090 
00091 
00092 

dkutil_cに対してSun Jul 18 22:45:21 2004に生成されました。 doxygen 1.3.6