From dfd2660a85e4f0891c63009ee8425b2796586409 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 6 Jan 2018 01:21:59 +0100 Subject: Core/Misc: Added compatibility layer for boost 1.66 and future std:: networking stuff * Based on work done by @dimiandre in PR #21173 Closes #21171 Closes #21173 --- src/common/Logging/Log.cpp | 21 ++++++++++----------- src/common/Logging/Log.h | 12 ++++++------ 2 files changed, 16 insertions(+), 17 deletions(-) (limited to 'src/common/Logging') diff --git a/src/common/Logging/Log.cpp b/src/common/Logging/Log.cpp index de9caf08581..3ce0307a96b 100644 --- a/src/common/Logging/Log.cpp +++ b/src/common/Logging/Log.cpp @@ -19,18 +19,18 @@ #include "Log.h" #include "AppenderConsole.h" #include "AppenderFile.h" -#include "AsioHacksImpl.h" #include "Common.h" #include "Config.h" #include "Errors.h" #include "Logger.h" #include "LogMessage.h" #include "LogOperation.h" +#include "Strand.h" #include "Util.h" #include #include -Log::Log() : AppenderId(0), lowestLogLevel(LOG_LEVEL_FATAL), _ioService(nullptr), _strand(nullptr) +Log::Log() : AppenderId(0), lowestLogLevel(LOG_LEVEL_FATAL), _ioContext(nullptr), _strand(nullptr) { m_logsTimestamp = "_" + GetTimestampStr(); RegisterAppender(); @@ -228,11 +228,10 @@ void Log::write(std::unique_ptr&& msg) const { Logger const* logger = GetLoggerByType(msg->type); - if (_ioService) + if (_ioContext) { - auto logOperation = std::make_shared(logger, std::move(msg)); - - _ioService->post(_strand->wrap([logOperation](){ logOperation->call(); })); + std::shared_ptr logOperation = std::make_shared(logger, std::move(msg)); + Trinity::Asio::post(*_ioContext, Trinity::Asio::bind_executor(*_strand, [logOperation]() { logOperation->call(); })); } else logger->write(msg.get()); @@ -367,12 +366,12 @@ Log* Log::instance() return &instance; } -void Log::Initialize(boost::asio::io_service* ioService) +void Log::Initialize(Trinity::Asio::IoContext* ioContext) { - if (ioService) + if (ioContext) { - _ioService = ioService; - _strand = new Trinity::AsioStrand(*ioService); + _ioContext = ioContext; + _strand = new Trinity::Asio::Strand(*ioContext); } LoadFromConfig(); @@ -382,7 +381,7 @@ void Log::SetSynchronous() { delete _strand; _strand = nullptr; - _ioService = nullptr; + _ioContext = nullptr; } void Log::LoadFromConfig() diff --git a/src/common/Logging/Log.h b/src/common/Logging/Log.h index 7d70c1ea254..010ef62ce68 100644 --- a/src/common/Logging/Log.h +++ b/src/common/Logging/Log.h @@ -31,11 +31,11 @@ class Appender; class Logger; struct LogMessage; -namespace boost +namespace Trinity { - namespace asio + namespace Asio { - class io_service; + class IoContext; } } @@ -62,7 +62,7 @@ class TC_COMMON_API Log public: static Log* instance(); - void Initialize(boost::asio::io_service* ioService); + void Initialize(Trinity::Asio::IoContext* ioContext); void SetSynchronous(); // Not threadsafe - should only be called from main() after all threads are joined void LoadFromConfig(); void Close(); @@ -122,8 +122,8 @@ class TC_COMMON_API Log std::string m_logsDir; std::string m_logsTimestamp; - boost::asio::io_service* _ioService; - Trinity::AsioStrand* _strand; + Trinity::Asio::IoContext* _ioContext; + Trinity::Asio::Strand* _strand; }; #define sLog Log::instance() -- cgit v1.2.3