changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/ffi/zstd/stream.lisp

changeset 438: b719ae57647d
child: 7354623e5b54
author: Richard Westhaver <ellis@rwest.io>
date: Tue, 11 Jun 2024 22:44:32 -0400
permissions: -rw-r--r--
description: zstd refactoring
438
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 ;;; stream1.lisp --- Zstd Streaming v1 API
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
3
 ;; 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 ;;; Code:
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 (in-package :zstd)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 (define-alien-type zstd-cstream zstd-cctx)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 (define-alien-routine "ZSTD_createCStream" (* zstd-cstream))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 (define-alien-routine "ZSTD_freeCStream" void (zcs (* zstd-cstream)))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 (define-alien-type zstd-enddirective int)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 ;; (enum nil
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 ;;       (zstd-e-continue 0)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 ;;       (zstd-e-flush 1)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
 ;;       (zstd-e-end 2))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
 (define-alien-routine "ZSTD_compressStream2" size-t
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
20
   (cctx (* zstd-cctx))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
   (output (* zstd-outbuffer))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
   (input (* zstd-inbuffer))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
   (end-op zstd-enddirective))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
24
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
25
 (define-alien-routine "ZSTD_CStreamInSize" size-t)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
26
 (define-alien-routine "ZSTD_CStreamOutSize" size-t)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
 (define-alien-routine "ZSTD_initCStream" size-t (zcs (* zstd-cstream)) (compression-level int))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
 (define-alien-routine "ZSTD_compressStream" size-t (zcs (* zstd-cstream)) (output (* zstd-outbuffer)) (input (* zstd-inbuffer)))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
 (define-alien-routine "ZSTD_flushStream" size-t (zcs (* zstd-cstream)) (output (* zstd-outbuffer)))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 (define-alien-routine "ZSTD_endStream" size-t (zcs (* zstd-cstream)) (output (* zstd-outbuffer)))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
 (define-alien-type zstd-dstream zstd-dctx)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
 (define-alien-routine "ZSTD_createDStream" (* zstd-dstream))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
 (define-alien-routine "ZSTD_freeDStream" void (zds (* zstd-dstream)))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
 (define-alien-routine "ZSTD_initDStream" size-t (zds (* zstd-dstream)))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
 (define-alien-routine "ZSTD_decompressStream" size-t
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
   (zds (* zstd-dstream))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
   (output (* zstd-outbuffer))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
   (input (* zstd-inbuffer)))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
 (define-alien-routine "ZSTD_DStreamInSize" size-t)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
45
 (define-alien-routine "ZSTD_DStreamOutSize" size-t)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
46
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
 (defmacro with-zstd-dstream ((dv dst &key (close t)) &body body)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
   `(let ((,dv ,dst))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
      (unwind-protect (progn ,@body)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
        ,@(when close `((zstd-freedstream ,dv))))))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
 
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
 (defmacro with-zstd-cstream ((cv cst &key (close t)) &body body)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
53
   `(let ((,cv ,cst))
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
      (unwind-protect (progn ,@body)
b719ae57647d zstd refactoring
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
        ,@(when close `((zstd-freecstream ,cv))))))