22fge::net::Packet& Packet::operator<<(
bool data)
24 uint8_t a = data ? 1 : 0;
25 return this->append(&a,
sizeof(uint8_t));
28fge::net::Packet& Packet::operator<<(int8_t data)
30 return this->append(&data,
sizeof(int8_t));
32fge::net::Packet& Packet::operator<<(int16_t data)
34 return this->pack(&data,
sizeof(int16_t));
36fge::net::Packet& Packet::operator<<(int32_t data)
38 return this->pack(&data,
sizeof(int32_t));
40fge::net::Packet& Packet::operator<<(int64_t data)
42 return this->pack(&data,
sizeof(int64_t));
45fge::net::Packet& Packet::operator<<(uint8_t data)
47 return this->append(&data,
sizeof(uint8_t));
49fge::net::Packet& Packet::operator<<(uint16_t data)
51 return this->pack(&data,
sizeof(uint16_t));
53fge::net::Packet& Packet::operator<<(uint32_t data)
55 return this->pack(&data,
sizeof(uint32_t));
57fge::net::Packet& Packet::operator<<(uint64_t data)
59 return this->pack(&data,
sizeof(uint64_t));
62fge::net::Packet& Packet::operator<<(
float data)
64 return this->pack(&data,
sizeof(
float));
66fge::net::Packet& Packet::operator<<(
double data)
68 return this->pack(&data,
sizeof(
double));
70fge::net::Packet& Packet::operator<<(
long double data)
72 return this->pack(&data,
sizeof(
long double));
76fge::net::Packet& Packet::operator<<(std::forward_list<T>
const& data)
78 *this << static_cast<fge::net::SizeType>(data.size());
79 for (
auto it = data.cbegin(); it != data.cend(); ++it)
86fge::net::Packet& Packet::operator<<(std::list<T>
const& data)
88 *this << static_cast<fge::net::SizeType>(data.size());
89 for (
auto it = data.cbegin(); it != data.cend(); ++it)
96fge::net::Packet& Packet::operator<<(std::vector<T>
const& data)
98 *this << static_cast<fge::net::SizeType>(data.size());
99 for (std::size_t i = 0; i < data.size(); ++i)
107fge::net::Packet& Packet::operator<<(fge::Vector2<T>
const& data)
109 return *
this << data.x << data.y;
112fge::net::Packet& Packet::operator<<(fge::Vector3<T>
const& data)
114 return *
this << data.x << data.y << data.z;
118fge::net::Packet& Packet::operator<<(fge::Matrix<T>
const& data)
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)
131fge::net::Packet& Packet::operator<<(fge::Color
const& data)
133 return *this << static_cast<uint32_t>(data.toInteger());
136template<
class TEnum,
typename>
137fge::net::Packet& Packet::operator<<(TEnum
const& data)
139 using TTEnum = std::underlying_type_t<TEnum>;
140 return this->pack(&
reinterpret_cast<TTEnum const&
>(data),
sizeof(TTEnum));
144fge::net::Packet& Packet::operator<<(std::unique_ptr<TData>
const& data)
146 return *
this << *data;
151fge::net::Packet
const& Packet::operator>>(
bool& data)
const
154 this->read(&a,
sizeof(uint8_t));
159fge::net::Packet
const& Packet::operator>>(int8_t& data)
const
161 return this->read(&data,
sizeof(int8_t));
163fge::net::Packet
const& Packet::operator>>(int16_t& data)
const
165 return this->unpack(&data,
sizeof(int16_t));
167fge::net::Packet
const& Packet::operator>>(int32_t& data)
const
169 return this->unpack(&data,
sizeof(int32_t));
171fge::net::Packet
const& Packet::operator>>(int64_t& data)
const
173 return this->unpack(&data,
sizeof(int64_t));
176fge::net::Packet
const& Packet::operator>>(uint8_t& data)
const
178 return this->read(&data,
sizeof(uint8_t));
180fge::net::Packet
const& Packet::operator>>(uint16_t& data)
const
182 return this->unpack(&data,
sizeof(uint16_t));
184fge::net::Packet
const& Packet::operator>>(uint32_t& data)
const
186 return this->unpack(&data,
sizeof(uint32_t));
188fge::net::Packet
const& Packet::operator>>(uint64_t& data)
const
190 return this->unpack(&data,
sizeof(uint64_t));
193fge::net::Packet
const& Packet::operator>>(
float& data)
const
195 return this->unpack(&data,
sizeof(
float));
197fge::net::Packet
const& Packet::operator>>(
double& data)
const
199 return this->unpack(&data,
sizeof(
double));
201fge::net::Packet
const& Packet::operator>>(
long double& data)
const
203 return this->unpack(&data,
sizeof(
long double));
207fge::net::Packet
const& Packet::operator>>(std::forward_list<T>& data)
const
209 fge::net::SizeType length = 0;
213 auto it = data.begin();
215 for (fge::net::SizeType i = 0; i < length; ++i)
223fge::net::Packet
const& Packet::operator>>(std::list<T>& data)
const
225 fge::net::SizeType length = 0;
229 auto it = data.begin();
231 for (fge::net::SizeType i = 0; i < length; ++i)
239fge::net::Packet
const& Packet::operator>>(std::vector<T>& data)
const
241 fge::net::SizeType length = 0;
246 for (fge::net::SizeType i = 0; i < length; ++i)
254fge::net::Packet
const& Packet::operator>>(fge::Vector2<T>& data)
const
256 return *
this >> data.x >> data.y;
259fge::net::Packet
const& Packet::operator>>(fge::Vector3<T>& data)
const
261 return *
this >> data.x >> data.y >> data.z;
265fge::net::Packet
const& Packet::operator>>(fge::Matrix<T>& data)
const
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)
282fge::net::Packet
const& Packet::operator>>(fge::Color& data)
const
286 data = fge::Color(buff);
290template<
class TEnum,
typename>
291fge::net::Packet
const& Packet::operator>>(TEnum& data)
const
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;
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