|
SNode.C
|
#include <RequestParser.h>
Public Member Functions | |
| RequestParser (core::socket::stream::SocketContext *socketContext, const std::function< void()> &onRequestStart, const std::function< void(Request &&)> &onRequestParsed, const std::function< void(int, const std::string &)> &onRequestParseError) | |
| RequestParser (const RequestParser &)=delete | |
| RequestParser & | operator= (const RequestParser &)=delete |
Public Member Functions inherited from web::http::Parser | |
| Parser (core::socket::stream::SocketContext *socketContext, const enum HTTPCompliance &compliance=HTTPCompliance::RFC2616|HTTPCompliance::RFC7230) | |
| virtual | ~Parser () |
| std::size_t | parse () |
| void | reset () |
Private Member Functions | |
| virtual bool | methodSupported (const std::string &method) const |
| void | begin () override |
| void | parseStartLine (const std::string &line) override |
| void | analyzeHeader () override |
| void | parsingFinished () override |
| void | parseError (int code, const std::string &reason) override |
Private Attributes | |
| std::set< std::string > | supportedMethods {"GET", "PUT", "POST", "DELETE", "CONNECT", "OPTIONS", "TRACE", "PATCH", "HEAD"} |
| Request | request |
| std::function< void()> | onRequestStart |
| std::function< void(Request &&)> | onRequestParsed |
| std::function< void(int, const std::string &)> | onRequestParseError |
Additional Inherited Members | |
Protected Types inherited from web::http::Parser | |
| enum struct | HTTPCompliance : unsigned short { RFC1945 = 0x01 << 0 , RFC2616 = 0x01 << 1 , RFC7230 = 0x01 << 2 , RFC7231 = 0x01 << 3 , RFC7232 = 0x01 << 4 , RFC7233 = 0x01 << 5 , RFC7234 = 0x01 << 6 , RFC7235 = 0x01 << 7 , RFC7540 = 0x01 << 8 , RFC7541 = 0x01 << 9 } |
| enum struct | ParserState { BEGIN , FIRSTLINE , HEADER , BODY , TRAILER , ERROR } |
Protected Attributes inherited from web::http::Parser | |
| enum web::http::Parser::HTTPCompliance | hTTPCompliance |
| ParserState | parserState = ParserState::BEGIN |
| TransferEncoding | transferEncoding = TransferEncoding::HTTP10 |
| CiStringMap< std::string > | headers |
| std::vector< char > | content |
| int | httpMajor = 0 |
| int | httpMinor = 0 |
| std::list< web::http::ContentDecoder * > | decoderQueue |
| core::socket::stream::SocketContext * | socketContext = nullptr |
| std::string | line |
| std::size_t | contentLength = 0 |
| std::size_t | contentLengthRead = 0 |
Static Protected Attributes inherited from web::http::Parser | |
| static const std::regex | httpVersionRegex |
Definition at line 62 of file RequestParser.h.
| web::http::server::RequestParser::RequestParser | ( | core::socket::stream::SocketContext * | socketContext, |
| const std::function< void()> & | onRequestStart, | ||
| const std::function< void(Request &&)> & | onRequestParsed, | ||
| const std::function< void(int, const std::string &)> & | onRequestParseError | ||
| ) |
Definition at line 56 of file RequestParser.cpp.
References onRequestParsed, onRequestParseError, onRequestStart, and web::http::Parser::Parser().
Referenced by web::http::server::SocketContext::SocketContext().
|
delete |
|
overrideprivatevirtual |
Reimplemented from web::http::Parser.
Definition at line 117 of file RequestParser.cpp.
References web::http::Parser::analyzeHeader(), web::http::Parser::BODY, web::http::Chunked, web::http::ciContains(), web::http::Close, web::http::server::Request::connectionState, web::http::Parser::contentLength, web::http::server::Request::cookies, web::http::Parser::headers, web::http::Keep, web::http::Parser::parserState, parsingFinished(), request, httputils::str_split(), httputils::str_trimm(), and web::http::Parser::transferEncoding.
|
overrideprivatevirtual |
Implements web::http::Parser.
Definition at line 70 of file RequestParser.cpp.
References onRequestStart.
|
privatevirtual |
Definition at line 66 of file RequestParser.cpp.
References supportedMethods.
Referenced by parseStartLine().
|
delete |
|
overrideprivatevirtual |
Implements web::http::Parser.
Definition at line 174 of file RequestParser.cpp.
References web::http::Parser::ERROR, onRequestParseError, web::http::Parser::parserState, and web::http::Parser::reset().
Referenced by parseStartLine().
|
overrideprivatevirtual |
Implements web::http::Parser.
Definition at line 74 of file RequestParser.cpp.
References web::http::Parser::HEADER, web::http::HTTP10, web::http::Parser::httpMajor, web::http::Parser::httpMinor, web::http::server::Request::httpVersion, web::http::Parser::httpVersionRegex, web::http::Identity, web::http::server::Request::method, methodSupported(), parseError(), web::http::Parser::parserState, web::http::server::Request::queries, request, httputils::str_split(), web::http::Parser::transferEncoding, and web::http::server::Request::url.
|
overrideprivatevirtual |
Implements web::http::Parser.
Definition at line 161 of file RequestParser.cpp.
References web::http::Parser::BEGIN, web::http::server::Request::body, web::http::Parser::content, web::http::Parser::headers, web::http::server::Request::headers, web::http::Parser::httpMajor, web::http::server::Request::httpMajor, web::http::Parser::httpMinor, web::http::server::Request::httpMinor, onRequestParsed, web::http::Parser::parserState, request, and web::http::Parser::reset().
Referenced by analyzeHeader().
|
private |
Definition at line 94 of file RequestParser.h.
Referenced by parsingFinished(), and RequestParser().
|
private |
Definition at line 95 of file RequestParser.h.
Referenced by parseError(), and RequestParser().
|
private |
Definition at line 93 of file RequestParser.h.
Referenced by begin(), and RequestParser().
|
private |
Definition at line 90 of file RequestParser.h.
Referenced by analyzeHeader(), parseStartLine(), and parsingFinished().
|
private |
Definition at line 74 of file RequestParser.h.
Referenced by methodSupported().