1 ;;;; $Id: zlib.lisp,v 1.10 2007/12/20 16:30:09 xach Exp $
5 (defclass zlib-compressor
(deflate-compressor)
10 :adler32
(make-instance 'adler32-checksum
)))
12 (defmethod start-data-format :before
((compressor zlib-compressor
))
13 (let ((bitstream (bitstream compressor
)))
14 ;; FIXME: Replace these naked constants with symbolic constants.
15 (write-octet 8 bitstream
)
16 (write-octet 153 bitstream
)))
18 (defmethod process-input :after
((compressor zlib-compressor
) input start count
)
19 (let ((checksum (adler32 compressor
)))
20 (update checksum input start count
)))
22 (defmethod finish-data-format :after
((compressor zlib-compressor
))
23 (let ((bitstream (bitstream compressor
)))
24 (dolist (octet (result-octets (adler32 compressor
)))
25 (write-octet octet bitstream
))))