#pragma once #include #include #include #include #include #include #include #include #include #include #include "request/request.h" #include "response/response.h" class Server { public: Server(); ~Server(); void run(int socketDescriptor); private: void handleRequest(std::unique_ptr request); void router(const std::vector& path); void printEnv(std::ostream& out, FCGX_Request& request); std::string_view getPath(const FCGX_Request& request); private: bool terminating; uint64_t requestCount; std::optional serverName; };