1 ;;;; $Id: output.lisp,v 1.1.1.1 2007/12/03 19:43:34 xach Exp $
5 (defun output-error (data start end
)
6 (declare (ignore data start end
))
7 (error "No output callback defined!"))
13 :documentation
"An octet vector that holds compressed data to
14 be processed by the applicaton callback.")
18 :documentation
"The index of the first octet of compressed data.")
22 :documentation
"The index after last octet of compressed data.")
26 :documentation
"A designator for a function of three
27 arguments: an octet vector, start, and end. The application
28 can treat octets START through END-1 as compressed data to
31 :data
(make-array 4096 :element-type
'octet
)
34 :callback
'output-error
))
36 (defgeneric call-callback
(object)
38 (funcall (callback output
) (data output
) (start output
) (end output
))
39 (setf (start output
) 0
42 (defgeneric fullp
(object)
43 (:method
((output output
))
44 (= (end output
) (length (data output
)))))
46 (defgeneric output-octet
(octet output
)
47 (:method
(octet output
)
48 (setf (aref (data output
) (end output
)) octet
)
50 (call-callback output
))))
52 (defgeneric output-literal
(code output
)
53 (:method
(code output
)
54 (print (list 'output-literal code
))))
56 (defgeneric output-distance
(distance output
)
57 (:method
(distance output
)
58 (print (list 'output-distance distance
))))
60 (defgeneric output-length
(length output
)
61 (:method
(length output
)
62 (print (list 'output-length length
))))