]> wimlib.net Git - wimlib/blob - include/wimlib/decompressor_ops.h
Update progress functions
[wimlib] / include / wimlib / decompressor_ops.h
1 /*
2  * decompressor_ops.h
3  *
4  * Interface implemented by decompressors for specific formats.
5  */
6
7 #ifndef _WIMLIB_DECOMPRESSOR_OPS_H
8 #define _WIMLIB_DECOMPRESSOR_OPS_H
9
10 #include <stddef.h>
11
12 struct decompressor_ops {
13
14         int (*create_decompressor)(size_t max_block_size,
15                                    const struct wimlib_decompressor_params_header *extra_params,
16                                    void **private_ret);
17
18         int (*decompress)(const void *compressed_data,
19                           size_t compressed_size,
20                           void *uncompressed_data,
21                           size_t uncompressed_size,
22                           void *private);
23
24         void (*free_decompressor)(void *private);
25 };
26
27 extern const struct decompressor_ops lzx_decompressor_ops;
28 extern const struct decompressor_ops xpress_decompressor_ops;
29 extern const struct decompressor_ops lzms_decompressor_ops;
30
31 extern void
32 cleanup_decompressor_params(void);
33
34 #endif /* _WIMLIB_DECOMPRESSOR_OPS_H */