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

# dkcCircularStream.h File Reference

`#include "dkcStream.h"`

Include dependency graph for dkcCircularStream.h:

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

Go to the source code of this file.

## Classes
struct | dkc_CircularStream
| 円型ストリーム（リングバッファデータ）構造体 More...
## Typedefs
typedef dkc_CircularStream | DKC_CIRCULARSTREAM
| 円型ストリーム（リングバッファデータ）構造体
## Enumerations
enum | edkcCircularStream { edkcCircularStreamInitBuffer = edkcStreamInitBuffer, edkcCircularStreamInitFile = edkcStreamInitFile, edkcCircularStreamDumpAll, edkcCircularStreamDumpEnable }
## Functions
DKC_EXTERN DKC_CIRCULARSTREAM *WINAPI | dkcAllocNewCircularStream (size_t size, short mode, const char *filename, const char *openmode)
DKC_EXTERN int WINAPI | dkcFreeDeleteCircularStream (DKC_CIRCULARSTREAM **ptr)
DKC_EXTERN int WINAPI | dkcNewCircularStream (DKC_CIRCULARSTREAM *ptr, size_t size)
DKC_EXTERN int WINAPI | dkcNewCircularStreamForFile (DKC_CIRCULARSTREAM *ptr, size_t size, const char *filename, const char *openmode)
DKC_EXTERN int WINAPI | dkcDeleteCircularStream (DKC_CIRCULARSTREAM *ptr)
| circular streamをデリート fcloseみたいなもの　note 必ずストリームを使用したあとはこれを呼んでください。
DKC_EXTERN int WINAPI | dkcCircularStreamRead (DKC_CIRCULARSTREAM *ptr, void *buffer, size_t size, size_t *readsize)
| streamをリードする。freadみたいなもの
DKC_EXTERN int WINAPI | dkcCircularStreamReference (DKC_CIRCULARSTREAM *ptr, void *buffer, size_t size, size_t *readsize)
| 中を覗き見るだけ。引数についてはdkcCircularStreamRead()を見るべし。
DKC_EXTERN int WINAPI | dkcCircularStreamWrite (DKC_CIRCULARSTREAM *ptr, const void *buffer, size_t size)
| streamをライトする。fwriteみたいなもの
DKC_EXTERN int WINAPI | dkcCircularStreamDump (DKC_CIRCULARSTREAM *ptr, const char *filename, int flag)
| streamをファイルにダンプする。
DKC_EXTERN int WINAPI | dkcCircularStreamZero (DKC_CIRCULARSTREAM *ptr)
| stream内をmemset(0)する。
DKC_EXTERN int WINAPI | dkcCircularStreamToBuffer (const DKC_STREAM *ptr, char *buff, size_t size, size_t want_size)
| stream内のものをバッファにコピーする。

## Typedef Documentation

typedef struct dkc_CircularStream DKC_CIRCULARSTREAM

| 円型ストリーム（リングバッファデータ）構造体

## Enumeration Type Documentation

enum edkcCircularStream

  | Enumeration values:
  edkcCircularStreamInitBuffer |
  edkcCircularStreamInitFile |
  edkcCircularStreamDumpAll | 無効な領域を含めたすべての内部バッファをダンプする。
  edkcCircularStreamDumpEnable | 有効な領域のみの内部バッファをダンプする。

## Function Documentation

DKC_EXTERN DKC_CIRCULARSTREAM* WINAPI dkcAllocNewCircularStream | ( | size_t | size,
|  | short | mode,
|  | const char * | filename,
|  | const char * | openmode
| ) |

DKC_EXTERN int WINAPI dkcCircularStreamDump | ( | DKC_CIRCULARSTREAM * | ptr,
|  | const char * | filename,
|  | int | flag
| ) |

| streamをファイルにダンプする。 Note: ファイルとしてストリームを初期化したのならばこの関数は失敗する

DKC_EXTERN int WINAPI dkcCircularStreamRead | ( | DKC_CIRCULARSTREAM * | 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 dkcCircularStreamReference | ( | DKC_CIRCULARSTREAM * | ptr,
|  | void * | buffer,
|  | size_t | size,
|  | size_t * | readsize
| ) |

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

DKC_EXTERN int WINAPI dkcCircularStreamToBuffer | ( | const DKC_STREAM * | ptr,
|  | char * | buff,
|  | size_t | size,
|  | size_t | want_size
| ) |

| stream内のものをバッファにコピーする。

DKC_EXTERN int WINAPI dkcCircularStreamWrite | ( | DKC_CIRCULARSTREAM * | ptr,
|  | const void * | buffer,
|  | size_t | size
| ) |

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

DKC_EXTERN int WINAPI dkcCircularStreamZero | ( | DKC_CIRCULARSTREAM * | ptr | ) |

| stream内をmemset(0)する。

DKC_EXTERN int WINAPI dkcDeleteCircularStream | ( | DKC_CIRCULARSTREAM * | ptr | ) |

| circular streamをデリート fcloseみたいなもの　note 必ずストリームを使用したあとはこれを呼んでください。

DKC_EXTERN int WINAPI dkcFreeDeleteCircularStream | ( | DKC_CIRCULARSTREAM ** | ptr | ) |

DKC_EXTERN int WINAPI dkcNewCircularStream | ( | DKC_CIRCULARSTREAM * | ptr,
|  | size_t | size
| ) |

DKC_EXTERN int WINAPI dkcNewCircularStreamForFile | ( | DKC_CIRCULARSTREAM * | ptr,
|  | size_t | size,
|  | const char * | filename,
|  | const char * | openmode
| ) |