42 lines
955 B
C++
42 lines
955 B
C++
#ifndef MULTIPART_PROCESSOR_H
|
|
#define MULTIPART_PROCESSOR_H
|
|
|
|
#include "PsychicCore.h"
|
|
|
|
/*
|
|
* MultipartProcessor - handle parsing and processing a multipart form.
|
|
* */
|
|
|
|
class MultipartProcessor
|
|
{
|
|
protected:
|
|
PsychicRequest* _request;
|
|
PsychicUploadCallback _uploadCallback;
|
|
|
|
String _temp;
|
|
size_t _parsedLength;
|
|
uint8_t _multiParseState;
|
|
String _boundary;
|
|
uint8_t _boundaryPosition;
|
|
size_t _itemStartIndex;
|
|
size_t _itemSize;
|
|
String _itemName;
|
|
String _itemFilename;
|
|
String _itemType;
|
|
String _itemValue;
|
|
uint8_t* _itemBuffer;
|
|
size_t _itemBufferIndex;
|
|
bool _itemIsFile;
|
|
|
|
void _handleUploadByte(uint8_t data, bool last);
|
|
void _parseMultipartPostByte(uint8_t data, bool last);
|
|
|
|
public:
|
|
MultipartProcessor(PsychicRequest* request, PsychicUploadCallback uploadCallback = nullptr);
|
|
~MultipartProcessor();
|
|
|
|
esp_err_t process();
|
|
esp_err_t process(const char* body);
|
|
};
|
|
|
|
#endif |