1#ifndef KEEL_DECOMPRESS_H
2#define KEEL_DECOMPRESS_H
46 int (*emit)(
void *ctx,
const char *data,
size_t len),
140 const char *data,
size_t len,
int flush,
141 int (*emit)(
void *ctx,
const char *data,
struct KlCompressCtx KlCompressCtx
Opaque per-server compression context (algorithm config, level). User-owned — KEEL never inspects or ...
Definition compress.h:67
int kl_decompress_body(KlDecompressConfig *cfg, const char *in, size_t in_len, char **out, size_t *out_len, KlAllocator *alloc)
Decompress a buffer body in one shot.
void kl_decompress_stream_free(KlDecompressStream *ds)
Free decompression stream resources.
int kl_decompress_stream_feed(KlDecompressStream *ds, const char *data, size_t len, int flush, int(*emit)(void *ctx, const char *data, size_t len), void *emit_ctx)
Feed compressed data through the decompression stream.
int kl_decompress_stream_init(KlDecompressStream *ds, KlDecompressConfig *cfg, KlAllocator *alloc)
Initialize a decompression stream.
KlDecompress *(* KlDecompressFactory)(KlCompressCtx *ctx, KlAllocator *alloc)
Factory creates a KlDecompress session from the shared context.
Definition decompress.h:71
Bring-your-own allocator vtable.
Definition allocator.h:12
Decompression configuration.
Definition decompress.h:79
KlDecompressFactory factory
Definition decompress.h:81
KlCompressCtx * ctx
Definition decompress.h:80
void(* ctx_destroy)(KlCompressCtx *ctx)
Definition decompress.h:82
Decompression stream handle.
Definition decompress.h:91
int error
Definition decompress.h:94
KlAllocator * alloc
Definition decompress.h:93
KlDecompress * decomp
Definition decompress.h:92
Definition decompress.h:16
void(* reset)(KlDecompress *self)
Reset for reuse (may be NULL if not reusable).
Definition decompress.h:56
int(* decompress)(KlDecompress *self, const char *in, size_t in_len, char **out, size_t *out_len, KlAllocator *alloc)
Single-shot: decompress entire buffer into *out.
Definition decompress.h:31
int(* dfeed)(KlDecompress *self, const char *data, size_t len, int flush, int(*emit)(void *ctx, const char *data, size_t len), void *emit_ctx)
Streaming: feed compressed input, emit decompressed output.
Definition decompress.h:45
void(* destroy)(KlDecompress *self)
Free all resources.
Definition decompress.h:59