41#ifndef __HttpMultipartUpload_h
42#define __HttpMultipartUpload_h
58 MultipartUpload_NoError=0,
59 MultipartUpload_ConnectionTerminated=-100,
60 MultipartUpload_NoMemory,
61 MultipartUpload_ParseError1,
62 MultipartUpload_ParseError2,
63 MultipartUpload_ParseError3,
64 MultipartUpload_ParseError4,
65 MultipartUpload_ParseError5,
66 MultipartUpload_ParseError6,
67 MultipartUpload_UserRetErr
132 const char* fileName,
133 const char* contentType,
134 const char* contentTransferEncoding);
175 MultipartUpload_ReadBoundaryTag,
176 MultipartUpload_ReadHeaders,
177 MultipartUpload_ReadFormData,
178 MultipartUpload_ReadFileData,
179 MultipartUpload_DrainBody
180} MultipartUpload_States;
295 DoubleList boundaryStack;
306 char* contentTransferEncoding;
309 MultipartUpload_States state;
370#define MultipartUpload_getServer(o) \
371 HttpConnection_getServer((HttpConnection*)(o))
384 fileBegin, fileData, onError, size, allocator);
struct MultipartUpload MultipartUpload
Parser for multipart/form-data POST requests.
BA_API HttpConnection * MultipartUpload_getCon(MultipartUpload *o)
Detach and prepare an asynchronous connection handoff.
int(* MultipartUpload_FileData)(struct MultipartUpload *o, const U8 *data, U16 len)
Executed by MultipartUpload when a data chunk is available.
Definition: MultipartUpload.h:154
BA_API int MultipartUpload_run(MultipartUpload *o, HttpRequest *req, BaBool setKeepAlive)
Parse multipart input synchronously, blocking for additional bytes.
int run(HttpRequest *req, bool setKeepAlive=true)
Parse multipart input synchronously, blocking for additional bytes.
Definition: MultipartUpload.h:392
HttpConnection * getCon(MultipartUpload *o)
Detach the asynchronous parser and release parsing buffers for a handoff.
Definition: MultipartUpload.h:395
~MultipartUpload()
Detach from the dispatcher, free parsing storage, and close the embedded asynchronous connection if s...
Definition: MultipartUpload.h:386
BA_API void MultipartUpload_destructor(MultipartUpload *o)
Detach from the dispatcher, free parsing storage, and close the embedded asynchronous connection if s...
void(* MultipartUpload_EndOfReq)(struct MultipartUpload *o)
Report the final multipart boundary.
Definition: MultipartUpload.h:80
int(* MultipartUpload_FormData)(struct MultipartUpload *o, const char *name, const char *value)
Executed by MultipartUpload every time a form data element such as "text" is found in the multipart d...
Definition: MultipartUpload.h:102
void(* MultipartUpload_Error)(struct MultipartUpload *o, MultipartUpload_ErrorType e)
Executed by MultipartUpload if any errors are detected during parsing of the multipart data stream.
Definition: MultipartUpload.h:168
HttpServer * getServer()
Get the server supplied to the constructor.
Definition: MultipartUpload.h:397
BA_API int MultipartUpload_start(MultipartUpload *o, HttpRequest *req)
Start asynchronous multipart input, taking the request connection.
#define MultipartUpload_getServer(o)
Get the server supplied to the constructor.
Definition: MultipartUpload.h:370
int(* MultipartUpload_FileBegin)(struct MultipartUpload *o, const char *name, const char *fileName, const char *contentType, const char *contentTransferEncoding)
Executed by MultipartUpload when a file is found in the multipart data stream.
Definition: MultipartUpload.h:129
void BA_API MultipartUpload_constructor(MultipartUpload *o, HttpServer *server, MultipartUpload_EndOfReq endOfReq, MultipartUpload_FormData formData, MultipartUpload_FileBegin fileBegin, MultipartUpload_FileData fileData, MultipartUpload_Error onError, U32 bufferSize, AllocatorIntf *allocator)
Construct a parser as described by MultipartUpload::MultipartUpload.
MultipartUpload_ErrorType
Error codes used by the callback function MultipartUpload_Error in interface class MultipartUpload.
Definition: MultipartUpload.h:57
int start(HttpRequest *req)
Start asynchronous multipart input, taking the request connection.
Definition: MultipartUpload.h:389
uint16_t U16
Unsigned 16-bit integer.
Definition: GenPrimT.h:91
S32 SBaFileSize
Signed file-size value in bytes; 32 bits without BA_FILESIZE64.
Definition: GenPrimT.h:138
uint32_t U32
Unsigned 32-bit integer.
Definition: GenPrimT.h:93
uint8_t U8
Unsigned 8-bit integer.
Definition: GenPrimT.h:89
U8 BaBool
Boolean stored in an unsigned byte; FALSE is zero and TRUE is one.
Definition: GenPrimT.h:118
Memory allocation and deallocation Interface class.
Definition: AllocatorIntf.h:98
Contains information about the physical socket connection.
Definition: HttpConnection.h:80
The HttpServer creates an HttpRequest object when the HttpServer parses a client request.
Definition: HttpServer.h:950
The Web Server.
Definition: HttpServer.h:3393
Parser for multipart/form-data POST requests.
Definition: MultipartUpload.h:196
MultipartUpload()
Uninitialized storage; call MultipartUpload_constructor before use.
Definition: MultipartUpload.h:199