X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/330d6fd06384c6a49d72696cb1da012bbb978132..b98bd6af23c1c73eb2cddf14da18455e5668de6d:/docs/latex/wx/strmzlib.tex?ds=sidebyside diff --git a/docs/latex/wx/strmzlib.tex b/docs/latex/wx/strmzlib.tex index de17f381ce..722011a33a 100644 --- a/docs/latex/wx/strmzlib.tex +++ b/docs/latex/wx/strmzlib.tex @@ -3,8 +3,13 @@ % ----------------------------------------------------------------------------- \section{\class{wxZlibInputStream}}\label{wxzlibinputstream} -This stream uncompresses all data read from it. It uses the "filtered" -stream to get new compressed data. +This filter stream decompresses a stream that is in zlib or gzip format. +Note that reading the gzip format requires zlib version 1.2.1 or greater, +(the builtin version does support gzip format). + +The stream is not seekable, \helpref{SeekI()}{wxinputstreamseeki} returns + {\it wxInvalidOffset}. Also \helpref{GetSize()}{wxstreambasegetsize} is +not supported, it always returns $0$. \wxheading{Derived from} @@ -16,15 +21,65 @@ stream to get new compressed data. \wxheading{See also} -\helpref{wxStreamBuffer}{wxstreamBuffer}, \helpref{wxInputStream}{wxinputstream} +\helpref{wxInputStream}{wxinputstream}, + \helpref{wxZlibOutputStream}{wxzliboutputstream}. + +\latexignore{\rtfignore{\wxheading{Members}}} + +\membersection{wxZlibInputStream::wxZlibInputStream}\label{wxzlibinputstreamwxzlibinputstream} + +\func{}{wxZlibInputStream}{\param{wxInputStream\&}{ stream}, \param{int}{ flags = wxZLIB\_AUTO}} + +The {\it flags} wxZLIB\_ZLIB and wxZLIB\_GZIP specify whether the input data +is in zlib or gzip format. If wxZLIB\_AUTO is used, then zlib will +autodetect the stream type, this is the default. + +If {\it flags} is wxZLIB\_NO\_HEADER, then the data is assumed to be a raw +deflate stream without either zlib or gzip headers. This is a lower level +mode, which is not usually used directly. It can be used to read a raw +deflate stream embedded in a higher level protocol. + +%if WXWIN_COMPATIBILITY_2_4 +This version is not by default compatible with the output produced by +the version of {\it wxZlibOutputStream} in wxWidgets 2.4.x. However, +there is a compatibility mode, which is switched on by passing +wxZLIB\_24COMPATIBLE for flags. Note that in when operating in compatibility +mode error checking is very much reduced. +%endif + +The following symbols can be use for the flags: + +\begin{verbatim} +// Flags +enum { +#if WXWIN_COMPATIBILITY_2_4 + wxZLIB_24COMPATIBLE = 4, // read v2.4.x data without error +#endif + wxZLIB_NO_HEADER = 0, // raw deflate stream, no header or checksum + wxZLIB_ZLIB = 1, // zlib header and checksum + wxZLIB_GZIP = 2, // gzip header and checksum, requires zlib 1.2.1+ + wxZLIB_AUTO = 3 // autodetect header zlib or gzip +}; +\end{verbatim} + +\membersection{wxZlibInputStream::CanHandleGZip}\label{wxzlibinputstreamcanhandlegzip} + +\func{static bool}{CanHandleGZip}{\void} + +Returns true if zlib library in use can handle gzip compressed data. % ----------------------------------------------------------------------------- % wxZlibOutputStream % ----------------------------------------------------------------------------- \section{\class{wxZlibOutputStream}}\label{wxzliboutputstream} -This stream compresses all data written to it, and passes the compressed data -to the "filtered" stream. +This stream compresses all data written to it. The compressed output can be +in zlib or gzip format. +Note that writing the gzip format requires zlib version 1.2.1 or greater +(the builtin version does support gzip format). + +The stream is not seekable, \helpref{SeekO()}{wxoutputstreamseeko} returns + {\it wxInvalidOffset}. \wxheading{Derived from} @@ -36,5 +91,51 @@ to the "filtered" stream. \wxheading{See also} -\helpref{wxStreamBuffer}{wxstreamBuffer}, \helpref{wxOutputStream}{wxoutputstream} +\helpref{wxOutputStream}{wxoutputstream}, + \helpref{wxZlibInputStream}{wxzlibinputstream} + + +\latexignore{\rtfignore{\wxheading{Members}}} + +\membersection{wxZlibOutputStream::wxZlibOutputStream}\label{wxzliboutputstreamwxzliboutputstream} + +\func{}{wxZlibOutputStream}{\param{wxOutputStream\&}{ stream}, \param{int}{ level = -1}, \param{int}{ flags = wxZLIB\_ZLIB}} + +Creates a new write-only compressed stream. {\it level} means level of +compression. It is number between 0 and 9 (including these values) where +0 means no compression and 9 best but slowest compression. -1 is default +value (currently equivalent to 6). + +The {\it flags} wxZLIB\_ZLIB and wxZLIB\_GZIP specify whether the output data +will be in zlib or gzip format. wxZLIB\_ZLIB is the default. + +If {\it flags} is wxZLIB\_NO\_HEADER, then a raw deflate stream is output +without either zlib or gzip headers. This is a lower level +mode, which is not usually used directly. It can be used to embed a raw +deflate stream in a higher level protocol. + +The following symbols can be use for the compression level and flags: + +\begin{verbatim} +// Compression level +enum { + wxZ_DEFAULT_COMPRESSION = -1, + wxZ_NO_COMPRESSION = 0, + wxZ_BEST_SPEED = 1, + wxZ_BEST_COMPRESSION = 9 +}; + +// Flags +enum { + wxZLIB_NO_HEADER = 0, // raw deflate stream, no header or checksum + wxZLIB_ZLIB = 1, // zlib header and checksum + wxZLIB_GZIP = 2 // gzip header and checksum, requires zlib 1.2.1+ +}; +\end{verbatim} + +\membersection{wxZlibOutputStream::CanHandleGZip}\label{wxoutputstreamcanhandlegzip} + +\func{static bool}{CanHandleGZip}{\void} + +Returns true if zlib library in use can handle gzip compressed data.