Main Page | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dkcCircularMemoryStream.h File Reference

環状バッファー boost::circular_streamみたいなもの かな? More...

#include "dkcMemoryStream.h"

Include dependency graph for dkcCircularMemoryStream.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Classes

struct  dkc_CircularMemoryStream

Typedefs

typedef dkc_CircularMemoryStream DKC_CIRCULAR_MEMORYSTREAM

Functions

DKC_EXTERN DKC_CIRCULAR_MEMORYSTREAM
*WINAPI 
dkcAllocCircularMemoryStream (size_t size)
DKC_EXTERN int WINAPI dkcFreeCircularMemoryStream (DKC_CIRCULAR_MEMORYSTREAM **ptr)
DKC_EXTERN int WINAPI dkcCircularMemoryStreamRead (DKC_CIRCULAR_MEMORYSTREAM *ptr, void *buffer, size_t size, size_t *readsize)
 streamをリードする。freadみたいなもの

DKC_EXTERN int WINAPI dkcCircularMemoryStreamReference (DKC_CIRCULAR_MEMORYSTREAM *ptr, void *buffer, size_t size, size_t *readsize)
 中を覗き見るだけ。引数についてはdkcCircularMemoryStreamRead()を見るべし。

DKC_EXTERN int WINAPI dkcCircularMemoryStreamWrite (DKC_CIRCULAR_MEMORYSTREAM *ptr, const void *buffer, size_t size)
 streamをライトする。fwriteみたいなもの

DKC_EXTERN int WINAPI dkcCircularMemoryStreamClear (DKC_CIRCULAR_MEMORYSTREAM *ptr)
 stream内のカウンタを0にして事実上すべてクリアーにする。

DKC_EXTERN DKC_CIRCULAR_MEMORYSTREAM
*WINAPI 
dkcAllocCircularMemoryStreamCopy (const DKC_CIRCULAR_MEMORYSTREAM *ptr)


Detailed Description

環状バッファー boost::circular_streamみたいなもの かな?

Since:
2004/3/xx
Note:

Typedef Documentation

typedef struct dkc_CircularMemoryStream DKC_CIRCULAR_MEMORYSTREAM
 

円型ストリーム(リングバッファデータ)構造体


Function Documentation

DKC_EXTERN DKC_CIRCULAR_MEMORYSTREAM* WINAPI dkcAllocCircularMemoryStream size_t  size  ) 
 

DKC_EXTERN DKC_CIRCULAR_MEMORYSTREAM* WINAPI dkcAllocCircularMemoryStreamCopy const DKC_CIRCULAR_MEMORYSTREAM ptr  ) 
 

DKC_CIRCULAR_MEMORYSTREAMをコピーする。 C++で言うコピーコンストラクタみたいなもの^^;

DKC_EXTERN int WINAPI dkcCircularMemoryStreamClear DKC_CIRCULAR_MEMORYSTREAM ptr  ) 
 

stream内のカウンタを0にして事実上すべてクリアーにする。

DKC_EXTERN int WINAPI dkcCircularMemoryStreamRead DKC_CIRCULAR_MEMORYSTREAM ptr,
void *  buffer,
size_t  size,
size_t *  readsize
 

streamをリードする。freadみたいなもの

Parameters:
readsize[out] 実際に読んだサイズを返す。NULLを渡してもOK.
Note:
・指定したサイズ(size)よりもストリームバッファのサイズが小さかった場合 readsizeに実際に読んだサイズを入れます。 ・Readしたデータは取り出したデータとして処理され、 そのバッファ内容は次のデータを保存する領域として再利用されます。 つまり、一度Readしたデータは二度と取り出せません。

DKC_EXTERN int WINAPI dkcCircularMemoryStreamReference DKC_CIRCULAR_MEMORYSTREAM ptr,
void *  buffer,
size_t  size,
size_t *  readsize
 

中を覗き見るだけ。引数についてはdkcCircularMemoryStreamRead()を見るべし。

DKC_EXTERN int WINAPI dkcCircularMemoryStreamWrite DKC_CIRCULAR_MEMORYSTREAM ptr,
const void *  buffer,
size_t  size
 

streamをライトする。fwriteみたいなもの

Note:
内部ストリームバッファは円型です。いわいるRingBufferって奴です。 dkcCircularMemoryStreamWriteしたらdkcCircularMemoryStreamReadしてデータを出してあげましょう。 そうしなければ、いずれ、円型バッファの有効データが一杯になってこの関数は失敗します。 C言語版 boost::circular_bufferみたいなものですね^^;(といいますか、また車輪の再開発してるし・・・。

DKC_EXTERN int WINAPI dkcFreeCircularMemoryStream DKC_CIRCULAR_MEMORYSTREAM **  ptr  ) 
 


Generated on Mon Apr 26 19:36:57 2004 for dkutil_c by doxygen 1.3.6