From 67ab96f9da72526369b830ca2d9b70ce3d85a718 Mon Sep 17 00:00:00 2001 From: whaffman Date: Thu, 16 Oct 2025 00:54:29 +0200 Subject: [PATCH] refactor: add noexcept annotations to getters and observers --- webserv/client/Client.cpp | 6 +++--- webserv/client/Client.hpp | 6 +++--- webserv/config/ConfigManager.cpp | 1 - webserv/config/LocationConfig.hpp | 2 +- webserv/config/directive/DirectiveValue.hpp | 4 ++-- webserv/config/validation/ConfigValidator.cpp | 3 +-- webserv/config/validation/ConfigValidator.hpp | 2 +- webserv/config/validation/ValidationEngine.cpp | 2 +- webserv/config/validation/ValidationEngine.hpp | 2 +- webserv/config/validation/ValidationResult.cpp | 5 ++--- webserv/config/validation/ValidationResult.hpp | 4 ++-- webserv/handler/URI.cpp | 5 +++-- webserv/handler/URI.hpp | 2 +- webserv/http/HttpRequest.cpp | 16 ++++++++-------- webserv/http/HttpRequest.hpp | 16 ++++++++-------- webserv/http/HttpResponse.cpp | 7 +++---- webserv/http/HttpResponse.hpp | 4 ++-- webserv/router/Router.cpp | 2 +- webserv/router/Router.hpp | 2 +- 19 files changed, 44 insertions(+), 47 deletions(-) diff --git a/webserv/client/Client.cpp b/webserv/client/Client.cpp index c511d29..9395062 100644 --- a/webserv/client/Client.cpp +++ b/webserv/client/Client.cpp @@ -35,7 +35,7 @@ Client::~Client() server_.remove(*clientSocket_); }; -int Client::getStatusCode() const +int Client::getStatusCode() const noexcept { return statusCode_; } @@ -210,12 +210,12 @@ void Client::respond() const server_.disconnect(*this); // ! CRITICAL: RETURN IMMEDIATELY } -HttpRequest &Client::getHttpRequest() const +HttpRequest &Client::getHttpRequest() const noexcept { return *httpRequest_; } -HttpResponse &Client::getHttpResponse() const +HttpResponse &Client::getHttpResponse() const noexcept { return *httpResponse_; } \ No newline at end of file diff --git a/webserv/client/Client.hpp b/webserv/client/Client.hpp index 8948acd..294b6dc 100644 --- a/webserv/client/Client.hpp +++ b/webserv/client/Client.hpp @@ -40,15 +40,15 @@ class Client void poll() const; - [[nodiscard]] int getStatusCode() const; + [[nodiscard]] int getStatusCode() const noexcept; [[nodiscard]] ASocket &getSocket(int fd = -1) const; void setStatusCode(int code); void setCgiSockets(std::unique_ptr cgiStdIn, std::unique_ptr cgiStdOut); - [[nodiscard]] HttpRequest &getHttpRequest() const; - [[nodiscard]] HttpResponse &getHttpResponse() const; + [[nodiscard]] HttpRequest &getHttpRequest() const noexcept; + [[nodiscard]] HttpResponse &getHttpResponse() const noexcept; private: int statusCode_ = Http::StatusCode::OK; diff --git a/webserv/config/ConfigManager.cpp b/webserv/config/ConfigManager.cpp index b73ce15..60e4519 100644 --- a/webserv/config/ConfigManager.cpp +++ b/webserv/config/ConfigManager.cpp @@ -1,5 +1,4 @@ #include - #include // for GlobalConfig #include // for Log #include // for removeComments diff --git a/webserv/config/LocationConfig.hpp b/webserv/config/LocationConfig.hpp index e86bfb4..314366b 100644 --- a/webserv/config/LocationConfig.hpp +++ b/webserv/config/LocationConfig.hpp @@ -20,7 +20,7 @@ class LocationConfig : public AConfig [[nodiscard]] std::string getName() const override; [[nodiscard]] std::string getType() const override; - [[nodiscard]] const std::string &getPath() const { return _path; } + [[nodiscard]] const std::string &getPath() const noexcept { return _path; } private: void parseBlock(const std::string &block) override; diff --git a/webserv/config/directive/DirectiveValue.hpp b/webserv/config/directive/DirectiveValue.hpp index e1c443f..e7346cd 100644 --- a/webserv/config/directive/DirectiveValue.hpp +++ b/webserv/config/directive/DirectiveValue.hpp @@ -28,7 +28,7 @@ using DirectiveValueType = std::variant T get() const { return std::get(value_); } @@ -41,7 +41,7 @@ class DirectiveValue return std::nullopt; } - template [[nodiscard]] bool holds() const { return std::holds_alternative(value_); } + template [[nodiscard]] bool holds() const noexcept { return std::holds_alternative(value_); } [[nodiscard]] std::string toString() const; diff --git a/webserv/config/validation/ConfigValidator.cpp b/webserv/config/validation/ConfigValidator.cpp index 95544eb..dbd02b3 100644 --- a/webserv/config/validation/ConfigValidator.cpp +++ b/webserv/config/validation/ConfigValidator.cpp @@ -1,5 +1,4 @@ #include - #include // for ValidationEngine #include // for AValidationRule #include // for AllowedValuesRule @@ -60,7 +59,7 @@ std::vector ConfigValidator::getWarnings() const return engine_->getWarnings(); } -bool ConfigValidator::hasErrors() const +bool ConfigValidator::hasErrors() const noexcept { return engine_->hasErrors(); } diff --git a/webserv/config/validation/ConfigValidator.hpp b/webserv/config/validation/ConfigValidator.hpp index cdf03bd..dcdf0bd 100644 --- a/webserv/config/validation/ConfigValidator.hpp +++ b/webserv/config/validation/ConfigValidator.hpp @@ -22,7 +22,7 @@ class ConfigValidator [[nodiscard]] std::vector getValidationResults() const; [[nodiscard]] std::vector getErrors() const; [[nodiscard]] std::vector getWarnings() const; - [[nodiscard]] bool hasErrors() const; + [[nodiscard]] bool hasErrors() const noexcept; private: std::unique_ptr engine_; diff --git a/webserv/config/validation/ValidationEngine.cpp b/webserv/config/validation/ValidationEngine.cpp index f8d0b4f..736fcca 100644 --- a/webserv/config/validation/ValidationEngine.cpp +++ b/webserv/config/validation/ValidationEngine.cpp @@ -71,7 +71,7 @@ std::vector ValidationEngine::getWarnings() const return warnings; } -bool ValidationEngine::hasErrors() const +bool ValidationEngine::hasErrors() const noexcept { for (const auto &result : results_) // NOLINT(readability-use-anyofallof) { diff --git a/webserv/config/validation/ValidationEngine.hpp b/webserv/config/validation/ValidationEngine.hpp index 1563ec9..7c39900 100644 --- a/webserv/config/validation/ValidationEngine.hpp +++ b/webserv/config/validation/ValidationEngine.hpp @@ -42,7 +42,7 @@ class ValidationEngine [[nodiscard]] std::vector getValidationResults() const; [[nodiscard]] std::vector getErrors() const; [[nodiscard]] std::vector getWarnings() const; - [[nodiscard]] bool hasErrors() const; + [[nodiscard]] bool hasErrors() const noexcept; private: static void addRule(RuleMap &ruleMap, const std::string &directiveName, std::unique_ptr rule); diff --git a/webserv/config/validation/ValidationResult.cpp b/webserv/config/validation/ValidationResult.cpp index 4df4df7..3564f92 100644 --- a/webserv/config/validation/ValidationResult.cpp +++ b/webserv/config/validation/ValidationResult.cpp @@ -1,5 +1,4 @@ #include - #include // for Log #include // for move @@ -23,12 +22,12 @@ ValidationResult ValidationResult::warning(const std::string &message) return {ValidationResult::Type::WARNING, message}; } -bool ValidationResult::isValidResult() const +bool ValidationResult::isValidResult() const noexcept { return type_ == Type::SUCCESS; } -ValidationResult::Type ValidationResult::getType() const +ValidationResult::Type ValidationResult::getType() const noexcept { return type_; } diff --git a/webserv/config/validation/ValidationResult.hpp b/webserv/config/validation/ValidationResult.hpp index d8dd04c..aa3e203 100644 --- a/webserv/config/validation/ValidationResult.hpp +++ b/webserv/config/validation/ValidationResult.hpp @@ -24,8 +24,8 @@ class ValidationResult static ValidationResult error(const std::string &message); static ValidationResult warning(const std::string &message); - [[nodiscard]] bool isValidResult() const; - [[nodiscard]] ValidationResult::Type getType() const; + [[nodiscard]] bool isValidResult() const noexcept; + [[nodiscard]] ValidationResult::Type getType() const noexcept; [[nodiscard]] std::string getMessage() const; private: diff --git a/webserv/handler/URI.cpp b/webserv/handler/URI.cpp index a0e46ee..9ecf87b 100644 --- a/webserv/handler/URI.cpp +++ b/webserv/handler/URI.cpp @@ -149,14 +149,15 @@ bool URI::isValid() const noexcept return FileUtils::isValidPath(fullPath_); } -bool URI::isCgi() const +bool URI::isCgi() const noexcept { return !getCgiPath().empty(); } std::string URI::getCgiPath() const { - // Log::debug("BaseName: " + baseName_ + ", FullPath: " + fullPath_ + ", Dir: " + dir_ + ", PathInfo: " + pathInfo_ + + // Log::debug("BaseName: " + baseName_ + ", FullPath: " + fullPath_ + ", Dir: " + dir_ + ", PathInfo: " + pathInfo_ + // + // ", Extension: " + getExtension()); if (!isFile() || getExtension().empty() || !config_->get("cgi_enabled").has_value() || !config_->get("cgi_enabled").value()) diff --git a/webserv/handler/URI.hpp b/webserv/handler/URI.hpp index 38f5dea..ed7fc3d 100644 --- a/webserv/handler/URI.hpp +++ b/webserv/handler/URI.hpp @@ -23,7 +23,7 @@ class URI [[nodiscard]] bool isFile() const noexcept; [[nodiscard]] bool isDirectory() const noexcept; [[nodiscard]] bool isValid() const noexcept; - [[nodiscard]] bool isCgi() const; + [[nodiscard]] bool isCgi() const noexcept; [[nodiscard]] std::string getExtension() const noexcept; [[nodiscard]] std::string getCgiPath() const; diff --git a/webserv/http/HttpRequest.cpp b/webserv/http/HttpRequest.cpp index 8b17391..655f22b 100644 --- a/webserv/http/HttpRequest.cpp +++ b/webserv/http/HttpRequest.cpp @@ -24,7 +24,7 @@ HttpRequest::~HttpRequest() Log::trace(LOCATION); } -HttpRequest::State HttpRequest::getState() const +HttpRequest::State HttpRequest::getState() const noexcept { return state_; } @@ -39,12 +39,12 @@ void HttpRequest::setState(State state) state_ = state; } -const HttpHeaders &HttpRequest::getHeaders() const +const HttpHeaders &HttpRequest::getHeaders() const noexcept { return headers_; } -const std::string &HttpRequest::getBody() const +const std::string &HttpRequest::getBody() const noexcept { return body_; } @@ -233,27 +233,27 @@ void HttpRequest::reset() // contentLength_ = 0; } -const URI &HttpRequest::getUri() const +const URI &HttpRequest::getUri() const noexcept { return *uri_; } -const std::string &HttpRequest::getMethod() const +const std::string &HttpRequest::getMethod() const noexcept { return method_; } -const std::string &HttpRequest::getTarget() const +const std::string &HttpRequest::getTarget() const noexcept { return target_; } -const std::string &HttpRequest::getHttpVersion() const +const std::string &HttpRequest::getHttpVersion() const noexcept { return httpVersion_; } -Client &HttpRequest::getClient() const +Client &HttpRequest::getClient() const noexcept { return *client_; } diff --git a/webserv/http/HttpRequest.hpp b/webserv/http/HttpRequest.hpp index 1be5718..4b0a9ec 100644 --- a/webserv/http/HttpRequest.hpp +++ b/webserv/http/HttpRequest.hpp @@ -33,14 +33,14 @@ class HttpRequest HttpRequest &operator=(HttpRequest &&other) noexcept = delete; ~HttpRequest(); - [[nodiscard]] State getState() const; - [[nodiscard]] const URI &getUri() const; - [[nodiscard]] const HttpHeaders &getHeaders() const; - [[nodiscard]] const std::string &getBody() const; - [[nodiscard]] const std::string &getMethod() const; - [[nodiscard]] const std::string &getTarget() const; - [[nodiscard]] const std::string &getHttpVersion() const; - [[nodiscard]] Client &getClient() const; + [[nodiscard]] State getState() const noexcept; + [[nodiscard]] const URI &getUri() const noexcept; + [[nodiscard]] const HttpHeaders &getHeaders() const noexcept; + [[nodiscard]] const std::string &getBody() const noexcept; + [[nodiscard]] const std::string &getMethod() const noexcept; + [[nodiscard]] const std::string &getTarget() const noexcept; + [[nodiscard]] const std::string &getHttpVersion() const noexcept; + [[nodiscard]] Client &getClient() const noexcept; void setState(State state); void receiveData(const char *data, size_t length); diff --git a/webserv/http/HttpResponse.cpp b/webserv/http/HttpResponse.cpp index e4ce718..c933cff 100644 --- a/webserv/http/HttpResponse.cpp +++ b/webserv/http/HttpResponse.cpp @@ -1,6 +1,5 @@ -#include - #include // for getStatusCodeReason +#include #include // for basic_string, operator+, string, char_traits, to_string #include // for vector @@ -44,12 +43,12 @@ void HttpResponse::setComplete() complete_ = true; } -bool HttpResponse::isComplete() const +bool HttpResponse::isComplete() const noexcept { return complete_; } -const HttpHeaders &HttpResponse::getHeaders() const +const HttpHeaders &HttpResponse::getHeaders() const noexcept { return *headers_; } diff --git a/webserv/http/HttpResponse.hpp b/webserv/http/HttpResponse.hpp index b531301..1e287e0 100644 --- a/webserv/http/HttpResponse.hpp +++ b/webserv/http/HttpResponse.hpp @@ -34,9 +34,9 @@ class HttpResponse void setStatus(uint16_t statusCode); - [[nodiscard]] bool isComplete() const; + [[nodiscard]] bool isComplete() const noexcept; - [[nodiscard]] const HttpHeaders &getHeaders() const; + [[nodiscard]] const HttpHeaders &getHeaders() const noexcept; [[nodiscard]] std::vector toBytes() const; diff --git a/webserv/router/Router.cpp b/webserv/router/Router.cpp index 4a21aa5..718a5f3 100644 --- a/webserv/router/Router.cpp +++ b/webserv/router/Router.cpp @@ -22,7 +22,7 @@ Router::Router(Client *client) : client_(client) Log::trace(LOCATION); } -bool Router::isMethodSupported(const std::string &method, const AConfig &config) +bool Router::isMethodSupported(const std::string &method, const AConfig &config) noexcept { const ADirective *allowedMethods = config.getDirective("allowed_methods"); if (allowedMethods == nullptr || !allowedMethods->getValue().try_get>().has_value()) diff --git a/webserv/router/Router.hpp b/webserv/router/Router.hpp index c4bde12..4a14b61 100644 --- a/webserv/router/Router.hpp +++ b/webserv/router/Router.hpp @@ -19,5 +19,5 @@ class Router private: Client *client_; - [[nodiscard]] bool isMethodSupported(const std::string &method, const AConfig &config); + [[nodiscard]] bool isMethodSupported(const std::string &method, const AConfig &config) noexcept; }; \ No newline at end of file