% -----------------------------------------------------------------------------
\section{\class{wxStreamBase}}\label{wxstreambase}
+This class is the base class of most stream related classes in wxWidgets. It must
+not be used directly.
+
\wxheading{Derived from}
None
+\wxheading{Include files}
+
+<wx/stream.h>
+
\wxheading{See also}
\helpref{wxStreamBuffer}{wxstreambuffer}
% ctor & dtor
% -----------
-\membersection{wxStreamBase::wxStreamBase}
+
+\membersection{wxStreamBase::wxStreamBase}\label{wxstreambasector}
\func{}{wxStreamBase}{\void}
-Creates a dummy stream object.
+Creates a dummy stream object. It doesn't do anything.
+
-\membersection{wxStreamBase::\destruct{wxStreamBase}}
+\membersection{wxStreamBase::\destruct{wxStreamBase}}\label{wxstreambasedtor}
\func{}{\destruct{wxStreamBase}}{\void}
Destructor.
-\membersection{wxStreamBase::LastError}\label{wxstreambaselasterror}
-\constfunc{wxStreamError}{LastError}{\void}
+\membersection{wxStreamBase::GetLength}\label{wxstreambasegetlength}
-This function returns the last error.
-It is of the form:
-\twocolwidtha{7cm}%
-\begin{twocollist}\itemsep=0pt
-\twocolitem{{\bf wxStream_NOERROR}}{No error occured.}
-\twocolitem{{\bf wxStream_EOF}}{An End Of File exception occured.}
-\twocolitem{{\bf wxStream_WRITE_ERR}{Error during the last write call.}
-\twocolitem{{\bf wxStream_READ_ERR}{Error during the last read call.}
-\end{twocollist}%
+\constfunc{wxFileOffset}{GetLength}{\void}
-\membersection{wxStreamBase::StreamSize}
-\constfunc{size_t}{StreamSize}{\void}
+Returns the length of the stream in bytes. If the length cannot be determined
+(this is always the case for socket streams for example), returns
+\texttt{wxInvalidOffset}.
-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.
+\newsince{2.5.4}
-\membersection{wxStreamBase::OnSysRead}\label{wxstreambaseonsysread}
-\func{size_t}{OnSysRead}{\param{void*}{ buffer}, \param{size_t}{ bufsize}}
+\membersection{wxStreamBase::GetLastError}\label{wxstreambasegetlasterror}
-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.
+\constfunc{wxStreamError}{GetLastError}{\void}
-\membersection{wxStreamBase::OnSysWrite}
+This function returns the last error.
-\func{size_t}{OnSysWrite}{\param{void *}{buffer}, \param{size_t}{ bufsize}}
+\twocolwidtha{5cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{{\bf wxSTREAM\_NO\_ERROR}}{No error occurred.}
+\twocolitem{{\bf wxSTREAM\_EOF}}{An End-Of-File occurred.}
+\twocolitem{{\bf wxSTREAM\_WRITE\_ERROR}}{A generic error occurred on the last write call.}
+\twocolitem{{\bf wxSTREAM\_READ\_ERROR}}{A generic error occurred on the last read call.}
+\end{twocollist}
-See \helpref{OnSysRead}{wxstreambaseonsysread}.
-\membersection{wxStreamBase::OnSysSeek}
+\membersection{wxStreamBase::GetSize}\label{wxstreambasegetsize}
-\func{off_t}{OnSysSeek}{\param{off_t}{ pos}, \param{wxSeekMode}{ mode}}
+\constfunc{size\_t}{GetSize}{\void}
-Internal function. It is called when the stream buffer needs to change the
-current position in the stream. See \helpref{wxStreamBuffer::Seek}{wxstreambufferseek}
+\helpref{GetLength}{wxstreambasegetlength}
-\membersection{wxStreamBase::OnSysTell}
+This function returns the size of the stream. For example, for a file it is the
+size of the file.
-\constfunc{off_t}{OnSysTell}{\void}
+\wxheading{Warning}
-Internal function. Is is called when the stream buffer needs to know the
-current position in the stream.
+There are streams which do not have size by definition, such as socket streams.
+In that cases, GetSize returns $0$ so you should always test its return value.
-% -----------------------------------------------------------------------------
-% wxInputStream
-% -----------------------------------------------------------------------------
-\section{\class{wxInputStream}}\label{wxinputstream}
-\wxheading{Derived from}
+\membersection{wxStreamBase::IsOk}\label{wxstreambaseisok}
-\helpref{wxStreamBase}{wxstreambase}
+\constfunc{bool}{IsOk}{\void}
+
+Returns true if no error occurred on the stream.
\wxheading{See also}
-\helpref{wxStreamBuffer}{wxstreambuffer}
+\helpref{GetLastError}{wxstreambasegetlasterror}
-% -----------------------------------------------------------------------------
-% Members
-% -----------------------------------------------------------------------------
-\latexignore{\rtfignore{\wxheading{Members}}}
-% -----------
-% ctor & dtor
-% -----------
+\membersection{wxStreamBase::IsSeekable}\label{wxstreambaseisseekable}
+
+\constfunc{bool}{IsSeekable}{\void}
-\membersection{wxInputStream::wxInputStream}
-\func{}{wxInputStream}{\void}
+Returns true if the streams supports seeking to arbitrary offsets.
-Initializes a dummy input stream.
-\func{}{wxInputStream}{\param{wxStreamBuffer *}{sbuf}}
+\membersection{wxStreamBase::OnSysRead}\label{wxstreambaseonsysread}
+
+\func{size\_t}{OnSysRead}{\param{void*}{ buffer}, \param{size\_t}{ bufsize}}
-Initializes an input stream linked to the specified stream buffer.
+Internal function. It is called when the stream wants to read data of the
+specified size. It should return the size that was actually read.
-\membersection{wxInputStream::\destruct{wxInputStream}}
-\func{}{\destruct{wxInputStream}{\void}
-Destructor.
+\membersection{wxStreamBase::OnSysSeek}\label{wxstreambaseonsysseek}
-% -------
-% IO call
-% -------
+\func{off\_t}{OnSysSeek}{\param{off\_t}{ pos}, \param{wxSeekMode}{ mode}}
-\membersection{wxInputStream::Peek}
-\func{char}{Peek}{\void}
+Internal function. It is called when the stream needs to change the
+current position.
-\membersection{wxInputStream::GetC}
-\func{char}{GetC}{\void}
-\membersection{wxInputStream::Read}
-\func{wxInputStream&}{Read}{\param{void *}{buffer}, \param{size_t}{ size}}
-\func{wxInputStream&}{Read}{\param{wxOutputStream&}{ stream_out}}
+\membersection{wxStreamBase::OnSysTell}\label{wxstreambaseonsystell}
-\membersection{wxInputStream::SeekI}
-\func{off_t}{SeekI}{\param{off_t}{ pos}, \param{wxSeekMode}{ mode = wxFromStart}}
+\constfunc{off\_t}{OnSysTell}{\void}
-\membersection{wxInputStream::TellI}
-\constfunc{off_t}{TellI}{\void}
+Internal function. Is is called when the stream needs to know the
+real position.
-% -----
-% State
-% -----
-\membersection{wxInputStream::InputStreamBuffer}
-\func{wxStreamBuffer *}{InputStreamBuffer}{\void}
-\membersection{wxInputStream::LastRead}
-\func{size_t}{LastRead}{\void}
+\membersection{wxStreamBase::OnSysWrite}\label{wxstreambaseonsyswrite}
+
+\func{size\_t}{OnSysWrite}{\param{const void *}{buffer}, \param{size\_t}{ bufsize}}
+
+See \helpref{OnSysRead}{wxstreambaseonsysread}.
+