34 const char Header::kProtocol[4] = {
'T',
'R',
'M',
'S'};
36 Header::Header(MessageType type,
int clientId,
size_t payloadLength)
37 : type(type), clientId(clientId), payloadLength(payloadLength)
41 void Header::serialize(std::vector<uint8_t> &out)
const
43 out.resize(Header::kHeaderLength, 0);
46 out[0] = kProtocol[0];
47 out[1] = kProtocol[1];
48 out[2] = kProtocol[2];
49 out[3] = kProtocol[3];
51 out[4] = (type & 0xFF000000) >> 24;
52 out[5] = (type & 0x00FF0000) >> 16;
53 out[6] = (type & 0x0000FF00) >> 8;
54 out[7] = (type & 0x000000FF) >> 0;
56 out[8] = (clientId & 0xFF000000) >> 24;
57 out[9] = (clientId & 0x00FF0000) >> 16;
58 out[10] = (clientId & 0x0000FF00) >> 8;
59 out[11] = (clientId & 0x000000FF) >> 0;
61 out[12] = (payloadLength & 0xFF000000) >> 24;
62 out[13] = (payloadLength & 0x00FF0000) >> 16;
63 out[14] = (payloadLength & 0x0000FF00) >> 8;
64 out[15] = (payloadLength & 0x000000FF) >> 0;
67 void Header::deserialize(
const std::vector<uint8_t> &in)
70 if (in.size() >= 16) {
71 uint8_t *ptr = (uint8_t *)&in[0];
73 if (ptr[0] == kProtocol[0] &&
74 ptr[1] == kProtocol[1] &&
75 ptr[2] == kProtocol[2] &&
76 ptr[3] == kProtocol[3]) {
91 payloadLength=(((ptr[12]) << 24) |
106 void Header::setPayloadLength(
size_t payloadLength)
108 this->payloadLength = payloadLength;
111 size_t Header::getPayloadLength(
void)
const
113 return payloadLength;
116 void Header::setClientId(uint32_t clientId)
118 this->clientId = clientId;
121 uint32_t Header::getClientId(
void)
const