R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
LeaveRoom.hpp
Go to the documentation of this file.
1
/*
2
** EPITECH PROJECT, 2025
3
** LeaveRoom.hpp - Request to leave current room
4
*/
5
6
#pragma once
7
8
#include <capnp/message.h>
9
#include <capnp/serialize.h>
10
#include <vector>
11
#include "schemas/c2s_messages.capnp.h"
12
13
namespace
RType::Messages::C2S
{
14
15
class
LeaveRoom
{
16
public
:
17
LeaveRoom
() =
default
;
18
19
std::vector<uint8_t>
serialize
()
const
{
20
::capnp::MallocMessageBuilder message;
21
// LeaveRoom has no fields, so we just initialize an empty message
22
message.initRoot<
::LeaveRoom
>();
23
24
kj::VectorOutputStream output;
25
::capnp::writeMessage(output, message);
26
auto
data = output.getArray();
27
return
std::vector<uint8_t>(data.begin(), data.end());
28
}
29
30
static
LeaveRoom
deserialize
(
const
std::vector<uint8_t> &data) {
31
if
(data.empty()) {
32
throw
std::runtime_error(
"Cannot deserialize LeaveRoom from empty data"
);
33
}
34
35
kj::ArrayPtr<const ::capnp::word> words(
reinterpret_cast<
const
::capnp::word *
>
(data.data()),
36
data.size() /
sizeof
(::capnp::word));
37
38
::capnp::FlatArrayMessageReader reader(words);
39
reader.getRoot<
::LeaveRoom
>();
// Validate
40
41
return
LeaveRoom
();
42
}
43
};
44
45
}
// namespace RType::Messages::C2S
RType::Messages::C2S::LeaveRoom
Definition
LeaveRoom.hpp:15
RType::Messages::C2S::LeaveRoom::serialize
std::vector< uint8_t > serialize() const
Definition
LeaveRoom.hpp:19
RType::Messages::C2S::LeaveRoom::deserialize
static LeaveRoom deserialize(const std::vector< uint8_t > &data)
Definition
LeaveRoom.hpp:30
RType::Messages::C2S::LeaveRoom::LeaveRoom
LeaveRoom()=default
RType::Messages::C2S
Client-to-Server messages.
Definition
AutoMatchmaking.hpp:15
common
Serialization
Capnp
Messages
C2S
LeaveRoom.hpp
Generated by
1.9.8