Parser for incoming requests. More...
#include <request_parser.h>
Public Member Functions | |
template<typename InputIterator > | |
boost::tuple< boost::tribool, InputIterator > | parse (request &req, InputIterator begin, InputIterator end) |
request_parser () | |
Construct ready to parse the request method. | |
void | reset () |
Reset to initial parser state. | |
Private Types | |
enum | state { method_start, method, uri_start, uri, http_version_h, http_version_t_1, http_version_t_2, http_version_p, http_version_slash, http_version_major_start, http_version_major, http_version_minor_start, http_version_minor, expecting_newline_1, header_line_start, header_lws, header_name, space_before_header_value, header_value, expecting_newline_2, expecting_newline_3 } |
The current state of the parser. More... | |
Private Member Functions | |
boost::tribool | consume (request &req, char input) |
Handle the next character of input. | |
Static Private Member Functions | |
static bool | is_char (int c) |
Check if a byte is an HTTP character. | |
static bool | is_ctl (int c) |
Check if a byte is an HTTP control character. | |
static bool | is_digit (int c) |
Check if a byte is a digit. | |
static bool | is_tspecial (int c) |
Check if a byte is defined as an HTTP tspecial character. | |
Private Attributes | |
enum ros_http_video_streamer::request_parser::state | state_ |
Parser for incoming requests.
Definition at line 23 of file request_parser.h.
enum ros_http_video_streamer::request_parser::state [private] |
The current state of the parser.
Definition at line 67 of file request_parser.h.
Construct ready to parse the request method.
Definition at line 17 of file request_parser.cpp.
boost::tribool ros_http_video_streamer::request_parser::consume | ( | request & | req, |
char | input | ||
) | [private] |
Handle the next character of input.
Definition at line 27 of file request_parser.cpp.
bool ros_http_video_streamer::request_parser::is_char | ( | int | c | ) | [static, private] |
Check if a byte is an HTTP character.
Definition at line 296 of file request_parser.cpp.
bool ros_http_video_streamer::request_parser::is_ctl | ( | int | c | ) | [static, private] |
Check if a byte is an HTTP control character.
Definition at line 301 of file request_parser.cpp.
bool ros_http_video_streamer::request_parser::is_digit | ( | int | c | ) | [static, private] |
Check if a byte is a digit.
Definition at line 320 of file request_parser.cpp.
bool ros_http_video_streamer::request_parser::is_tspecial | ( | int | c | ) | [static, private] |
Check if a byte is defined as an HTTP tspecial character.
Definition at line 306 of file request_parser.cpp.
boost::tuple<boost::tribool, InputIterator> ros_http_video_streamer::request_parser::parse | ( | request & | req, |
InputIterator | begin, | ||
InputIterator | end | ||
) | [inline] |
Parse some data. The tribool return value is true when a complete request has been parsed, false if the data is invalid, indeterminate when more data is required. The InputIterator return value indicates how much of the input has been consumed.
Definition at line 37 of file request_parser.h.
Reset to initial parser state.
Definition at line 22 of file request_parser.cpp.
enum ros_http_video_streamer::request_parser::state ros_http_video_streamer::request_parser::state_ [private] |