Network/NetPacket: Add move constructor/operator
Former-commit-id: 56cb793ab75e5bcd97b89c5be3592922c23a7a4d
This commit is contained in:
@@ -24,6 +24,17 @@ namespace Nz
|
||||
Reset(netCode, ptr, size);
|
||||
}
|
||||
|
||||
inline NetPacket::NetPacket(NetPacket&& packet) :
|
||||
ByteStream(std::move(packet)),
|
||||
m_buffer(std::move(packet.m_buffer)),
|
||||
m_memoryStream(std::move(packet.m_memoryStream)),
|
||||
m_netCode(packet.m_netCode)
|
||||
{
|
||||
///< Redirect memory stream to the moved buffer
|
||||
m_memoryStream.SetBuffer(m_buffer.get(), m_memoryStream.GetOpenMode());
|
||||
SetStream(&m_memoryStream);
|
||||
}
|
||||
|
||||
inline NetPacket::~NetPacket()
|
||||
{
|
||||
FlushBits(); //< Needs to be done here as the stream will be freed before ByteStream calls it
|
||||
@@ -88,6 +99,23 @@ namespace Nz
|
||||
{
|
||||
m_netCode = netCode;
|
||||
}
|
||||
|
||||
inline NetPacket& Nz::NetPacket::operator=(NetPacket&& packet)
|
||||
{
|
||||
FreeStream();
|
||||
|
||||
ByteStream::operator=(std::move(packet));
|
||||
|
||||
m_buffer = std::move(packet.m_buffer);
|
||||
m_memoryStream = std::move(packet.m_memoryStream);
|
||||
m_netCode = packet.m_netCode;
|
||||
|
||||
///< Redirect memory stream to the moved buffer
|
||||
m_memoryStream.SetBuffer(m_buffer.get(), m_memoryStream.GetOpenMode());
|
||||
SetStream(&m_memoryStream);
|
||||
|
||||
return *this;
|
||||
}
|
||||
}
|
||||
|
||||
#include <Nazara/Core/DebugOff.hpp>
|
||||
|
||||
Reference in New Issue
Block a user