aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-12-08 20:27:41 +0100
committerfunjoker <funjoker109@gmail.com>2023-12-12 08:44:42 +0100
commita18e3ef20a5dc3af4438bb0ec1973f1c19fd071c (patch)
tree35e4bd35091cdfb0cabfa38a8f68045700f1fd1c /src/server/shared
parentc8e87e59e0649b3777138412655a787e7a8024b3 (diff)
Core/Misc: Minor code modernization - kill std::bind
(cherry picked from commit 78bcc3f52a1daa406851e7121c2b1af392fb4b3c)
Diffstat (limited to 'src/server/shared')
-rw-r--r--src/server/shared/Networking/AsyncAcceptor.h4
-rw-r--r--src/server/shared/Networking/Socket.h32
-rw-r--r--src/server/shared/Realm/RealmList.cpp15
-rw-r--r--src/server/shared/Realm/RealmList.h33
4 files changed, 40 insertions, 44 deletions
diff --git a/src/server/shared/Networking/AsyncAcceptor.h b/src/server/shared/Networking/AsyncAcceptor.h
index 24a5c7d4b0e..7f1cb34204c 100644
--- a/src/server/shared/Networking/AsyncAcceptor.h
+++ b/src/server/shared/Networking/AsyncAcceptor.h
@@ -34,7 +34,7 @@ public:
AsyncAcceptor(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port) :
_acceptor(ioContext), _endpoint(Trinity::Net::make_address(bindIp), port),
- _socket(ioContext), _closed(false), _socketFactory(std::bind(&AsyncAcceptor::DefeaultSocketFactory, this))
+ _socket(ioContext), _closed(false), _socketFactory([this] { return DefeaultSocketFactory(); })
{
}
@@ -114,7 +114,7 @@ public:
_acceptor.close(err);
}
- void SetSocketFactory(std::function<std::pair<boost::asio::ip::tcp::socket*, uint32>()> func) { _socketFactory = func; }
+ void SetSocketFactory(std::function<std::pair<boost::asio::ip::tcp::socket*, uint32>()> func) { _socketFactory = std::move(func); }
private:
std::pair<boost::asio::ip::tcp::socket*, uint32> DefeaultSocketFactory() { return std::make_pair(&_socket, 0); }
diff --git a/src/server/shared/Networking/Socket.h b/src/server/shared/Networking/Socket.h
index 2856fcfeb35..a996ecb2cbe 100644
--- a/src/server/shared/Networking/Socket.h
+++ b/src/server/shared/Networking/Socket.h
@@ -112,10 +112,13 @@ public:
_readBuffer.Normalize();
_readBuffer.EnsureFreeSpace();
_socket.async_read_some(boost::asio::buffer(_readBuffer.GetWritePointer(), _readBuffer.GetRemainingSpace()),
- std::bind(&Socket<T, Stream>::ReadHandlerInternal, this->shared_from_this(), std::placeholders::_1, std::placeholders::_2));
+ [self = this->shared_from_this()](boost::system::error_code const& error, size_t transferredBytes)
+ {
+ self->ReadHandlerInternal(error, transferredBytes);
+ });
}
- void AsyncReadWithCallback(void (T::*callback)(boost::system::error_code, std::size_t))
+ void AsyncReadWithCallback(void (T::*callback)(boost::system::error_code const&, std::size_t))
{
if (!IsOpen())
return;
@@ -123,7 +126,10 @@ public:
_readBuffer.Normalize();
_readBuffer.EnsureFreeSpace();
_socket.async_read_some(boost::asio::buffer(_readBuffer.GetWritePointer(), _readBuffer.GetRemainingSpace()),
- std::bind(callback, this->shared_from_this(), std::placeholders::_1, std::placeholders::_2));
+ [self = this->shared_from_this(), callback](boost::system::error_code const& error, size_t transferredBytes)
+ {
+ (self.get()->*callback)(error, transferredBytes);
+ });
}
void QueuePacket(MessageBuffer&& buffer)
@@ -170,11 +176,17 @@ protected:
#ifdef TC_SOCKET_USE_IOCP
MessageBuffer& buffer = _writeQueue.front();
- _socket.async_write_some(boost::asio::buffer(buffer.GetReadPointer(), buffer.GetActiveSize()), std::bind(&Socket<T, Stream>::WriteHandler,
- this->shared_from_this(), std::placeholders::_1, std::placeholders::_2));
+ _socket.async_write_some(boost::asio::buffer(buffer.GetReadPointer(), buffer.GetActiveSize()),
+ [self = this->shared_from_this()](boost::system::error_code const& error, std::size_t transferedBytes)
+ {
+ self->WriteHandler(error, transferedBytes);
+ });
#else
- _socket.async_write_some(boost::asio::null_buffers(), std::bind(&Socket<T, Stream>::WriteHandlerWrapper,
- this->shared_from_this(), std::placeholders::_1, std::placeholders::_2));
+ _socket.async_write_some(boost::asio::null_buffers(),
+ [self = this->shared_from_this()](boost::system::error_code const& error, std::size_t transferedBytes)
+ {
+ self->WriteHandlerWrapper(error, transferedBytes);
+ });
#endif
return false;
@@ -195,7 +207,7 @@ protected:
}
private:
- void ReadHandlerInternal(boost::system::error_code error, size_t transferredBytes)
+ void ReadHandlerInternal(boost::system::error_code const& error, size_t transferredBytes)
{
if (error)
{
@@ -209,7 +221,7 @@ private:
#ifdef TC_SOCKET_USE_IOCP
- void WriteHandler(boost::system::error_code error, std::size_t transferedBytes)
+ void WriteHandler(boost::system::error_code const& error, std::size_t transferedBytes)
{
if (!error)
{
@@ -229,7 +241,7 @@ private:
#else
- void WriteHandlerWrapper(boost::system::error_code /*error*/, std::size_t /*transferedBytes*/)
+ void WriteHandlerWrapper(boost::system::error_code const& /*error*/, std::size_t /*transferedBytes*/)
{
_isWritingAsync = false;
HandleQueue();
diff --git a/src/server/shared/Realm/RealmList.cpp b/src/server/shared/Realm/RealmList.cpp
index 779bb6fca09..d4a9938476b 100644
--- a/src/server/shared/Realm/RealmList.cpp
+++ b/src/server/shared/Realm/RealmList.cpp
@@ -53,7 +53,7 @@ void RealmList::Initialize(Trinity::Asio::IoContext& ioContext, uint32 updateInt
LoadBuildInfo();
// Get the content of the realmlist table in the database
- UpdateRealms(boost::system::error_code());
+ UpdateRealms();
}
void RealmList::Close()
@@ -113,11 +113,8 @@ void RealmList::UpdateRealm(Realm& realm, Battlenet::RealmHandle const& id, uint
realm.Port = port;
}
-void RealmList::UpdateRealms(boost::system::error_code const& error)
+void RealmList::UpdateRealms()
{
- if (error)
- return;
-
TC_LOG_DEBUG("realmlist", "Updating Realm List...");
LoginDatabasePreparedStatement *stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_REALMLIST);
@@ -207,7 +204,13 @@ void RealmList::UpdateRealms(boost::system::error_code const& error)
if (_updateInterval)
{
_updateTimer->expires_from_now(boost::posix_time::seconds(_updateInterval));
- _updateTimer->async_wait(std::bind(&RealmList::UpdateRealms, this, std::placeholders::_1));
+ _updateTimer->async_wait([this](boost::system::error_code const& error)
+ {
+ if (error)
+ return;
+
+ UpdateRealms();
+ });
}
}
diff --git a/src/server/shared/Realm/RealmList.h b/src/server/shared/Realm/RealmList.h
index a1262d7e913..7e85cbcfd38 100644
--- a/src/server/shared/Realm/RealmList.h
+++ b/src/server/shared/Realm/RealmList.h
@@ -39,35 +39,15 @@ struct RealmBuildInfo
std::array<uint8, 16> Mac64AuthSeed;
};
-namespace boost
+namespace bgs::protocol::game_utilities::v1
{
- namespace system
- {
- class error_code;
- }
+class ClientResponse;
+class GetAllValuesForAttributeResponse;
}
-namespace bgs
+namespace JSON::RealmList
{
- namespace protocol
- {
- namespace game_utilities
- {
- namespace v1
- {
- class ClientResponse;
- class GetAllValuesForAttributeResponse;
- }
- }
- }
-}
-
-namespace JSON
-{
- namespace RealmList
- {
- class RealmListUpdates;
- }
+class RealmListUpdates;
}
/// Storage object for the list of realms on the server
@@ -99,7 +79,7 @@ private:
RealmList();
void LoadBuildInfo();
- void UpdateRealms(boost::system::error_code const& error);
+ void UpdateRealms();
void UpdateRealm(Realm& realm, Battlenet::RealmHandle const& id, uint32 build, std::string const& name,
boost::asio::ip::address&& address, boost::asio::ip::address&& localAddr,
uint16 port, uint8 icon, RealmFlags flag, uint8 timezone, AccountTypes allowedSecurityLevel, float population);
@@ -114,4 +94,5 @@ private:
};
#define sRealmList RealmList::Instance()
+
#endif