24 uint8_t a = data ? 1 : 0;
25 return this->append(&a,
sizeof(uint8_t));
30 return this->append(&data,
sizeof(int8_t));
34 return this->pack(&data,
sizeof(int16_t));
38 return this->pack(&data,
sizeof(int32_t));
42 return this->pack(&data,
sizeof(int64_t));
47 return this->append(&data,
sizeof(uint8_t));
51 return this->pack(&data,
sizeof(uint16_t));
55 return this->pack(&data,
sizeof(uint32_t));
59 return this->pack(&data,
sizeof(uint64_t));
64 return this->pack(&data,
sizeof(
float));
68 return this->pack(&data,
sizeof(
double));
72 return this->pack(&data,
sizeof(
long double));
78 *this << static_cast<fge::net::SizeType>(data.size());
79 for (
auto it = data.cbegin(); it != data.cend(); ++it)
88 *this << static_cast<fge::net::SizeType>(data.size());
89 for (
auto it = data.cbegin(); it != data.cend(); ++it)
98 *this << static_cast<fge::net::SizeType>(data.size());
99 for (std::size_t i = 0; i < data.size(); ++i)
109 return *
this << data.x << data.y;
114 return *
this << data.x << data.y << data.z;
120 *this << static_cast<fge::net::SizeType>(data.
getSizeX()) <<
static_cast<fge::net::SizeType
>(data.
getSizeY());
121 for (std::size_t x = 0; x < data.
getSizeX(); ++x)
123 for (std::size_t y = 0; y < data.
getSizeY(); ++y)
133 return *this << static_cast<uint32_t>(data.toInteger());
136template<
class TEnum,
typename>
139 using TTEnum = std::underlying_type_t<TEnum>;
140 return this->pack(&
reinterpret_cast<TTEnum const&
>(data),
sizeof(TTEnum));
146 return *
this << *data;
154 this->read(&a,
sizeof(uint8_t));
161 return this->read(&data,
sizeof(int8_t));
165 return this->unpack(&data,
sizeof(int16_t));
169 return this->unpack(&data,
sizeof(int32_t));
173 return this->unpack(&data,
sizeof(int64_t));
178 return this->read(&data,
sizeof(uint8_t));
182 return this->unpack(&data,
sizeof(uint16_t));
186 return this->unpack(&data,
sizeof(uint32_t));
190 return this->unpack(&data,
sizeof(uint64_t));
195 return this->unpack(&data,
sizeof(
float));
199 return this->unpack(&data,
sizeof(
double));
203 return this->unpack(&data,
sizeof(
long double));
209 fge::net::SizeType length = 0;
213 auto it = data.begin();
215 for (fge::net::SizeType i = 0; i < length; ++i)
225 fge::net::SizeType length = 0;
229 auto it = data.begin();
231 for (fge::net::SizeType i = 0; i < length; ++i)
241 fge::net::SizeType length = 0;
246 for (fge::net::SizeType i = 0; i < length; ++i)
256 return *
this >> data.x >> data.y;
261 return *
this >> data.x >> data.y >> data.z;
267 fge::net::SizeType sizeX = 0, sizeY = 0;
268 *
this >> sizeX >> sizeY;
272 for (fge::net::SizeType x = 0; x < sizeX; ++x)
274 for (fge::net::SizeType y = 0; y < sizeY; ++y)
290template<
class TEnum,
typename>
293 using TTEnum = std::underlying_type_t<TEnum>;
294 return this->unpack(&
reinterpret_cast<TTEnum&
>(data),
sizeof(TTEnum));
298fge::net::Packet const& Packet::operator>>(std::unique_ptr<TData>& data)
const
302 data = std::make_unique<TData>();
304 return *
this >> *data;
Definition C_color.hpp:35
A container to store a 2D matrix of any type.
Definition C_matrix.hpp:40
void setSize(fge::Vector2< Tvec > const &msize)
Set the size of the matrix.
Definition C_matrix.inl:309
std::size_t getSizeY() const
Get the y size of the matrix.
Definition C_matrix.inl:270
std::size_t getSizeX() const
Get the x size of the matrix.
Definition C_matrix.inl:265
Definition C_packet.hpp:70