// SPDX-FileCopyrightText: 2023 Yury Gubich // SPDX-License-Identifier: GPL-3.0-or-later #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" #include "utils/helpers.h" #include "config.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; };