Back to C++20 standard!

Logging is worked (AdcOstreamLogger and AdcSPDLOGLogger classes)
This commit is contained in:
2024-11-14 18:33:07 +03:00
parent 05e0055193
commit 78a9e53d18
9 changed files with 334 additions and 196 deletions

View File

@@ -118,12 +118,14 @@ concept adc_netservice_c = requires(SRVT srv, const SRVT srv_const) {
// acceptor type
requires std::is_class_v<typename SRVT::acceptor_t>;
requires adc_async_callback_t<typename SRVT::acceptor_t::async_accept_callback_t>;
requires requires(typename SRVT::acceptor_t acc) {
requires requires(typename SRVT::acceptor_t acc, const typename SRVT::acceptor_t acc_const) {
acc.asyncAccept(std::declval<typename SRVT::acceptor_t::async_accept_callback_t>(),
std::declval<const typename SRVT::timeout_t&>());
// { acc.accept(std::declval<const typename SRVT::timeout_t&>()) } -> std::same_as<SRVT>;
acc.accept(std::declval<const typename SRVT::timeout_t&>());
{ acc_const.localEndpoint() } -> traits::formattable;
};
@@ -160,6 +162,8 @@ concept adc_netservice_c = requires(SRVT srv, const SRVT srv_const) {
srv.close();
{ srv_const.remoteEndpoint() } -> traits::formattable;
// // static method
// SRVT::formatError(std::declval<typename SRVT::async_callback_err_t>(), std::declval<std::string&>());
@@ -224,7 +228,10 @@ concept adc_netsession_proto_c =
/* LOGGER */
/* LOGGER:
*
*
*/
template <typename LOGGERT>
concept adc_logger_c = requires(LOGGERT log, const LOGGERT log_const) {
@@ -234,22 +241,15 @@ concept adc_logger_c = requires(LOGGERT log, const LOGGERT log_const) {
{ log_const.getLogLevel() } -> std::same_as<typename LOGGERT::loglevel_t>;
// logging method signature:
// void method(std::string_view fmt, traits::formattable auto&& args...)
// void method(loglevel_t level, traits::formattable auto&& args...)
log.logMessage(std::declval<typename LOGGERT::loglevel_t>(), std::declval<std::string_view>());
log.logMessage(std::declval<typename LOGGERT::loglevel_t>(), std::declval<std::string_view>(),
std::declval<std::string>());
log.logMessage(std::declval<typename LOGGERT::loglevel_t>(), std::declval<std::string>());
// logging method must accept at least the single argument - formatting string
log.logInfo(std::declval<std::string_view>());
// method must be defined at least for std::string as its argument
log.logInfo(std::declval<std::string_view>(), std::declval<std::string>());
// specialized logging methods signature:
log.logWarn(std::declval<std::string_view>());
log.logWarn(std::declval<std::string_view>(), std::declval<std::string>());
log.logError(std::declval<std::string_view>());
log.logError(std::declval<std::string_view>(), std::declval<std::string>());
log.logInfo(std::declval<std::string>());
log.logDebug(std::declval<std::string>());
log.logError(std::declval<std::string>());
};