1 /* Based on node-formidable by Felix Geisendörfer
2 * Igor Afonov - afonov@gmail.com - 2012
3 * MIT License - http://www.opensource.org/licenses/mit-license.php
5 #ifndef _multipart_parser_h
6 #define _multipart_parser_h
16 typedef struct multipart_parser multipart_parser
;
17 typedef struct multipart_parser_settings multipart_parser_settings
;
18 typedef struct multipart_parser_state multipart_parser_state
;
20 typedef int (*multipart_data_cb
) (multipart_parser
*, const char *at
, size_t length
);
21 typedef int (*multipart_notify_cb
) (multipart_parser
*);
23 struct multipart_parser_settings
{
24 multipart_data_cb on_header_field
;
25 multipart_data_cb on_header_value
;
26 multipart_data_cb on_part_data
;
28 multipart_notify_cb on_part_data_begin
;
29 multipart_notify_cb on_headers_complete
;
30 multipart_notify_cb on_part_data_end
;
31 multipart_notify_cb on_body_end
;
34 multipart_parser
* multipart_parser_init
35 (const char *boundary
, const multipart_parser_settings
* settings
);
37 void multipart_parser_free(multipart_parser
* p
);
39 size_t multipart_parser_execute(multipart_parser
* p
, const char *buf
, size_t len
);
41 void multipart_parser_set_data(multipart_parser
* p
, void* data
);
42 void * multipart_parser_get_data(multipart_parser
* p
);