/
Shymer123
/
LumenServer
Обзор
Документация
Войти
/
Shymer123
/
LumenServer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Server/SourceFiles/Core/Network/Packages/PacketParser.cpp
42 строки
1 KB
Shymer123
Initial commit: LumenServer
20 июн 2026, 12:43
20 июн 2026, 12:43
173f14c
Код
Авторство
О чём код?
#include "PacketParser.h" #include <iostream> namespace Core::Network::Packages { PacketParser::PacketParser(PacketHandler handler) : m_handler(std::move(handler)) {} void PacketParser::onData(const std::byte* data, size_t length) { m_buffer.insert(m_buffer.end(), data, data + length); processBuffer(); } void PacketParser::processBuffer() { while(true) { if(m_buffer.size() < PacketHeader::SIZE) { return; } PacketHeader header = PacketHeader::deserialize(m_buffer.data()); if(m_buffer.size() < PacketHeader::SIZE + header.payloadLength) { return; } std::vector<std::byte> payload(header.payloadLength); std::memcpy(payload.data(), m_buffer.data() + PacketHeader::SIZE, header.payloadLength); m_buffer.erase(m_buffer.begin(), m_buffer.begin() + PacketHeader::SIZE + header.payloadLength); Packet packet = Packet::fromRaw(header, std::move(payload)); m_handler(packet); } } } // namespace Core::Network::Packages