\section{dkc\-Circular\-Memory\-Stream.c File Reference}
\label{dkcCircularMemoryStream_8c}\index{dkcCircularMemoryStream.c@{dkcCircularMemoryStream.c}}
{\tt \#include \char`\"{}dkc\-Circular\-Memory\-Stream.h\char`\"{}}\par
{\tt \#include \char`\"{}dkc\-Stdio.h\char`\"{}}\par


Include dependency graph for dkc\-Circular\-Memory\-Stream.c:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=204pt]{dkcCircularMemoryStream_8c__incl}
\end{center}
\end{figure}
\subsection*{Functions}
\begin{CompactItemize}
\item 
{\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$WINAPI {\bf dkc\-Alloc\-Circular\-Memory\-Stream} (size\_\-t size)
\item 
int WINAPI {\bf dkc\-Free\-Circular\-Memory\-Stream} ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$$\ast$ptr)
\item 
int WINAPI {\bf dkc\-Circular\-Memory\-Stream\-Read} ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ptr, void $\ast$buffer, size\_\-t size, size\_\-t $\ast$readsize)
\begin{CompactList}\small\item\em streamをリードする。freadみたいなもの \item\end{CompactList}\item 
int WINAPI {\bf dkc\-Circular\-Memory\-Stream\-Reference} ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ptr, void $\ast$buffer, size\_\-t size, size\_\-t $\ast$readsize)
\begin{CompactList}\small\item\em 中を覗き見るだけ。引数についてはdkc\-Circular\-Memory\-Stream\-Read()を見るべし。 \item\end{CompactList}\item 
int WINAPI {\bf dkc\-Circular\-Memory\-Stream\-Write} ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ptr, const void $\ast$buffer, size\_\-t size)
\begin{CompactList}\small\item\em streamをライトする。fwriteみたいなもの \item\end{CompactList}\item 
int WINAPI {\bf dkc\-Circular\-Memory\-Stream\-Clear} ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ptr)
\begin{CompactList}\small\item\em stream内のカウンタを０にして事実上すべてクリアーにする。 \item\end{CompactList}\item 
int WINAPI {\bf dkc\-Circular\-Memory\-Stream\-To\-Buffer} (const {\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ptr, char $\ast$buff, size\_\-t size, size\_\-t want\_\-size)
\item 
{\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$WINAPI {\bf dkc\-Alloc\-Circular\-Memory\-Stream\-Copy} (const {\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ptr)
\end{CompactItemize}


\subsection{Detailed Description}
\begin{Desc}
\item[Since:]2004/3/xx \end{Desc}
\begin{Desc}
\item[Note:]\end{Desc}


\subsection{Function Documentation}
\index{dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}!dkcAllocCircularMemoryStream@{dkcAllocCircularMemoryStream}}
\index{dkcAllocCircularMemoryStream@{dkcAllocCircularMemoryStream}!dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM}$\ast$ WINAPI dkc\-Alloc\-Circular\-Memory\-Stream (size\_\-t {\em size})}\label{dkcCircularMemoryStream_8c_a0}


\index{dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}!dkcAllocCircularMemoryStreamCopy@{dkcAllocCircularMemoryStreamCopy}}
\index{dkcAllocCircularMemoryStreamCopy@{dkcAllocCircularMemoryStreamCopy}!dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM}$\ast$ WINAPI dkc\-Alloc\-Circular\-Memory\-Stream\-Copy (const {\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ {\em ptr})}\label{dkcCircularMemoryStream_8c_a9}


DKC\_\-CIRCULAR\_\-MEMORYSTREAMをコピーする。 C++で言うコピーコンストラクタみたいなもの＾＾； \index{dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}!dkcCircularMemoryStreamClear@{dkcCircularMemoryStreamClear}}
\index{dkcCircularMemoryStreamClear@{dkcCircularMemoryStreamClear}!dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Circular\-Memory\-Stream\-Clear ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ {\em ptr})}\label{dkcCircularMemoryStream_8c_a7}


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

\index{dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}!dkcCircularMemoryStreamRead@{dkcCircularMemoryStreamRead}}
\index{dkcCircularMemoryStreamRead@{dkcCircularMemoryStreamRead}!dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Circular\-Memory\-Stream\-Read ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ {\em ptr}, void $\ast$ {\em buffer}, size\_\-t {\em size}, size\_\-t $\ast$ {\em readsize})}\label{dkcCircularMemoryStream_8c_a4}


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

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em readsize\mbox{[}out\mbox{]}}]実際に読んだサイズを返す。NULLを渡してもOK. \end{description}
\end{Desc}
\begin{Desc}
\item[Note:]・指定したサイズ(size)よりもストリームバッファのサイズが小さかった場合 readsizeに実際に読んだサイズを入れます。 ・Readしたデータは取り出したデータとして処理され、 そのバッファ内容は次のデータを保存する領域として再利用されます。 つまり、一度\-Readしたデータは二度と取り出せません。 \end{Desc}
\index{dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}!dkcCircularMemoryStreamReference@{dkcCircularMemoryStreamReference}}
\index{dkcCircularMemoryStreamReference@{dkcCircularMemoryStreamReference}!dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Circular\-Memory\-Stream\-Reference ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ {\em ptr}, void $\ast$ {\em buffer}, size\_\-t {\em size}, size\_\-t $\ast$ {\em readsize})}\label{dkcCircularMemoryStream_8c_a5}


中を覗き見るだけ。引数についてはdkc\-Circular\-Memory\-Stream\-Read()を見るべし。 

\index{dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}!dkcCircularMemoryStreamToBuffer@{dkcCircularMemoryStreamToBuffer}}
\index{dkcCircularMemoryStreamToBuffer@{dkcCircularMemoryStreamToBuffer}!dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Circular\-Memory\-Stream\-To\-Buffer (const {\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ {\em ptr}, char $\ast$ {\em buff}, size\_\-t {\em size}, size\_\-t {\em want\_\-size})}\label{dkcCircularMemoryStream_8c_a8}


\index{dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}!dkcCircularMemoryStreamWrite@{dkcCircularMemoryStreamWrite}}
\index{dkcCircularMemoryStreamWrite@{dkcCircularMemoryStreamWrite}!dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Circular\-Memory\-Stream\-Write ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$ {\em ptr}, const void $\ast$ {\em buffer}, size\_\-t {\em size})}\label{dkcCircularMemoryStream_8c_a6}


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

\begin{Desc}
\item[Note:]内部ストリームバッファは円型です。いわいるRing\-Bufferって奴です。 dkc\-Circular\-Memory\-Stream\-Writeしたらdkc\-Circular\-Memory\-Stream\-Readしてデータを出してあげましょう。 そうしなければ、いずれ、円型バッファの有効データが一杯になってこの関数は失敗します。 C言語版 boost::circular\_\-bufferみたいなものですね＾＾；（といいますか、また車輪の再開発してるし･･･。 \end{Desc}
\index{dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}!dkcFreeCircularMemoryStream@{dkcFreeCircularMemoryStream}}
\index{dkcFreeCircularMemoryStream@{dkcFreeCircularMemoryStream}!dkcCircularMemoryStream.c@{dkc\-Circular\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Free\-Circular\-Memory\-Stream ({\bf DKC\_\-CIRCULAR\_\-MEMORYSTREAM} $\ast$$\ast$ {\em ptr})}\label{dkcCircularMemoryStream_8c_a1}


