Network: Fix some move stuff

Former-commit-id: 33b24a038319b444b9a3b84cfeea38c8305e6568
This commit is contained in:
Lynix 2016-01-15 08:29:58 +01:00
parent c9a63bc72c
commit d2a1bc3fd5
4 changed files with 22 additions and 12 deletions

View File

@ -35,6 +35,9 @@ namespace Nz
unsigned int QueryAvailableBytes() const; unsigned int QueryAvailableBytes() const;
AbstractSocket& operator=(const AbstractSocket&) = delete;
AbstractSocket& operator=(AbstractSocket&& abstractSocket);
// Signals: // Signals:
NazaraSignal(OnStateChange, const AbstractSocket* /*socket*/, SocketState /*newState*/); NazaraSignal(OnStateChange, const AbstractSocket* /*socket*/, SocketState /*newState*/);

View File

@ -21,7 +21,7 @@ namespace Nz
public: public:
inline TcpClient(); inline TcpClient();
inline TcpClient(TcpClient&& tcpClient); TcpClient(TcpClient&& tcpClient) = default;
~TcpClient() = default; ~TcpClient() = default;
SocketState Connect(const IpAddress& remoteAddress); SocketState Connect(const IpAddress& remoteAddress);
@ -50,6 +50,8 @@ namespace Nz
bool WaitForConnected(UInt64 msTimeout = 3000); bool WaitForConnected(UInt64 msTimeout = 3000);
inline TcpClient& operator=(TcpClient&& tcpClient) = default;
private: private:
void FlushStream() override; void FlushStream() override;

View File

@ -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() inline void TcpClient::Disconnect()
{ {
Close(); Close();

View File

@ -107,4 +107,20 @@ namespace Nz
m_handle = handle; m_handle = handle;
OnOpened(); 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;
}
} }