87 char boundaryStorage[71] = {0};
88 char boundaryBuffer[128] = {0};
90 size_t tokenStart = 0;
91 size_t tokenLength = 0;
92 size_t globalStart = 0;
93 size_t globalLength = 0;
94 size_t matchIndex = 0;
96 int topLevelCoroutine = 0;
97 int nestedParserCoroutine = 0;
99 uint8_t boundaryMatchIndex = 0;
100 size_t boundaryCandidateLength = 0;
101 bool emitBoundaryCandidate =
false;
106 [[nodiscard]]
bool parseBoundary(
char currentChar);
107 [[nodiscard]]
bool parseHeaders(
char currentChar);
108 [[nodiscard]]
bool parseBody(
char currentChar);
111 [[nodiscard]]
bool parsePreamble(
char currentChar);
112 [[nodiscard]]
bool parseBoundaryLine(
char currentChar);
113 [[nodiscard]]
bool parseHeaderName(
char currentChar);
114 [[nodiscard]]
bool parseHeaderValue(
char currentChar);
115 [[nodiscard]]
bool parseBodyUntilBoundary(
char currentChar);
117 template <
bool (HttpMultipartParser::*Func)(
char), Token currentResult>
118 Result process(Span<const char>& data,
size_t& readBytes, Span<const char>& parsedData);
Zero-copy view of a Content-Disposition multipart header value.
Definition HttpMultipartParser.h:19
Result parse(Span< const char > data, size_t &readBytes, Span< const char > &parsedData)
Parse an incoming chunk of bytes, returning actually parsed span.