| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | \section{Built-in Module \sectcode{zlib}} | 
					
						
							|  |  |  | \bimodindex{zlib} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | For applications that require data compression, the functions in this | 
					
						
							| 
									
										
										
										
											1997-04-30 19:39:21 +00:00
										 |  |  | module allow compression and decompression, using the zlib library, | 
					
						
							|  |  |  | which is based on GNU zip.  The zlib library has its own home page at | 
					
						
							|  |  |  | \code{http://www.cdrom.com/pub/infozip/zlib/}. | 
					
						
							|  |  |  | Version 1.0.4 is the most recent version as of April 30, 1997; use a | 
					
						
							|  |  |  | later version if one is available. | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The available functions in this module are: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \renewcommand{\indexsubitem}{(in module zlib)} | 
					
						
							|  |  |  | \begin{funcdesc}{adler32}{string\optional{\, value}} | 
					
						
							|  |  |  |    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} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{compress}{string\optional{\, level}} | 
					
						
							|  |  |  | Compresses the data in \var{string}, returning a string contained | 
					
						
							|  |  |  | compressed data.  \var{level} is an integer from 1 to 9 controlling | 
					
						
							|  |  |  | the level of compression; 1 is fastest and produces the least | 
					
						
							|  |  |  | compression, 9 is slowest and produces the most.  The default value is | 
					
						
							|  |  |  | 6, which .  Raises the \code{zlib.error} exception if any error occurs. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{compressobj}{\optional{level}} | 
					
						
							|  |  |  | Returns a compression object, to be used for compressing data streams | 
					
						
							|  |  |  |   that won't fit into memory at once.  \var{level} is an integer from | 
					
						
							|  |  |  |   1 to 9 controlling the level of compression; 1 is fastest and | 
					
						
							|  |  |  |   produces the least compression, 9 is slowest and produces the most. | 
					
						
							|  |  |  |   The default value is 6. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{crc32}{string\optional{\, value}} | 
					
						
							|  |  |  |    Computes a CRC (Cyclic Redundancy Check) sum 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. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{decompress}{string} | 
					
						
							|  |  |  | Decompresses the data in \var{string}, returning a string containing | 
					
						
							|  |  |  | the uncompressed data.  Raises the \code{zlib.error} exception if any | 
					
						
							|  |  |  | error occurs. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{decompressobj}{\optional{wbits}} | 
					
						
							|  |  |  | Returns a compression object, to be used for decompressing data streams | 
					
						
							| 
									
										
										
										
											1997-04-30 19:39:21 +00:00
										 |  |  | that won't fit into memory at once.  The \var{wbits} parameter | 
					
						
							|  |  |  | controls the size of the window buffer; usually this can be left | 
					
						
							|  |  |  | alone. | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Compression objects support the following methods: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{compress}{string} | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | \code{compress()} method.  Some input may be kept in internal buffers | 
					
						
							|  |  |  | for later processing. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{flush}{} | 
					
						
							|  |  |  | All pending input is processed, and an string containing the remaining | 
					
						
							|  |  |  | compressed output is returned.  After calling \code{flush()}, the | 
					
						
							|  |  |  | \code{compress()} method cannot be called again; the only realistic | 
					
						
							|  |  |  | action is to delete the object. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Decompression objects support the following methods: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{decompress}{string} | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											1997-04-30 19:39:21 +00:00
										 |  |  | \code{decompress()} method.  Some of the input data may be preserved | 
					
						
							|  |  |  | in internal buffers for later processing. | 
					
						
							| 
									
										
										
										
											1997-04-30 18:12:27 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{flush}{} | 
					
						
							|  |  |  | All pending input is processed, and a string containing the remaining | 
					
						
							|  |  |  | uncompressed output is returned.  After calling \code{flush()}, the | 
					
						
							|  |  |  | \code{decompress()} method cannot be called again; the only realistic | 
					
						
							|  |  |  | action is to delete the object. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |