summaryrefslogtreecommitdiff
path: root/src/http_content_decompress.h
blob: 3c2ba4841e5f48aef2b426efa6cd942cec5bae57 (plain)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
**********************************************************************************************
*	File: http_content_decompress.h
*   Description: 
*	Authors: LuWenPeng <[email protected]>
*	Date:    2022-10-31
*   Copyright: (c) Since 2022 Geedge Networks, Ltd. All rights reserved.
***********************************************************************************************
*/


#ifndef _HTTP_CONTENT_DECOMPRESS_H_
#define _HTTP_CONTENT_DECOMPRESS_H_

#ifdef __cplusplus
extern "C"
{
#endif

#include <stddef.h>

enum http_content_encoding {
    HTTP_CONTENT_ENCODING_NONE = 0,
    HTTP_CONTENT_ENCODING_GZIP = 1 << 1,
    HTTP_CONTENT_ENCODING_DEFLATE = 1 << 2,
    HTTP_CONTENT_ENCODING_BR = 1 << 3,
};

struct http_content_decompress;

enum http_content_encoding
http_content_encoding_str2int(const char *content_encoding);

const char *
http_content_encoding_int2str(enum http_content_encoding content_encoding);

struct http_content_decompress *
http_content_decompress_create(enum http_content_encoding encoding);

void http_content_decompress_destroy(struct http_content_decompress *decompress);

// return   0 : success
// return  -1 : error
int http_content_decompress_write(struct http_content_decompress *decompress,
                                  const char *indata, size_t indata_len,
                                  char **outdata, size_t *outdata_len);

#ifdef __cplusplus
}
#endif

#endif