40#include "platforms/esp/is_esp.h"
233 class ServerAsyncRunner;
const string & path() const FL_NO_EXCEPT
Get request path (e.g., "/", "/api/status")
optional< string > query(const string ¶m) const FL_NO_EXCEPT
Get query parameter value by name.
bool is_post() const FL_NO_EXCEPT
Check if request is POST.
const string & body() const FL_NO_EXCEPT
Get request body (for POST/PUT requests)
map< string, string > mHeaders
optional< string > header(const string &name) const FL_NO_EXCEPT
Get header value by name (case-insensitive)
const string & method() const FL_NO_EXCEPT
Get HTTP method (e.g., "GET", "POST", "PUT", "DELETE")
map< string, string > mQuery
bool has_body() const FL_NO_EXCEPT
Check if request has a body.
const string & http_version() const FL_NO_EXCEPT
Get HTTP version (e.g., "HTTP/1.1")
bool is_get() const FL_NO_EXCEPT
Check if request is GET.
HTTP request object (immutable, passed by const reference)
Response & header(const string &name, const string &value) FL_NO_EXCEPT
Add HTTP header.
Response & json(const class json &data) FL_NO_EXCEPT
Set JSON response body with automatic Content-Type header.
string to_string() const FL_NO_EXCEPT
Response & body(const string &content) FL_NO_EXCEPT
Set response body.
static Response bad_request(const string &message) FL_NO_EXCEPT
Factory method for 400 Bad Request response.
static Response ok(const string &body="") FL_NO_EXCEPT
Factory method for 200 OK response.
Response & status(int code) FL_NO_EXCEPT
Set HTTP status code.
static Response not_found() FL_NO_EXCEPT
Factory method for 404 Not Found response.
map< string, string > mHeaders
static Response internal_error(const string &message) FL_NO_EXCEPT
Factory method for 500 Internal Server Error response.
HTTP response builder (fluent interface)
void accept_connections() FL_NO_EXCEPT
void stop() FL_NO_EXCEPT
Stop server and close all connections.
bool setup_listen_socket(int port) FL_NO_EXCEPT
vector< ClientConnection > mClientSockets
void post(const string &path, RouteHandler handler) FL_NO_EXCEPT
Convenience method for POST routes.
Server() FL_NO_EXCEPT
Constructor.
void get(const string &path, RouteHandler handler) FL_NO_EXCEPT
Convenience method for GET routes.
bool start(int port=8080) FL_NO_EXCEPT
Start server on specified port.
vector< RouteEntry > mRoutes
void put(const string &path, RouteHandler handler) FL_NO_EXCEPT
Convenience method for PUT routes.
void del(const string &path, RouteHandler handler) FL_NO_EXCEPT
Convenience method for DELETE routes.
void cleanup_stale_connections() FL_NO_EXCEPT
size_t process_requests() FL_NO_EXCEPT
bool send_response(int client_fd, const Response &response) FL_NO_EXCEPT
int port() const FL_NO_EXCEPT
Get server port.
size_t update() FL_NO_EXCEPT
Update server (process pending requests non-blocking)
string last_error() const FL_NO_EXCEPT
Get last error message.
void route(const string &method, const string &path, RouteHandler handler) FL_NO_EXCEPT
Register route handler using fl::function.
fl::unique_ptr< ServerAsyncRunner > mAsyncRunner
optional< RouteHandler > find_handler(const string &method, const string &path) const FL_NO_EXCEPT
void close_client(size_t index) FL_NO_EXCEPT
~Server() FL_NO_EXCEPT
Destructor (stops server if running)
bool is_running() const FL_NO_EXCEPT
Check if server is running.
optional< Request > read_request(ClientConnection &client) FL_NO_EXCEPT
function< Response(const Request &)> RouteHandler
Route handler function signature Takes const reference to Request, returns Response by value.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
constexpr int type_rank< T >::value
asio::http::Request http_request
MapRedBlackTree< Key, T, Compare, fl::allocator_slab< char > > map
asio::http::Response http_response
asio::http::Server HttpServer
Base definition for an LED controller.