Class HttpServer#

Class Documentation#

class HttpServer#

A simple HTTP server that listens for POST or PUT requests on a given endpoint.

The server is started on a separate thread(s) and will call the provided payload_parse_fn_t function when an incoming request is received. The payload_parse_fn_t function is expected to return a tuple conforming to parse_status_t (ex: std::make_tuple(200, "text/plain"s, "OK"s, nullptr)).

Param payload_parse_fn:

The function that will be called when a POST request is received.

Param bind_address:

The address to bind the server to.

Param port:

The port to bind the server to.

Param endpoint:

The endpoint to listen for POST requests on.

Param method:

The HTTP method to listen for.

Param num_threads:

The number of threads to use for the server.

Param max_payload_size:

The maximum size in bytes of the payload that the server will accept in a single request.

Param request_timeout:

The timeout for a request.

Public Functions

HttpServer(
std::vector<HttpEndpoint> endpoints,
std::string bind_address = "127.0.0.1",
unsigned short port = 8080,
unsigned short num_threads = 1,
std::size_t max_payload_size = DefaultMaxPayloadSize,
std::chrono::seconds request_timeout = std::chrono::seconds(30)
)#
~HttpServer()#
void start()#
void stop()#
bool is_running() const#