\section{dkc\-Memory\-Stream.c File Reference}
\label{dkcMemoryStream_8c}\index{dkcMemoryStream.c@{dkcMemoryStream.c}}
{\tt \#include $<$limits.h$>$}\par
{\tt \#include \char`\"{}dkc\-Memory\-Stream.h\char`\"{}}\par
{\tt \#include \char`\"{}dkc\-Stdio.h\char`\"{}}\par


Include dependency graph for dkc\-Memory\-Stream.c:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=204pt]{dkcMemoryStream_8c__incl}
\end{center}
\end{figure}
\subsection*{Functions}
\begin{CompactItemize}
\item 
{\bf DKC\_\-MEMORYSTREAM} $\ast$WINAPI {\bf dkc\-Alloc\-Memory\-Stream} (size\_\-t size)
\begin{CompactList}\small\item\em ストリーム領域を得る。 \item\end{CompactList}\item 
int WINAPI {\bf dkc\-Free\-Memory\-Stream} ({\bf DKC\_\-MEMORYSTREAM} $\ast$$\ast$ptr)
\begin{CompactList}\small\item\em dkc\-Alloc\-New\-Stream()で確保したストリーム領域を開放する \item\end{CompactList}\item 
int WINAPI {\bf dkc\-Memory\-Stream\-Seek} ({\bf DKC\_\-MEMORYSTREAM} $\ast$ptr, int offset, int origin)
\begin{CompactList}\small\item\em streamをシークする。fseekみたいなもの \item\end{CompactList}\item 
size\_\-t WINAPI {\bf dkc\-Memory\-Stream\-Get\-Seek\-Point} ({\bf DKC\_\-MEMORYSTREAM} $\ast$ptr)
\begin{CompactList}\small\item\em streamのシークポイントを返す。 \item\end{CompactList}\item 
int WINAPI {\bf dkc\-Memory\-Stream\-Read} ({\bf DKC\_\-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\-Memory\-Stream\-Resize} ({\bf DKC\_\-MEMORYSTREAM} $\ast$ptr, size\_\-t want\_\-size)
\begin{CompactList}\small\item\em streamのバッファを拡張する。 \item\end{CompactList}\item 
int WINAPI {\bf dkc\-Memory\-Stream\-Write} ({\bf DKC\_\-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\-Memory\-Stream\-Dynamic\-Write} ({\bf DKC\_\-MEMORYSTREAM} $\ast$ptr, const void $\ast$buffer, size\_\-t size)
\begin{CompactList}\small\item\em streamをライトする。ライト出来なかったら内部で動的拡張する。 \item\end{CompactList}\item 
int WINAPI {\bf dkc\-Memory\-Stream\-Clear} ({\bf DKC\_\-MEMORYSTREAM} $\ast$ptr)
\begin{CompactList}\small\item\em stream内をmemset(0)する。(seek位置も最初に戻される。 \item\end{CompactList}\item 
{\bf DKC\_\-MEMORYSTREAM} $\ast$WINAPI {\bf dkc\-Alloc\-Memory\-Stream\-Copy} (const {\bf DKC\_\-MEMORYSTREAM} $\ast$ptr)
\item 
{\bf DKC\_\-MEMORYSTREAM} $\ast$WINAPI {\bf dkc\-Alloc\-Memory\-Stream\-Deserialize} ({\bf DKC\_\-DESERIALIZE} $\ast$se)
\begin{CompactList}\small\item\em DKC\_\-SERIALIZEから新しいMemory\-Streamを作る。. \item\end{CompactList}\item 
void {\bf dkc\-Memory\-Stream\-Serialize} (const {\bf DKC\_\-MEMORYSTREAM} $\ast$ptr, {\bf DKC\_\-SERIALIZE} $\ast$se)
\begin{CompactList}\small\item\em DKC\_\-SERIALIZEにシリアライズデータをぶち込む. \item\end{CompactList}\end{CompactItemize}


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


ストリーム領域を得る。 

d金魚 \begin{Desc}
\item[Note:]licence:BSD Licence \end{Desc}
\index{dkcMemoryStream.c@{dkc\-Memory\-Stream.c}!dkcAllocMemoryStreamCopy@{dkcAllocMemoryStreamCopy}}
\index{dkcAllocMemoryStreamCopy@{dkcAllocMemoryStreamCopy}!dkcMemoryStream.c@{dkc\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf DKC\_\-MEMORYSTREAM}$\ast$ WINAPI dkc\-Alloc\-Memory\-Stream\-Copy (const {\bf DKC\_\-MEMORYSTREAM} $\ast$ {\em ptr})}\label{dkcMemoryStream_8c_a11}


\begin{Desc}
\item[Returns:]成功したらそのオブジェクトへのポインタが返る。失敗したらNULLが返る。 \end{Desc}
\begin{Desc}
\item[Note:]C++で言うコピーコンストラクタ。 \end{Desc}
\index{dkcMemoryStream.c@{dkc\-Memory\-Stream.c}!dkcAllocMemoryStreamDeserialize@{dkcAllocMemoryStreamDeserialize}}
\index{dkcAllocMemoryStreamDeserialize@{dkcAllocMemoryStreamDeserialize}!dkcMemoryStream.c@{dkc\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf DKC\_\-MEMORYSTREAM}$\ast$ WINAPI dkc\-Alloc\-Memory\-Stream\-Deserialize ({\bf DKC\_\-DESERIALIZE} $\ast$ {\em se})}\label{dkcMemoryStream_8c_a12}


DKC\_\-SERIALIZEから新しいMemory\-Streamを作る。. 

\index{dkcMemoryStream.c@{dkc\-Memory\-Stream.c}!dkcFreeMemoryStream@{dkcFreeMemoryStream}}
\index{dkcFreeMemoryStream@{dkcFreeMemoryStream}!dkcMemoryStream.c@{dkc\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Free\-Memory\-Stream ({\bf DKC\_\-MEMORYSTREAM} $\ast$$\ast$ {\em ptr})}\label{dkcMemoryStream_8c_a1}


dkc\-Alloc\-New\-Stream()で確保したストリーム領域を開放する 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em ptr\mbox{[}in\mbox{]}\mbox{[}out\mbox{]}}]削除するストリームデータ。入れたデータはNULLになる。 \end{description}
\end{Desc}
\index{dkcMemoryStream.c@{dkc\-Memory\-Stream.c}!dkcMemoryStreamClear@{dkcMemoryStreamClear}}
\index{dkcMemoryStreamClear@{dkcMemoryStreamClear}!dkcMemoryStream.c@{dkc\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Memory\-Stream\-Clear ({\bf DKC\_\-MEMORYSTREAM} $\ast$ {\em ptr})}\label{dkcMemoryStream_8c_a10}


stream内をmemset(0)する。(seek位置も最初に戻される。 

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


streamをライトする。ライト出来なかったら内部で動的拡張する。 

\index{dkcMemoryStream.c@{dkc\-Memory\-Stream.c}!dkcMemoryStreamGetSeekPoint@{dkcMemoryStreamGetSeekPoint}}
\index{dkcMemoryStreamGetSeekPoint@{dkcMemoryStreamGetSeekPoint}!dkcMemoryStream.c@{dkc\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}size\_\-t WINAPI dkc\-Memory\-Stream\-Get\-Seek\-Point ({\bf DKC\_\-MEMORYSTREAM} $\ast$ {\em ptr})}\label{dkcMemoryStream_8c_a4}


streamのシークポイントを返す。 

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


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に実際に読んだサイズを入れます。 \end{Desc}
\index{dkcMemoryStream.c@{dkc\-Memory\-Stream.c}!dkcMemoryStreamResize@{dkcMemoryStreamResize}}
\index{dkcMemoryStreamResize@{dkcMemoryStreamResize}!dkcMemoryStream.c@{dkc\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Memory\-Stream\-Resize ({\bf DKC\_\-MEMORYSTREAM} $\ast$ {\em ptr}, size\_\-t {\em want\_\-size})}\label{dkcMemoryStream_8c_a6}


streamのバッファを拡張する。 

\index{dkcMemoryStream.c@{dkc\-Memory\-Stream.c}!dkcMemoryStreamSeek@{dkcMemoryStreamSeek}}
\index{dkcMemoryStreamSeek@{dkcMemoryStreamSeek}!dkcMemoryStream.c@{dkc\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int WINAPI dkc\-Memory\-Stream\-Seek ({\bf DKC\_\-MEMORYSTREAM} $\ast$ {\em ptr}, int {\em offset}, int {\em origin})}\label{dkcMemoryStream_8c_a3}


streamをシークする。fseekみたいなもの 

\index{dkcMemoryStream.c@{dkc\-Memory\-Stream.c}!dkcMemoryStreamSerialize@{dkcMemoryStreamSerialize}}
\index{dkcMemoryStreamSerialize@{dkcMemoryStreamSerialize}!dkcMemoryStream.c@{dkc\-Memory\-Stream.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void dkc\-Memory\-Stream\-Serialize (const {\bf DKC\_\-MEMORYSTREAM} $\ast$ {\em ptr}, {\bf DKC\_\-SERIALIZE} $\ast$ {\em se})}\label{dkcMemoryStream_8c_a13}


DKC\_\-SERIALIZEにシリアライズデータをぶち込む. 

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


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

\begin{Desc}
\item[Note:]内部ストリームバッファは動的拡張です。気にせずどんどんぶち込みましょう。 C言語版のSTLのstd::vectorみたいなものですね。（といいますか、車輪の再開発してるし･･･。 \end{Desc}
