From 2aa2af0007b7e969845642027c635cd3fd9c8aea Mon Sep 17 00:00:00 2001 From: Claudius Holeksa Date: Wed, 3 May 2023 20:34:02 +0200 Subject: Moved dirs and added codec-json dir --- forstio/core/error.cpp | 121 ------------------------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 forstio/core/error.cpp (limited to 'forstio/core/error.cpp') diff --git a/forstio/core/error.cpp b/forstio/core/error.cpp deleted file mode 100644 index 727ca95..0000000 --- a/forstio/core/error.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include "error.h" - -namespace saw { -error::error(error::code code_, bool is_critical__) - : error_code_{static_cast(code_)}, is_critical_{is_critical__} {} - -error::error(error::code code_, bool is_critical__, const std::string_view &msg) - : - error_code_{static_cast(code_)} - , is_critical_{is_critical__}, error_message_{msg}{} - -error::error(error &&error) - : - error_code_{std::move(error.error_code_)} - , is_critical_{std::move(error.is_critical_)} - , error_message_{std::move(error.error_message_)}{} - -const std::string_view error::message() const { - - return std::visit( - [this](auto &&arg) -> const std::string_view { - using T = std::decay_t; - - if constexpr (std::is_same_v) { - return std::string_view{arg}; - } else if constexpr (std::is_same_v) { - return arg; - } else { - return "Error in class Error. Good luck :)"; - } - }, - error_message_); -} - -bool error::failed() const { - return this->is_error(); -} - -bool error::is_critical() const { - return is_critical_; -} - -bool error::is_recoverable() const { - return !is_critical_; -} - -error error::copy_error() const { - auto copy_error_code = error_code_; - error error{copy_error_code, is_critical_}; - - try { - error.error_message_ = error_message_; - } catch (const std::bad_alloc &) { - error.error_message_ = - std::string_view{"Error while copying Error string. Out of memory"}; - } - - return error; -} - -error::code error::get_id() const { return error_code_; } - -namespace impl { -error_registry& get_error_registry() { - static own reg = nullptr; - if(!reg){ - reg = heap(); - } - - assert(reg); - return *reg; -} -} - -error no_error(){ - return make_error(); -} - -namespace impl { -error_or error_registry::search_id(const std::string_view& desc)const{ - /** - * Search the index in the vector - */ - size_t i{}; - size_t info_max_size = std::min(infos.size(), std::numeric_limits::max()); - for(i = 0; i < info_max_size; ++i){ - if(infos.at(i).description == desc){ - break; - } - } - - if(i == info_max_size){ - return make_error(); - } - - return static_cast(i); -} - -error_or error_registry::search_or_register_id(const std::string_view& desc, bool is_critical){ - auto err_or_id = search_id(desc); - - if(err_or_id.is_value()){ - return err_or_id.get_value(); - } - - auto& err = err_or_id.get_error(); - - if(err.is_error()){ - size_t new_index = infos.size(); - if(new_index == std::numeric_limits::max()){ - return make_error("Error registry ids are exhausted"); - } - infos.emplace_back(error_info{desc, is_critical}); - return static_cast(new_index); - } - - return std::move(err); -} -} - -} // namespace saw -- cgit v1.2.3