% -----------------------------------------------------------------------------
% wxStreamBase
% -----------------------------------------------------------------------------
\section{\class{wxStreamBase}}\label{wxstreambase}

\wxheading{Derived from}

None

\wxheading{See also}

\helpref{wxStreamBuffer}{wxstreambuffer}

% -----------------------------------------------------------------------------
% Members
% -----------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}} 

% -----------
% ctor & dtor
% -----------

\membersection{wxStreamBase::wxStreamBase}

\func{}{wxStreamBase}{\void}

Creates a dummy stream object.

\membersection{wxStreamBase::\destruct{wxStreamBase}}

\func{}{\destruct{wxStreamBase}}

Destructor.

\membersection{wxStreamBase::LastError}

\constfunc{wxStreamError}{LastError}{\void}

This function returns the last error.
% It is of the form:
% TODO

\membersection{wxStreamBase::StreamSize}
\constfunc{size_t}{StreamSize}{\void}

This function returns the size of the stream. For example, for a file it is the size of
the file). Warning! There are streams which do not have size by definition, such as a socket.

\membersection{wxStreamBase::OnSysRead}\label{wxstreambaseonsysread}

\func{size_t}{OnSysRead}{\param{void*}{ buffer}, \param{size_t}{ bufsize}}

Internal function. It is called when the stream buffer needs a buffer of the
specified size. It should return the size that was actually read.

\membersection{wxStreamBase::OnSysWrite}

\func{size_t}{OnSysWrite}{\param{void *}{buffer}, \param{size_t}{ bufsize}}

See \helpref{OnSysRead}{wxstreambaseonsysread}.

\membersection{wxStreamBase::OnSysSeek}

\func{off_t}{OnSysSeek}{\param{off_t}{ pos}, \param{wxSeekMode}{ mode}}

Internal function. It is called when the stream buffer needs to change the
current position in the stream. See \helpref{wxStreamBuffer::Seek}{wxstreambufferseek}

\membersection{wxStreamBase::OnSysTell}

\constfunc{off_t}{OnSysTell}{\void}

Internal function. Is is called when the stream buffer needs to know the
current position in the stream.

% -----------------------------------------------------------------------------
% wxInputStream
% -----------------------------------------------------------------------------
\section{\class{wxInputStream}}\label{wxinputstream}

\wxheading{Derived from}

\helpref{wxStreamBase}{wxstreambase}

\wxheading{See also}

\helpref{wxStreamBuffer}{wxstreambuffer}

% -----------
% ctor & dtor
% -----------
\membersection{wxInputStream::wxInputStream}

\func{}{wxInputStream}{\void}

Creates a dummy input stream.

\func{}{wxInputStream}{\param{wxStreamBuffer *}{sbuf}}

Creates an input stream using the specified stream buffer \it{sbuf}. This
stream buffer can point to another stream.

\membersection{wxInputStream::\destruct{wxInputStream}}

\func{}{\destruct{wxInputStream}}

Destructor.

% -----------
% IO function
% -----------
\membersection{wxInputStream::Peek}

\func{char}{Peek}{\void}

Returns the first character in the input queue without removing it.

\membersection{wxInputStream::GetC}

\func{char}{GetC}{\void}

Returns the first character in the input queue and removes it.

\membersection{wxInputStream::Read}

\func{wxInputStream\&}{Read}{\param{void *}{buffer}, \param{size_t}{ size}}

Reads the specified amount of bytes and stores the data in \it{buffer}.

\it{WARNING!} The buffer absolutely needs to have at least the specified size.

This function returns a reference on the current object, so the user can test
any states of the stream right away.

\func{wxInputStream\&}{Read}{\param{wxOutputStream\&}{ stream_out}}

Reads data from the input queue and stores it in the specified output stream.
The data is read until an error is raised by one of the two streams.

% ------------------
% Position functions
% ------------------
\membersection{wxInputStream::SeekI}

\func{off_t}{SeekI}{\param{off_t}{ pos}, \param{wxSeekMode}{ mode = wxFromStart}}

Changes the stream current position.

\membersection{wxInputStream::TellI}

\constfunc{off_t}{TellI}{\void}

Returns the current stream position.

% ---------------
% State functions
% ---------------
\membersection{wxInputStream::InputStreamBuffer}

\func{wxStreamBuffer*}{InputStreamBuffer}{\void}

Returns the stream buffer associated with the input stream.

\membersection{wxInputStream::LastRead}

\constfunc{size_t}{LastRead}{\void}

Returns the last amount of bytes read.

% -----------------------------------------------------------------------------
% wxOutputStream
% -----------------------------------------------------------------------------
\section{\class{wx0utputStream}}\label{wxoutputstream}

\wxheading{Derived from}

\helpref{wxStreamBase}{wxstreambase}

\wxheading{See also}

\helpref{wxStreamBuffer}{wxstreambuffer}

% -----------
% ctor & dtor
% -----------
\membersection{wxOutputStream::wxOutputStream}

\func{}{wxOutputStream}{\void}

Creates a dummy wxOutputStream object.

\func{}{wxOutputStream}{\param{wxStreamBuffer*}{ sbuf}}

Creates an input stream using the specified stream buffer \it{sbuf}. This
stream buffer can point to another stream.

\membersection{wxOutputStream::\destruct{wxOutputStream}}

\func{}{\destruct{wxOutputStream}}

Destructor.

% -----------
% IO function
% -----------
\membersection{wxOutputStream::PutC}

\func{void}{PutC}{\param{char}{ c}}

Puts the specified character in the output queue and increments the
stream position.

\membersection{wxOutputStream::Write}

\func{wxOutputStream\&}{Write}{\param{const void *}{buffer}, \param{size_t}{ size}}

Writes the specified amount of bytes using the data of \it{buffer}.
\it{WARNING!} The buffer absolutely needs to have at least the specified size.

This function returns a reference on the current object, so the user can test
any states of the stream right away.

\func{wxOutputStream\&}{Write}{\param{wxInputStream\&}{ stream_in}}

Reads data from the specified input stream and stores them 
in the current stream. The data is read until an error is raised
by one of the two streams.

% ------------------
% Position functions
% ------------------
\membersection{wxOutputStream::SeekO}

\func{off_t}{SeekO}{\param{off_t}{ pos}, \param{wxSeekMode}}

Changes the stream current position.

\membersection{wxOutputStream::TellO}

\constfunc{off_t}{TellO}{\void}

Returns the current stream position.

% ---------------
% State functions
% ---------------
\membersection{wxOutputStream::OutputStreamBuffer}

\func{wxStreamBuffer *}{OutputStreamBuffer}{\void}

Returns the stream buffer associated with the output stream.

\membersection{wxOutputStream::LastWrite}

\constfunc{size_t}{LastWrite}{\void}

% -----------------------------------------------------------------------------
% wxFilterInputStream
% -----------------------------------------------------------------------------
\section{\class{wxFilterInputStream}}\label{wxfilterinputstream}

\wxheading{Derived from}

\helpref{wxInputStream}{wxinputstream}

\wxheading{Note}

The use of this class is exactly the same as of wxInputStream. Only a constructor
differs and it is documented below.

% -----------
% ctor & dtor
% -----------
\membersection{wxFilterInputStream::wxFilterInputStream}

\func{}{wxFilterInputStream}{\param{wxInputStream\&}{ stream}}

% -----------------------------------------------------------------------------
% wxFilterOutputStream
% -----------------------------------------------------------------------------
\section{\class{wxFilterOutputStream}}\label{wxfilteroutputstream}

\wxheading{Derived from}

\helpref{wxOutputStream}{wxoutputstream}

\wxheading{Note}

The use of this class is exactly the same as of wxOutputStream. Only a constructor
differs and it is documented below.

% -----------
% ctor & dtor
% -----------
\membersection{wxFilterOutputStream::wxFilterOutputStream}

\func{}{wxFilterOutputStream}{\param{wxOutputStream\&}{ stream}}
