#include "CNetMessage.h" #include "boost/crc.hpp" std::string CNetMessage::GetType() const { return {}; } crc32_t CNetMessage::Write(std::vector& buffer, size_t offset) { CBufferWrapper wrapper(buffer); wrapper.SetSeek(offset); return Write(wrapper); } crc32_t CNetMessage::Read(std::vector& buffer, size_t offset) { CBufferWrapper wrapper(buffer); wrapper.SetSeek(offset); return Read(wrapper); } crc32_t CNetMessage::Write(CBufferWrapper& wrapper) { size_t startOffset = wrapper.GetSeek(); V_Write(wrapper); size_t endOffset = wrapper.GetSeek(); m_lastWriteSize = endOffset - startOffset; //startOffset 3 //endOffset 6 //start: 3, size 6-3 = 3 //0 1 2 3 4 5 // x x x boost::crc_32_type result; result.process_bytes(&wrapper.GetBuffer()[startOffset], endOffset - startOffset); return result.checksum(); } crc32_t CNetMessage::Read(CBufferWrapper& wrapper) { size_t startOffset = wrapper.GetSeek(); V_Read(wrapper); size_t endOffset = wrapper.GetSeek(); m_lastReadSize = endOffset - startOffset; boost::crc_32_type result; result.process_bytes(&wrapper.GetBuffer()[startOffset], endOffset - startOffset); return result.checksum(); } size_t CNetMessage::GetLastReadSize() const { return m_lastReadSize; } size_t CNetMessage::GetLastWriteSize() const { return m_lastWriteSize; } void CNetMessage::V_Write(CBufferWrapper& wrapper) {} void CNetMessage::V_Read(CBufferWrapper& wrapper) {} void CNetMessage::Process() {}