httpxx 0.1
Streaming HTTP Parser for C++

http::Message Class Reference

Common denominator of Request and Response classes. More...

#include <Message.hpp>

Inheritance diagram for http::Message:
http::Request http::Response

List of all members.

Public Member Functions

void clear ()
 Empty all request content, but keep allocated buffers.
std::size_t feed (const void *data,::size_t size)
 Feed data to the parser.
std::size_t feed (const char *data,::size_t size)
 Feed data to the parser.
bool complete () const
 Check if the request has been completely parsed.
bool headerscomplete () const
 Check if the request headers have been completely parsed.
int majorversion () const
 Obtain the HTTP version used by the remote peer.
int minorversion () const
 Obtain the HTTP revision used by the remote peer.
const Flags flags () const
 Obtain parser flags.
bool hasheader (const std::string &field) const
 Check if the request included a header named field.
std::string header (const std::string &field) const
 Obtain the value of the header named field.
const std::string & body () const
 Obtain the entire request body.

Protected Member Functions

 Message ()
 Build a fresh, independant HTTP parser.

Protected Attributes

::http_parser_settings mySettings
::http_parser myParser
std::string myCurrentField
std::string myCurrentValue
std::map< std::string,
std::string > 
myHeaders
std::string myBody
bool myComplete
bool myHeadersComplete

Detailed Description

Common denominator of Request and Response classes.

This classes is an implementation detail and should not be instantiated directly. You should use its services through instances of the the Request and Response classes instead.

Definition at line 27 of file Message.hpp.


Member Function Documentation

const std::string & http::Message::body ( ) const

Obtain the entire request body.

Warning:
This value is undefined until complete() returns true.

Definition at line 155 of file Message.cpp.

std::size_t http::Message::feed ( const void *  data,
::size_t  size 
)

Feed data to the parser.

Parameters:
dataAddress of first byte to read.
sizeNumber of bytes to read, starting at data.
Returns:
Number of bytes processed.
See also:
complete()

Definition at line 105 of file Message.cpp.

std::size_t http::Message::feed ( const char *  data,
::size_t  size 
)

Feed data to the parser.

Parameters:
dataAddress of first byte to read.
sizeNumber of bytes to read, starting at data.
Returns:
Number of bytes processed.
See also:
complete()

Definition at line 110 of file Message.cpp.

const Flags http::Message::flags ( ) const

Obtain parser flags.

Returns:
Flags documenting the parsed request/response object.

Definition at line 135 of file Message.cpp.

bool http::Message::hasheader ( const std::string &  field) const

Check if the request included a header named field.

Parameters:
fieldName of header to check.
Warning:
This value is unspecified until headerscomplete() returns true.

Definition at line 140 of file Message.cpp.

std::string http::Message::header ( const std::string &  field) const

Obtain the value of the header named field.

Parameters:
fieldName of header to check.
Returns:
An empty string if the header was not present, the header value otherwise.
Warning:
This value is unspecified until headerscomplete() returns true.

Definition at line 146 of file Message.cpp.

int http::Message::majorversion ( ) const

Obtain the HTTP version used by the remote peer.

Returns:
A numeric error code (should be 1 for now).
int http::Message::minorversion ( ) const

Obtain the HTTP revision used by the remote peer.

Returns:
A numeric error code (should be 0 or 1 for now).

Definition at line 130 of file Message.cpp.


The documentation for this class was generated from the following files:
 All Classes Functions