aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Modules/_zstd/zstddict.h
blob: 4a403416dbd4a3e9e9c5a1b8b1917528cfd4d289 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* Low level interface to the Zstandard algorthm & the zstd library. */

#ifndef ZSTD_DICT_H
#define ZSTD_DICT_H

#include <zstd.h>                 // ZSTD_DDict

typedef struct {
    PyObject_HEAD

    /* Reusable compress/decompress dictionary, they are created once and
       can be shared by multiple threads concurrently, since its usage is
       read-only.
       c_dicts is a dict, int(compressionLevel):PyCapsule(ZSTD_CDict*) */
    ZSTD_DDict *d_dict;
    PyObject *c_dicts;

    /* Dictionary content. */
    char *dict_buffer;
    Py_ssize_t dict_len;

    /* Dictionary id */
    uint32_t dict_id;

    /* Lock to protect the digested dictionaries */
    PyMutex lock;
} ZstdDict;

#endif  // !ZSTD_DICT_H