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