diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-04-08 19:15:16 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-04-08 19:15:16 +0200 |
commit | e8b2be3527c7683e8bfca70ed7706fc20da566fd (patch) | |
tree | 54d5099554c8628cad719e6f1a49d387c7eced4f /src/server/bnetserver/Server/SessionManager.cpp | |
parent | 40d80f3476ade4898be24659408e82aa4234b099 (diff) |
Core/Network: Socket refactors
* Devirtualize calls to Read and Update by marking concrete implementations as final
* Removed derived class template argument
* Specialize boost::asio::basic_stream_socket for boost::asio::io_context instead of type-erased any_io_executor
* Make socket initialization easier composable (before entering Read loop)
* Remove use of deprecated boost::asio::null_buffers and boost::beast::ssl_stream
Diffstat (limited to 'src/server/bnetserver/Server/SessionManager.cpp')
-rw-r--r-- | src/server/bnetserver/Server/SessionManager.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/server/bnetserver/Server/SessionManager.cpp b/src/server/bnetserver/Server/SessionManager.cpp index cb56972a9c2..4c5b532ee60 100644 --- a/src/server/bnetserver/Server/SessionManager.cpp +++ b/src/server/bnetserver/Server/SessionManager.cpp @@ -16,7 +16,6 @@ */ #include "SessionManager.h" -#include "DatabaseEnv.h" #include "Util.h" bool Battlenet::SessionManager::StartNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, int threadCount) @@ -24,18 +23,16 @@ bool Battlenet::SessionManager::StartNetwork(Trinity::Asio::IoContext& ioContext if (!BaseSocketMgr::StartNetwork(ioContext, bindIp, port, threadCount)) return false; - _acceptor->AsyncAcceptWithCallback<&OnSocketAccept>(); + _acceptor->AsyncAccept([this](Trinity::Net::IoContextTcpSocket&& sock, uint32 threadIndex) + { + OnSocketOpen(std::move(sock), threadIndex); + }); return true; } -NetworkThread<Battlenet::Session>* Battlenet::SessionManager::CreateThreads() const +Trinity::Net::NetworkThread<Battlenet::Session>* Battlenet::SessionManager::CreateThreads() const { - return new NetworkThread<Session>[GetNetworkThreadCount()]; -} - -void Battlenet::SessionManager::OnSocketAccept(boost::asio::ip::tcp::socket&& sock, uint32 threadIndex) -{ - sSessionMgr.OnSocketOpen(std::move(sock), threadIndex); + return new Trinity::Net::NetworkThread<Session>[GetNetworkThreadCount()]; } Battlenet::SessionManager& Battlenet::SessionManager::Instance() |