Mercurial > core / 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 |
1 ;;; stream1.lisp --- Zstd Streaming v1 API 8 (define-alien-type zstd-cstream zstd-cctx) 10 (define-alien-routine "ZSTD_createCStream" (* zstd-cstream)) 11 (define-alien-routine "ZSTD_freeCStream" void (zcs (* zstd-cstream))) 13 (define-alien-type zstd-enddirective int) 15 ;; (zstd-e-continue 0) 19 (define-alien-routine "ZSTD_compressStream2" size-t 21 (output (* zstd-outbuffer)) 22 (input (* zstd-inbuffer)) 23 (end-op zstd-enddirective)) 25 (define-alien-routine "ZSTD_CStreamInSize" size-t) 26 (define-alien-routine "ZSTD_CStreamOutSize" size-t) 27 (define-alien-routine "ZSTD_initCStream" size-t (zcs (* zstd-cstream)) (compression-level int)) 29 (define-alien-routine "ZSTD_compressStream" size-t (zcs (* zstd-cstream)) (output (* zstd-outbuffer)) (input (* zstd-inbuffer))) 30 (define-alien-routine "ZSTD_flushStream" size-t (zcs (* zstd-cstream)) (output (* zstd-outbuffer))) 31 (define-alien-routine "ZSTD_endStream" size-t (zcs (* zstd-cstream)) (output (* zstd-outbuffer))) 33 (define-alien-type zstd-dstream zstd-dctx) 35 (define-alien-routine "ZSTD_createDStream" (* zstd-dstream)) 36 (define-alien-routine "ZSTD_freeDStream" void (zds (* zstd-dstream))) 37 (define-alien-routine "ZSTD_initDStream" size-t (zds (* zstd-dstream))) 39 (define-alien-routine "ZSTD_decompressStream" size-t 40 (zds (* zstd-dstream)) 41 (output (* zstd-outbuffer)) 42 (input (* zstd-inbuffer))) 44 (define-alien-routine "ZSTD_DStreamInSize" size-t) 45 (define-alien-routine "ZSTD_DStreamOutSize" size-t) 47 (defmacro with-zstd-dstream ((dv dst &key (close t)) &body body) 49 (unwind-protect (progn ,@body) 50 ,@(when close `((zstd-freedstream ,dv)))))) 52 (defmacro with-zstd-cstream ((cv cst &key (close t)) &body body) 54 (unwind-protect (progn ,@body) 55 ,@(when close `((zstd-freecstream ,cv))))))