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

# dkcBuffer.c

`#include "dkcBuffer.h"`

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

ソースコードを見る。

## マクロ定義
#define | DKUTIL_C_BUFFER_C
## 関数
DKC_BUFFER *WINAPI | dkcAllocBuffer (const void *data, size_t size)
| バッファ領域を得る。
int WINAPI | dkcFreeBuffer (DKC_BUFFER **ptr)
| dkcAllocBuffer()で確保したリスト領域と内部バッファを削除。dkcAllocBufferと対。
int WINAPI | dkcBufferSet (DKC_BUFFER *ptr, const void *data, size_t size)
int WINAPI | dkcBufferSetOffset (DKC_BUFFER *ptr, const void *data, size_t size, size_t offset)
| バッファの先頭からoffset分の所にdataをぶち込む
int WINAPI | dkcBufferGet (DKC_BUFFER *ptr, void *data, size_t size)
int WINAPI | dkcBufferGetOffset (DKC_BUFFER *ptr, void *data, size_t size, size_t offset)
int WINAPI | dkcBufferResize (DKC_BUFFER *ptr, size_t size)
DKC_BUFFER *WINAPI | dkcAllocBufferCopy (const DKC_BUFFER *ptr)
| C++で言うcopy constructor
size_t WINAPI | dkcBufferSize (DKC_BUFFER *p)
| バッファのサイズ
BYTE *WINAPI | dkcBufferPointer (DKC_BUFFER *p)

## 説明

作者:
  d金魚

から:
  2004/3/xx

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

## マクロ定義

#define DKUTIL_C_BUFFER_C

| dkcBuffer.c の 7 行で定義されています。

## 関数

DKC_BUFFER* WINAPI dkcAllocBuffer | ( | const void * | data,
|  | size_t | size
| ) |

  | バッファ領域を得る。 引数:
  | data[in] | バッファへコピーしたいデータへのポインタ
  | size[in] | バッファのサイズ（dataのサイズ）
dkcBuffer.c の 13 行で定義されています。 参照先 BYTE, dkcAllocate(), dkcBufferSet(), dkcFree(), dkc_Buffer::mBuff, dkc_Buffer::mSize, と NULL. 参照元 dkcAllocArrayOneByOne(), dkcAllocBufferCopy_INL(), dkcAllocDCF_Version01_SNOW2(), dkcAllocSingleListBuffer(), と dkcOpenFileWithSignature().
    00013                                                                {
    00014     DKC_BUFFER *p;
    00015
    00016     if(0==size) return NULL;
    00017
    00018     p = (DKC_BUFFER *)dkcAllocate(sizeof(DKC_BUFFER));
    00019     if(NULL==p) return NULL;
    00020
    00021
    00022     p->mBuff = (BYTE *)dkcAllocate(size);
    00023     if(NULL==p->mBuff) goto Error;
    00024
    00025     p->mSize = size;
    00026
    00027     if(data){
    00028         if(DKUTIL_FAILED(dkcBufferSet(p,data,size))){
    00029             goto Error;
    00030         }
    00031     }else{
    00032
    00033     }
    00034     return p;
    00035 Error:
    00036     dkcFree((void **)&p);
    00037     return NULL;
    00038 }

DKC_BUFFER* WINAPI dkcAllocBufferCopy | ( | const DKC_BUFFER * | ptr | ) |

| C++で言うcopy constructor dkcBuffer.c の 79 行で定義されています。 参照先 dkcAllocBufferCopy_INL().
    00079                                                             {
    00080     return dkcAllocBufferCopy_INL(ptr);
    00081 }

int WINAPI dkcBufferGet | ( | DKC_BUFFER * | ptr,
|  | void * | data,
|  | size_t | size
| ) |

| バッファの先頭からsize分データをいただく dkcBuffer.c の 63 行で定義されています。 参照先 dkcBufferGet_INL().
    00063                                                                {
    00064     return dkcBufferGet_INL(ptr,data,size);
    00065 }

int WINAPI dkcBufferGetOffset | ( | DKC_BUFFER * | ptr,
|  | void * | data,
|  | size_t | size,
|  | size_t | offset
| ) |

| dkcBuffer.c の 67 行で定義されています。 参照先 dkcBufferGetOffset_INL(). 参照元 dkcArrayOneByOneReference().
    00068                                                                                                  {
    00069     return dkcBufferGetOffset_INL(ptr,data,size,offset);
    00070 }

BYTE* WINAPI dkcBufferPointer | ( | DKC_BUFFER * | p | ) |

| dkcBuffer.c の 86 行で定義されています。 参照先 dkcBufferPointer_INL(). 参照元 dkcFileWithSignatureCheckCheat(), と FileWithSignatureGetDigest().
    00086                                             {
    00087     return dkcBufferPointer_INL(p);
    00088 }

int WINAPI dkcBufferResize | ( | DKC_BUFFER * | ptr,
|  | size_t | size
| ) |

| バッファのサイズを変える。 dkcBuffer.c の 72 行で定義されています。 参照先 dkcBufferResize_INL(). 参照元 BufferResize().
    00073 {
    00074     return dkcBufferResize_INL(ptr,size);
    00075 }

int WINAPI dkcBufferSet | ( | DKC_BUFFER * | ptr,
|  | const void * | data,
|  | size_t | size
| ) |

| バッファの先頭にdataをぶち込む dkcBuffer.c の 49 行で定義されています。 参照先 dkcBufferSet_INL(). 参照元 dkcAllocBuffer().
    00050 {
    00051     return dkcBufferSet_INL(ptr,data,size);
    00052 }

int WINAPI dkcBufferSetOffset | ( | DKC_BUFFER * | ptr,
|  | const void * | data,
|  | size_t | size,
|  | size_t | offset
| ) |

| バッファの先頭からoffset分の所にdataをぶち込む dkcBuffer.c の 55 行で定義されています。 参照先 dkcBufferSetOffset_INL(). 参照元 setData().
    00056                                                                                                        {
    00057     return dkcBufferSetOffset_INL(ptr,data,size,offset);
    00058 }

size_t WINAPI dkcBufferSize | ( | DKC_BUFFER * | p | ) |

| バッファのサイズ dkcBuffer.c の 83 行で定義されています。 参照先 dkcBufferSize_INL(). 参照元 BufferResize(), dkcFileWithSignatureCheckCheat(), と FileWithSignatureGetDigest().
    00083                                           {
    00084     return dkcBufferSize_INL(p);
    00085 }

int WINAPI dkcFreeBuffer | ( | DKC_BUFFER ** | ptr | ) |

| dkcAllocBuffer()で確保したリスト領域と内部バッファを削除。dkcAllocBufferと対。 DKC_BUFFERをデリート 覚え書き: 必ず使用したあとはこれを呼んでください。 dkcBuffer.c の 40 行で定義されています。 参照先 dkcFree(), と NULL. 参照元 dkcAllocArrayOneByOne(), dkcCloseFileWithSignature(), dkcFreeArrayOneByOne(), と dkcFreeDCF01().
    00040                                           {
    00041     if(NULL==ptr || NULL==*ptr) return edk_ArgumentException;
    00042     dkcFree((void **)&(*ptr)->mBuff);
    00043     dkcFree((void **)ptr);
    00044     return edk_SUCCEEDED;
    00045 }