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

dkcDeque.c

#include "dkcDeque.h"
#include "dkcStdio.h"

dkcDeque.cのインクルード依存関係図

Include dependency graph

ソースコードを見る。

マクロ定義

#define DKUTIL_C_DEQUE_C

関数

DKC_DEQUE *WINAPI dkcAllocDeque (size_t numof__, size_t offsetof__)
 キュー領域を得る。

int WINAPI dkcFreeDeque (DKC_DEQUE **ptr)
int WINAPI dkcDequePopBack (DKC_DEQUE *ptr, void *)
int WINAPI dkcDequePushFront (DKC_DEQUE *ptr, const void *)
int WINAPI dkcDequePopFront (DKC_DEQUE *ptr, void *)
void WINAPI dkcDequeClear (DKC_DEQUE *ptr)
int WINAPI dkcDequeSerialize (const DKC_DEQUE *ptr, DKC_SERIALIZE *se)
DKC_DEQUE *WINAPI dkcAllocQueueDeserialize (DKC_DESERIALIZE *se)
int WINAPI dkcDequeGetPoint (const DKC_DEQUE *ptr, size_t point_of__, void *buffer, size_t buffsize)


説明

作者:
d金魚 @

dkcDeque.c で定義されています。


マクロ定義

#define DKUTIL_C_DEQUE_C
 

dkcDeque.c7 行で定義されています。


関数

DKC_DEQUE* WINAPI dkcAllocDeque size_t  numof__,
size_t  offsetof__
 

キュー領域を得る。

引数:
numof__[in] double ended queueに使う配列の要素の数
offsetof__[in] double ended queueにぶち込むデータのサイズ
戻り値:
double ended queueハンドルへのポインタ。

dkcDeque.c13 行で定義されています。

参照先 DKC_DEQUE, dkcAllocate(), dkcFree(), dkc_Deque::mBuffer, dkc_Deque::mOffsetOf, dkc_Deque::mSize, と NULL.

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((void **)&p);
00033     return NULL;
00034 }

DKC_DEQUE* WINAPI dkcAllocQueueDeserialize DKC_DESERIALIZE se  ) 
 

dkcQueue.c178 行で定義されています。

00178                                                                {
00179     DKC_QUEUE *p;
00180     DKC_QUEUE t;
00181     size_t read;
00182     int id;
00183     
00184     dkcDeserializeRead(se,&id,sizeof(id),&read);
00185     if(id !=  edkcSerializeIDQueue)
00186     {
00187         return NULL;
00188     }
00189     dkcDeserializeRead(se,&t,sizeof(t),&read);
00190     
00191     p = dkcAllocQueue(t.mSize,t.mOffsetOf);
00192     if(NULL==p) return NULL;
00193 
00194     p->mEntrance = t.mEntrance;
00195     p->mExit = t.mExit;
00196     dkcDeserializeRead(se,p->mBuffer,p->mSize,&read);
00197     
00198     dkcmNOT_ASSERT(read != p->mSize);
00199     
00200     return p;
00201 }

void WINAPI dkcDequeClear DKC_DEQUE ptr  ) 
 

キューをクリアする。

int WINAPI dkcDequeGetPoint const DKC_DEQUE ptr,
size_t  point_of__,
void *  buffer,
size_t  buffsize
 

引数:
ptr[in] queue
point_of__[in] ポイント
buffer[in] バッファへのポインタ
buffsize[in] バッファのサイズ

int WINAPI dkcDequePopBack DKC_DEQUE ptr,
void * 
 

引数:
id[in] 同じidを二回解放するとバグリます。

int WINAPI dkcDequePopFront DKC_DEQUE ptr,
void * 
 

int WINAPI dkcDequePushFront DKC_DEQUE ptr,
const void * 
 

int WINAPI dkcDequeSerialize const DKC_DEQUE ptr,
DKC_SERIALIZE se
 

int WINAPI dkcFreeDeque DKC_DEQUE **  ptr  ) 
 

DKC_DEQUEをデリート

dkcDeque.c36 行で定義されています。

参照先 DKC_DEQUE, dkcFree(), と NULL.

00036                                         {
00037     if(NULL==ptr || NULL == (*ptr)) return edk_ArgumentException;
00038     dkcFree((void **)&(*ptr)->mBuffer);
00039     return dkcFree((void **)ptr);
00040 }


dkutil_cに対してTue Feb 22 02:02:12 2005に生成されました。 doxygen 1.3.6