Files
Np_Term/include/socket/packet.h

35 lines
609 B
C++

#pragma once
#include <cstdint>
namespace Packet {
enum class Opcode : std::uint16_t {
NOP,
SPAWNMODEL,
DESPAWNMODEL,
UPDATEMODEL,
REQUESTMODELIDLIST,
CLIENTID,
COUNT
};
struct Header {
Opcode opcode;
std::uint32_t body_length;
std::vector<char> Serialize() {
std::vector<char> serialize(6);
::memcpy(serialize.data(), &opcode, 2);
::memcpy(serialize.data() + 2, &body_length, 4);
return serialize;
}
void Deserialize(std::vector<char>& data) {
::memcpy(&opcode, data.data(), 2);
::memcpy(&body_length, data.data() + 2, 4);
}
};
} // namespace Packet