#pragma once #include #include #include #include #include "request/request.h" #include "response/response.h" class Server; class Router { public: using Handler = std::function; Router(); void addRoute(const std::string& path, const Handler& handler); void route(const std::string& path, std::unique_ptr request, Server* server); private: void handleNotFound(const std::string& path, std::unique_ptr request); void handleInternalError(const std::exception& exception, std::unique_ptr request); private: std::map table; };