diff --git a/repertory/librepertory/src/utils/error_utils.cpp b/repertory/librepertory/src/utils/error_utils.cpp index 9054fab2..07740412 100644 --- a/repertory/librepertory/src/utils/error_utils.cpp +++ b/repertory/librepertory/src/utils/error_utils.cpp @@ -24,6 +24,8 @@ #include "events/event_system.hpp" #include "events/events.hpp" #include "types/repertory.hpp" +#include "utils/error.hpp" +#include namespace { struct repertory_exception_handler final @@ -37,24 +39,30 @@ struct repertory_exception_handler final repertory::utils::error::raise_error(function_name, ex); } }; + +static std::unique_ptr handler{([]() -> auto * { + auto *ptr = new repertory_exception_handler{}; + repertory::utils::error::set_exception_handler(ptr); + return ptr; +})()}; } // namespace namespace repertory::utils::error { void raise_error(std::string_view function, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg)); + static_cast(function), static_cast(msg)); } void raise_error(std::string_view function, const api_error &err, std::string_view msg) { event_system::instance().raise( - function, + static_cast(function), static_cast(msg) + "|err|" + api_error_to_string(err)); } void raise_error(std::string_view function, const std::exception &exception) { event_system::instance().raise( - function, + static_cast(function), "err|" + std::string(exception.what() == nullptr ? "unknown error" : exception.what())); } @@ -62,7 +70,7 @@ void raise_error(std::string_view function, const std::exception &exception) { void raise_error(std::string_view function, const std::exception &exception, std::string_view msg) { event_system::instance().raise( - function, + static_cast(function), static_cast(msg) + "|err|" + (exception.what() == nullptr ? "unknown error" : exception.what())); } @@ -70,35 +78,38 @@ void raise_error(std::string_view function, const std::exception &exception, void raise_error(std::string_view function, const json &err, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|err|" + err.dump(2)); + static_cast(function), + static_cast(msg) + "|err|" + err.dump(2)); } void raise_error(std::string_view function, std::int64_t err, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|err|" + std::to_string(err)); + static_cast(function), + static_cast(msg) + "|err|" + std::to_string(err)); } void raise_error(std::string_view function, const api_error &err, std::string_view file_path, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|sp|" + - static_cast(file_path) + "|err|" + - api_error_to_string(err)); + static_cast(function), + static_cast(msg) + "|sp|" + + static_cast(file_path) + "|err|" + + api_error_to_string(err)); } void raise_error(std::string_view function, std::int64_t err, std::string_view file_path, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|sp|" + - static_cast(file_path) + "|err|" + - std::to_string(err)); + static_cast(function), + static_cast(msg) + "|sp|" + + static_cast(file_path) + "|err|" + std::to_string(err)); } void raise_error(std::string_view function, const std::exception &exception, std::string_view file_path, std::string_view msg) { event_system::instance().raise( - function, + static_cast(function), static_cast(msg) + "|sp|" + static_cast(file_path) + "|err|" + (exception.what() == nullptr ? "unknown error" : exception.what())); @@ -107,23 +118,24 @@ void raise_error(std::string_view function, const std::exception &exception, void raise_api_path_error(std::string_view function, std::string_view api_path, const api_error &err, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|ap|" + - static_cast(api_path) + "|err|" + - api_error_to_string(err)); + static_cast(function), + static_cast(msg) + "|ap|" + + static_cast(api_path) + "|err|" + + api_error_to_string(err)); } void raise_api_path_error(std::string_view function, std::string_view api_path, std::int64_t err, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|ap|" + - static_cast(api_path) + "|err|" + - std::to_string(err)); + static_cast(function), + static_cast(msg) + "|ap|" + + static_cast(api_path) + "|err|" + std::to_string(err)); } void raise_api_path_error(std::string_view function, std::string_view api_path, const std::exception &exception) { event_system::instance().raise( - function, + static_cast(function), "ap|" + static_cast(api_path) + "|err|" + (exception.what() == nullptr ? "unknown error" : exception.what())); } @@ -132,7 +144,7 @@ void raise_api_path_error(std::string_view function, std::string_view api_path, const std::exception &exception, std::string_view msg) { event_system::instance().raise( - function, + static_cast(function), static_cast(msg) + "|ap|" + static_cast(api_path) + "|err|" + (exception.what() == nullptr ? "unknown error" : exception.what())); @@ -142,27 +154,30 @@ void raise_api_path_error(std::string_view function, std::string_view api_path, std::string_view source_path, const api_error &err, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|ap|" + - static_cast(api_path) + "|sp|" + - static_cast(source_path) + "|err|" + - api_error_to_string(err)); + static_cast(function), + static_cast(msg) + "|ap|" + + static_cast(api_path) + "|sp|" + + static_cast(source_path) + "|err|" + + api_error_to_string(err)); } void raise_api_path_error(std::string_view function, std::string_view api_path, std::string_view source_path, std::int64_t err, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|ap|" + - static_cast(api_path) + "|sp|" + - static_cast(source_path) + "|err|" + - std::to_string(err)); + static_cast(function), + static_cast(msg) + "|ap|" + + static_cast(api_path) + "|sp|" + + static_cast(source_path) + "|err|" + + std::to_string(err)); } void raise_api_path_error(std::string_view function, std::string_view api_path, const json &err, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|ap|" + - static_cast(api_path) + "|err|" + err.dump(2)); + static_cast(function), + static_cast(msg) + "|ap|" + + static_cast(api_path) + "|err|" + err.dump(2)); } void raise_api_path_error(std::string_view function, std::string_view api_path, @@ -170,7 +185,7 @@ void raise_api_path_error(std::string_view function, std::string_view api_path, const std::exception &exception, std::string_view msg) { event_system::instance().raise( - function, + static_cast(function), static_cast(msg) + "|ap|" + static_cast(api_path) + "|sp|" + static_cast(source_path) + "|err|" + @@ -180,16 +195,16 @@ void raise_api_path_error(std::string_view function, std::string_view api_path, void raise_url_error(std::string_view function, std::string_view url, CURLcode err, std::string_view msg) { event_system::instance().raise( - function, static_cast(msg) + "|url|" + - static_cast(url) + "|err|" + - curl_easy_strerror(err)); + static_cast(function), + static_cast(msg) + "|url|" + static_cast(url) + + "|err|" + curl_easy_strerror(err)); } void raise_url_error(std::string_view function, std::string_view url, std::string_view source_path, const std::exception &exception) { event_system::instance().raise( - function, + static_cast(function), "url|" + static_cast(url) + "|sp|" + static_cast(source_path) + "|err|" + (exception.what() == nullptr ? "unknown error" : exception.what())); @@ -199,7 +214,7 @@ void raise_url_error(std::string_view function, std::string_view url, std::string_view source_path, const std::exception &exception, std::string_view msg) { event_system::instance().raise( - function, + static_cast(function), static_cast(msg) + "|url|" + static_cast(url) + "|sp|" + static_cast(source_path) + "|err|" + (exception.what() == nullptr ? "unknown error" : exception.what()));