1#ifndef TENDUKE_HTTP_SERVER_ABSTRACTHTTPSERVER_H
2#define TENDUKE_HTTP_SERVER_ABSTRACTHTTPSERVER_H
4#include "./HTTPServer.h"
5#include "./HTTPRequest.h"
6#include "./HTTPResponse.h"
7#include "./HTTPRequestHandler.h"
8#include "net/URLCodec.h"
29 std::unique_ptr<tenduke::osa::Socket> socket,
30 const std::shared_ptr<const ::tenduke::net::URLCodec> &urlCodec
39 const std::string &route,
40 const std::shared_ptr<tenduke::http::server::HTTPRequestHandler> &handler
47 std::uint16_t
getPort()
override;
48 void start()
override;
73 std::map<std::string, std::shared_ptr<tenduke::http::server::HTTPRequestHandler>>
routes;
76 std::unique_ptr<tenduke::osa::Socket> socket;
77 const std::shared_ptr<const ::tenduke::net::URLCodec> urlCodec;
HTTPRequest parseRequest(const std::shared_ptr< tenduke::osa::Socket > &requestSocket) const
Parses HTTP request from socket.
Definition AbstractHTTPServer.cpp:71
void handleRequest(tenduke::http::server::HTTPRequest request, tenduke::http::server::HTTPResponse response) const
Handles HTTP request.
Definition AbstractHTTPServer.cpp:124
void stop() override
Stops the server.
Definition AbstractHTTPServer.cpp:64
std::uint16_t getPort() override
Returns the port where this simple server is listening.
Definition AbstractHTTPServer.cpp:156
std::atomic_bool running
Flag to indicate if the server is running.
Definition AbstractHTTPServer.h:71
void start() override
Starts the server.
Definition AbstractHTTPServer.cpp:32
void registerRoute(const std::string &route, const std::shared_ptr< tenduke::http::server::HTTPRequestHandler > &handler)
Register a route.
Definition AbstractHTTPServer.cpp:162
std::map< std::string, std::shared_ptr< tenduke::http::server::HTTPRequestHandler > > routes
Routes.
Definition AbstractHTTPServer.h:73
AbstractHTTPServer(std::unique_ptr< tenduke::osa::Socket > socket, const std::shared_ptr< const ::tenduke::net::URLCodec > &urlCodec)
Constructs new instance.
Definition AbstractHTTPServer.cpp:19
A HTTP-request parsed by HTTP server.
Definition HTTPRequest.h:17
HTTP-response to be returned by a HTTP server.
Definition HTTPResponse.h:15
Interface for simple HTTPServer.
Definition HTTPServer.h:17
Simple HTTP-server.
Definition AbstractHTTPServer.h:15
HTTP-related services.
Definition BadRequest.h:6
Root for classes, functions and globals of 10Duke C++ Client.
Definition APIRequest.h:4