#pragma once #include #include #include #include #include #include #include #include #include #include #include #include "request/request.h" #include "response/response.h" #include "router.h" class Server { public: Server(); ~Server(); void run(int socketDescriptor); private: void handleRequest(std::unique_ptr request); static bool info(Request* request); static bool printEnvironment(Request* request); private: bool terminating; uint64_t requestCount; std::optional serverName; Router router; };