multipart_reader.h 836 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include <stdint.h>
  3. #include "multipart_parser.h"
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. struct multipart_reader;
  8. typedef struct multipart_reader multipart_reader;
  9. typedef void (*multipart_reader_callback)(const multipart_reader* reader, const char* data, uint64_t data_length);
  10. struct multipart_reader {
  11. multipart_reader_callback on_receive;
  12. void* user_data;
  13. char form_data_name[64];
  14. char form_data_filename[128];
  15. char boundary[64];
  16. multipart_parser parser;
  17. multipart_parser_settings parser_settings;
  18. };
  19. multipart_reader* multipart_reader_create(const char* boundary, multipart_reader_callback on_receive, void* user_data);
  20. int multipart_reader_execute(multipart_reader *reader, const void *data, uint64_t length);
  21. void multipart_reader_destroy(multipart_reader *reader);
  22. #ifdef __cplusplus
  23. }
  24. #endif