From d2a1bc3fd5fbb1bc517ab1e8024170efe4b62838 Mon Sep 17 00:00:00 2001 From: Lynix Date: Fri, 15 Jan 2016 08:29:58 +0100 Subject: [PATCH] Network: Fix some move stuff Former-commit-id: 33b24a038319b444b9a3b84cfeea38c8305e6568 --- include/Nazara/Network/AbstractSocket.hpp | 3 +++ include/Nazara/Network/TcpClient.hpp | 4 +++- include/Nazara/Network/TcpClient.inl | 11 ----------- src/Nazara/Network/AbstractSocket.cpp | 16 ++++++++++++++++ 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/include/Nazara/Network/AbstractSocket.hpp b/include/Nazara/Network/AbstractSocket.hpp index 1eab38241..7b8327cb1 100644 --- a/include/Nazara/Network/AbstractSocket.hpp +++ b/include/Nazara/Network/AbstractSocket.hpp @@ -35,6 +35,9 @@ namespace Nz unsigned int QueryAvailableBytes() const; + AbstractSocket& operator=(const AbstractSocket&) = delete; + AbstractSocket& operator=(AbstractSocket&& abstractSocket); + // Signals: NazaraSignal(OnStateChange, const AbstractSocket* /*socket*/, SocketState /*newState*/); diff --git a/include/Nazara/Network/TcpClient.hpp b/include/Nazara/Network/TcpClient.hpp index f06a43836..cbf501ffe 100644 --- a/include/Nazara/Network/TcpClient.hpp +++ b/include/Nazara/Network/TcpClient.hpp @@ -21,7 +21,7 @@ namespace Nz public: inline TcpClient(); - inline TcpClient(TcpClient&& tcpClient); + TcpClient(TcpClient&& tcpClient) = default; ~TcpClient() = default; SocketState Connect(const IpAddress& remoteAddress); @@ -50,6 +50,8 @@ namespace Nz bool WaitForConnected(UInt64 msTimeout = 3000); + inline TcpClient& operator=(TcpClient&& tcpClient) = default; + private: void FlushStream() override; diff --git a/include/Nazara/Network/TcpClient.inl b/include/Nazara/Network/TcpClient.inl index 5348d2152..da292b982 100644 --- a/include/Nazara/Network/TcpClient.inl +++ b/include/Nazara/Network/TcpClient.inl @@ -17,17 +17,6 @@ namespace Nz { } - inline TcpClient::TcpClient(TcpClient&& tcpClient) : - AbstractSocket(std::move(tcpClient)), - Stream(std::move(tcpClient)), - m_peerAddress(std::move(tcpClient.m_peerAddress)), - m_keepAliveInterval(tcpClient.m_keepAliveInterval), - m_keepAliveTime(tcpClient.m_keepAliveTime), - m_isLowDelayEnabled(tcpClient.m_isLowDelayEnabled), - m_isKeepAliveEnabled(tcpClient.m_isKeepAliveEnabled) - { - } - inline void TcpClient::Disconnect() { Close(); diff --git a/src/Nazara/Network/AbstractSocket.cpp b/src/Nazara/Network/AbstractSocket.cpp index 1406741ff..c24ae43f9 100644 --- a/src/Nazara/Network/AbstractSocket.cpp +++ b/src/Nazara/Network/AbstractSocket.cpp @@ -107,4 +107,20 @@ namespace Nz m_handle = handle; OnOpened(); } + + AbstractSocket& AbstractSocket::operator=(AbstractSocket&& abstractSocket) + { + Close(); + + m_handle = abstractSocket.m_handle; + m_protocol = abstractSocket.m_protocol; + m_isBlockingEnabled = abstractSocket.m_isBlockingEnabled; + m_lastError = abstractSocket.m_lastError; + m_state = abstractSocket.m_state; + m_type = abstractSocket.m_type; + + abstractSocket.m_handle = SocketImpl::InvalidHandle; + + return *this; + } }