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

dkcDeque.h

std::deque見たいな物を目指そうとしたが、すでに作る気梨・・・。どちら様かソースを寄付していただけないでしょうか? [詳細]

#include "dkcOSIndependent.h"
#include "dkcSerialize.h"

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

Include dependency graph

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

Included by dependency graph

ソースコードを見る。

構成

struct  dkc_Deque

型定義

typedef dkc_Deque DKC_DEQUE

関数

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

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


説明

std::deque見たいな物を目指そうとしたが、すでに作る気梨・・・。どちら様かソースを寄付していただけないでしょうか?

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


型定義

typedef struct dkc_Deque DKC_DEQUE
 

double ended queue構造体

参照元 dkcAllocDeque(), と dkcFreeDeque().


関数

DKC_EXTERN 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_EXTERN DKC_DEQUE* WINAPI dkcAllocDequeDeserialize DKC_DESERIALIZE se  ) 
 

DKC_EXTERN void WINAPI dkcDequeClear DKC_DEQUE ptr  ) 
 

キューをクリアする。

DKC_EXTERN 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] バッファのサイズ

DKC_EXTERN int WINAPI dkcDequePopBack DKC_DEQUE ptr,
void * 
 

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

DKC_EXTERN int WINAPI dkcDequePopFront DKC_DEQUE ptr,
void * 
 

DKC_EXTERN int WINAPI dkcDequePushBack DKC_DEQUE ptr,
const void * 
 

覚え書き:

DKC_EXTERN int WINAPI dkcDequePushFront DKC_DEQUE ptr,
const void * 
 

DKC_EXTERN int WINAPI dkcDequeSerialize const DKC_DEQUE ptr,
DKC_SERIALIZE se
 

DKC_EXTERN int WINAPI dkcFreeDeque DKC_DEQUE **  ptr  ) 
 

DKC_DEQUEをデリート

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

参照先 DKC_DEQUE, dkcFree(), edk_ArgumentException, と 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 Dec 7 01:10:11 2004に生成されました。 doxygen 1.3.6