From 643da71e34d46ca149e114097f89976e44cbae4e Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Sun, 2 Mar 2025 20:33:59 +0100 Subject: [PATCH] add socket move --- include/sp/extensions/tcp/TcpSocket.h | 1 + src/sp/extensions/TcpSocket.cpp | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/include/sp/extensions/tcp/TcpSocket.h b/include/sp/extensions/tcp/TcpSocket.h index b84b724..1b14f3f 100644 --- a/include/sp/extensions/tcp/TcpSocket.h +++ b/include/sp/extensions/tcp/TcpSocket.h @@ -41,6 +41,7 @@ class IOInterface : private NonCopyable { IOInterface(); IOInterface(const std::string& a_Host, std::uint16_t a_Port); IOInterface(IOInterface&& a_Other); + IOInterface& operator=(IOInterface&& a_Other); virtual ~IOInterface(); DataBuffer Read(std::size_t a_Amount); diff --git a/src/sp/extensions/TcpSocket.cpp b/src/sp/extensions/TcpSocket.cpp index c2da877..48c3662 100644 --- a/src/sp/extensions/TcpSocket.cpp +++ b/src/sp/extensions/TcpSocket.cpp @@ -91,7 +91,8 @@ DataBuffer TcpSocket::Read(std::size_t a_Amount) { std::size_t totalRecieved = 0; while (totalRecieved < a_Amount) { - int recvAmount = recv(m_Handle, reinterpret_cast(buffer.data() + totalRecieved), static_cast(a_Amount - totalRecieved), 0); + int recvAmount = + recv(m_Handle, reinterpret_cast(buffer.data() + totalRecieved), static_cast(a_Amount - totalRecieved), 0); if (recvAmount <= 0) { #if defined(_WIN32) || defined(WIN32) int err = WSAGetLastError(); @@ -150,8 +151,10 @@ void TcpSocket::Disconnect() { m_Status = Status::Disconnected; } - +TcpSocket& TcpSocket::operator=(IOInterface&& a_Other) { + std::swap(m_Handle, a_Other.m_Handle); + std::swap(m_Status, a_Other.m_Status); +} } // namespace io - } // namespace sp