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

# dkcDeque.h

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

`#include "dkcOSIndependent.h"`

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

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

ソースコードを見る。

## 構成
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 | 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構造体

## 関数

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.c の 13 行で定義されています。 参照先 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 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 dkcFreeDeque | ( | DKC_DEQUE ** | ptr | ) |

| DKC_DEQUEをデリート dkcDeque.c の 36 行で定義されています。 参照先 dkcFree(), と NULL.
    00036                                         {
    00037     if(NULL==ptr || NULL == (*ptr)) return edk_ArgumentException;
    00038     dkcFree((void **)&(*ptr)->mBuffer);
    00039     return dkcFree((void **)ptr);
    00040 }