| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | % XXX The module has been extended (by Jeremy) but this documentation
 | 
					
						
							| 
									
										
										
										
											1998-07-27 22:08:49 +00:00
										 |  |  | % hasn't been updated completely.
 | 
					
						
							| 
									
										
										
										
											1997-12-30 20:38:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{zlib} --- | 
					
						
							|  |  |  |          Compression and decompression compatible with \program{gzip}.} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | \declaremodule{builtin}{zlib} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-07-27 22:08:49 +00:00
										 |  |  | \modulesynopsis{Low-level interface to compression and decompression | 
					
						
							|  |  |  | routines compatible with \program{gzip}.} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | For applications that require data compression, the functions in this | 
					
						
							| 
									
										
										
										
											1998-04-09 15:41:44 +00:00
										 |  |  | module allow compression and decompression, using the zlib library. | 
					
						
							|  |  |  | The zlib library has its own home page at | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \url{http://www.cdrom.com/pub/infozip/zlib/}.  Version 1.0.4 is the | 
					
						
							|  |  |  | most recent version as of December, 1997; use a later version if one | 
					
						
							|  |  |  | is available. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The available exception and functions in this module are: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{error} | 
					
						
							|  |  |  |   Exception raised on compression and decompression errors. | 
					
						
							|  |  |  | \end{excdesc} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-17 06:33:25 +00:00
										 |  |  | \begin{funcdesc}{adler32}{string\optional{, value}} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  |    Computes a Adler-32 checksum of \var{string}.  (An Adler-32 | 
					
						
							|  |  |  |    checksum is almost as reliable as a CRC32 but can be computed much | 
					
						
							|  |  |  |    more quickly.)  If \var{value} is present, it is used as the | 
					
						
							|  |  |  |    starting value of the checksum; otherwise, a fixed default value is | 
					
						
							|  |  |  |    used.  This allows computing a running checksum over the | 
					
						
							|  |  |  |    concatenation of several input strings.  The algorithm is not | 
					
						
							|  |  |  |    cryptographically strong, and should not be used for | 
					
						
							|  |  |  |    authentication or digital signatures. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-17 06:33:25 +00:00
										 |  |  | \begin{funcdesc}{compress}{string\optional{, level}} | 
					
						
							| 
									
										
										
										
											1998-06-19 21:18:28 +00:00
										 |  |  |   Compresses the data in \var{string}, returning a string contained | 
					
						
							|  |  |  |   compressed data.  \var{level} is an integer from \code{1} to | 
					
						
							|  |  |  |   \code{9} controlling the level of compression; \code{1} is fastest | 
					
						
							|  |  |  |   and produces the least compression, \code{9} is slowest and produces | 
					
						
							|  |  |  |   the most.  The default value is \code{6}.  Raises the | 
					
						
							|  |  |  |   \exception{error} exception if any error occurs. | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{compressobj}{\optional{level}} | 
					
						
							| 
									
										
										
										
											1998-01-22 16:11:18 +00:00
										 |  |  |   Returns a compression object, to be used for compressing data streams | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  |   that won't fit into memory at once.  \var{level} is an integer from | 
					
						
							| 
									
										
										
										
											1998-01-22 16:11:18 +00:00
										 |  |  |   \code{1} to \code{9} controlling the level of compression; \code{1} is | 
					
						
							|  |  |  |   fastest and produces the least compression, \code{9} is slowest and | 
					
						
							|  |  |  |   produces the most.  The default value is \code{6}. | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-17 06:33:25 +00:00
										 |  |  | \begin{funcdesc}{crc32}{string\optional{, value}} | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  |   Computes a CRC (Cyclic Redundancy Check)%
 | 
					
						
							|  |  |  |   \index{Cyclic Redundancy Check} | 
					
						
							| 
									
										
										
										
											1998-04-04 06:28:54 +00:00
										 |  |  |   \index{checksum!Cyclic Redundancy Check} | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  |   checksum of \var{string}. If | 
					
						
							|  |  |  |   \var{value} is present, it is used as the starting value of the | 
					
						
							|  |  |  |   checksum; otherwise, a fixed default value is used.  This allows | 
					
						
							|  |  |  |   computing a running checksum over the concatenation of several | 
					
						
							|  |  |  |   input strings.  The algorithm is not cryptographically strong, and | 
					
						
							|  |  |  |   should not be used for authentication or digital signatures. | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-06-19 21:18:28 +00:00
										 |  |  | \begin{funcdesc}{decompress}{string\optional{, wbits\optional{, buffsize}}} | 
					
						
							|  |  |  |   Decompresses the data in \var{string}, returning a string containing | 
					
						
							|  |  |  |   the uncompressed data.  The \var{wbits} parameter controls the size of | 
					
						
							|  |  |  |   the window buffer.  If \var{buffsize} is given, it is used as the | 
					
						
							|  |  |  |   initial size of the output buffer.  Raises the \exception{error} | 
					
						
							|  |  |  |   exception if any error occurs. | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{decompressobj}{\optional{wbits}} | 
					
						
							| 
									
										
										
										
											1998-06-19 21:18:28 +00:00
										 |  |  |   Returns a compression object, to be used for decompressing data | 
					
						
							|  |  |  |   streams that won't fit into memory at once.  The \var{wbits} | 
					
						
							|  |  |  |   parameter controls the size of the window buffer. | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Compression objects support the following methods: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \begin{methoddesc}[Compress]{compress}{string} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | Compress \var{string}, returning a string containing compressed data | 
					
						
							|  |  |  | for at least part of the data in \var{string}.  This data should be | 
					
						
							|  |  |  | concatenated to the output produced by any preceding calls to the | 
					
						
							| 
									
										
										
										
											1998-01-22 16:11:18 +00:00
										 |  |  | \method{compress()} method.  Some input may be kept in internal buffers | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | for later processing. | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \end{methoddesc} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \begin{methoddesc}[Compress]{flush}{} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | All pending input is processed, and an string containing the remaining | 
					
						
							| 
									
										
										
										
											1998-01-22 16:11:18 +00:00
										 |  |  | compressed output is returned.  After calling \method{flush()}, the | 
					
						
							|  |  |  | \method{compress()} method cannot be called again; the only realistic | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | action is to delete the object. | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \end{methoddesc} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Decompression objects support the following methods: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \begin{methoddesc}[Decompress]{decompress}{string} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | Decompress \var{string}, returning a string containing the | 
					
						
							|  |  |  | uncompressed data corresponding to at least part of the data in | 
					
						
							|  |  |  | \var{string}.  This data should be concatenated to the output produced | 
					
						
							|  |  |  | by any preceding calls to the | 
					
						
							| 
									
										
										
										
											1998-01-22 16:11:18 +00:00
										 |  |  | \method{decompress()} method.  Some of the input data may be preserved | 
					
						
							| 
									
										
										
										
											1997-04-30 19:39:21 +00:00
										 |  |  | in internal buffers for later processing. | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \end{methoddesc} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \begin{methoddesc}[Decompress]{flush}{} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | All pending input is processed, and a string containing the remaining | 
					
						
							| 
									
										
										
										
											1998-01-22 16:11:18 +00:00
										 |  |  | uncompressed output is returned.  After calling \method{flush()}, the | 
					
						
							|  |  |  | \method{decompress()} method cannot be called again; the only realistic | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | action is to delete the object. | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \end{methoddesc} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-07-17 16:34:52 +00:00
										 |  |  | \begin{seealso} | 
					
						
							| 
									
										
										
										
											1998-04-03 06:49:26 +00:00
										 |  |  | \seemodule{gzip}{reading and writing \program{gzip}-format files} | 
					
						
							| 
									
										
										
										
											1997-07-17 16:34:52 +00:00
										 |  |  | \end{seealso} | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 |