7#ifndef HTTP_RESPONSE_PARSER_H
8#define HTTP_RESPONSE_PARSER_H
12#include <boost/shared_ptr.hpp>
17class HttpResponseParser;
140 virtual void defineStates();
147 void receiveStartHandler();
155 void versionHTTPHandler(
const char expected_letter,
156 const unsigned int next_state);
170 void numberStartHandler(
const unsigned int next_state,
171 const std::string& number_name,
172 unsigned int*
const storage);
188 void numberHandler(
const char following_character,
189 const unsigned int next_state,
190 const std::string& number_name,
191 unsigned int*
const storage);
194 void phraseStartHandler();
197 void phraseHandler();
211 void expectingNewLineHandler(
const unsigned int next_state);
214 void headerLineStartHandler();
217 void headerLwsHandler();
220 void headerNameHandler();
223 void spaceBeforeHeaderValueHandler();
226 void headerValueHandler();
Base class for the HTTP message parsers.
A generic parser for HTTP responses.
static const int EXPECTING_NEW_LINE1_ST
Parsing first new line (after HTTP status phrase).
HttpResponseParser(HttpResponse &response)
Constructor.
static const int HTTP_VERSION_T1_ST
Parsing first occurrence of "T" in "HTTP".
static const int HEADER_VALUE_ST
Parsing header value.
static const int HTTP_VERSION_MAJOR_START_ST
Starting to parse major HTTP version number.
static const int HTTP_BODY_ST
Parsing body of a HTTP message.
static const int HTTP_VERSION_T2_ST
Parsing second occurrence of "T" in "HTTP".
static const int HEADER_NAME_ST
Parsing header name.
void initModel()
Initialize the state model for parsing.
static const int HTTP_VERSION_H_ST
Parsing letter "H" of "HTTP".
static const int HTTP_STATUS_CODE_START_ST
Starting to parse HTTP status code.
static const int EXPECTING_NEW_LINE3_ST
Expecting second new line marking end of HTTP headers.
static const int RECEIVE_START_ST
State indicating a beginning of parsing.
static const int HTTP_VERSION_P_ST
Parsing letter "P" in "HTTP".
static const int HTTP_VERSION_MINOR_START_ST
Starting to parse minor HTTP version number.
static const int HEADER_LINE_START_ST
static const int HTTP_PHRASE_ST
Parsing HTTP status phrase.
static const int HEADER_LWS_ST
Parsing LWS (Linear White Space), i.e.
static const int SPACE_BEFORE_HEADER_VALUE_ST
Parsing space before header value.
static const int HTTP_VERSION_MAJOR_ST
Parsing major HTTP version number.
static const int HTTP_STATUS_CODE_ST
Parsing HTTP status code.
static const int EXPECTING_NEW_LINE2_ST
Expecting new line after parsing header value.
static const int HTTP_VERSION_MINOR_ST
Parsing minor HTTP version number.
static const int HTTP_VERSION_SLASH_ST
Parsing slash character in "HTTP/Y.X".
static const int HTTP_PHRASE_START_ST
Starting to parse HTTP status phrase.
Represents HTTP response message.
static const int SM_DERIVED_STATE_MIN
Value at which custom states in a derived class should begin.
boost::shared_ptr< HttpResponseParser > HttpResponseParserPtr
Pointer to the HttpResponseParser.
boost::shared_ptr< HttpResponseContext > HttpResponseContextPtr
Pointer to the HttpResponseContext.
Defines the logger used by the top-level component of kea-lfc.