21 #ifndef GF_SERIALIZATION_OPS_H 22 #define GF_SERIALIZATION_OPS_H 29 #include <unordered_map> 32 #include "BufferRef.h" 33 #include "Portability.h" 34 #include "Serialization.h" 37 #ifndef DOXYGEN_SHOULD_SKIP_THIS 47 GF_API Serializer& operator|(Serializer& ar, std::nullptr_t);
53 GF_API Serializer& operator|(Serializer& ar,
bool data);
59 GF_API Serializer& operator|(Serializer& ar, uint8_t data);
65 GF_API Serializer& operator|(Serializer& ar, uint16_t data);
71 GF_API Serializer& operator|(Serializer& ar, uint32_t data);
77 GF_API Serializer& operator|(Serializer& ar, uint64_t data);
83 GF_API Serializer& operator|(Serializer& ar, int8_t data);
89 GF_API Serializer& operator|(Serializer& ar, int16_t data);
95 GF_API Serializer& operator|(Serializer& ar, int32_t data);
101 GF_API Serializer& operator|(Serializer& ar, int64_t data);
107 GF_API Serializer& operator|(Serializer& ar,
float data);
113 GF_API Serializer& operator|(Serializer& ar,
double data);
119 GF_API Serializer& operator|(Serializer& ar,
const char *str);
125 GF_API Serializer& operator|(Serializer& ar,
const std::string& str);
131 template<std::
size_t N>
148 template<std::
size_t N>
151 ar.
writeBinary(bin.data(),
static_cast<uint32_t
>(bin.size()));
159 template<
typename T, std::
size_t N>
164 for (
auto& item : array) {
180 for (
auto& item : array) {
191 template<
typename T, std::
size_t N>
196 for (
auto& item : array) {
207 template<
typename K,
typename V>
212 for (
auto& item : map) {
213 ar | item.first | item.second;
223 template<
typename K,
typename V>
228 for (
auto& item : map) {
229 ar | item.first | item.second;
356 for (
auto& item : array) {
367 template<
typename T, std::
size_t N>
377 template<
typename T, std::
size_t N>
398 for (uint32_t i = 0; i < size; ++i) {
401 array.emplace_back(std::move(item));
411 template<
typename K,
typename V>
422 for (uint32_t i = 0; i < size; ++i) {
428 map.emplace(std::move(key), std::move(value));
438 template<
typename K,
typename V>
449 for (uint32_t i = 0; i < size; ++i) {
455 map.emplace(std::move(key), std::move(value));
467 #ifndef DOXYGEN_SHOULD_SKIP_THIS 472 #endif // GF_SERIALIZATION_OPS_H A deserializer from a binary file.
Definition: Serialization.h:130
void writeArrayHeader(uint32_t size)
Write an array header.
Serializer & operator|(Serializer &ar, const std::array< uint8_t, N > &bin)
Serialize a binary object.
Definition: SerializationOps.h:150
Deserializer & operator|(Deserializer &ar, std::unordered_map< K, V > &map)
Deserialize a map object.
Definition: SerializationOps.h:440
constexpr std::size_t getSize() const noexcept
Get the number of elements.
Definition: BufferRef.h:136
bool readMapHeader(uint32_t &size)
Read a map header.
Deserializer & operator|(Deserializer &ar, T(&array)[N])
Deserialize an array object.
Definition: SerializationOps.h:369
A reference to a modifiable buffer and its size.
Definition: BufferRef.h:43
Serializer & operator|(Serializer &ar, const std::vector< T > &array)
Serialize an array object.
Definition: SerializationOps.h:177
Serializer & operator|(Serializer &ar, const uint8_t(&bin)[N])
Serialize a binary object.
Definition: SerializationOps.h:133
Serializer & operator|(Serializer &ar, const std::map< K, V > &map)
Serialize a map object.
Definition: SerializationOps.h:209
void writeMapHeader(uint32_t size)
Write a map header.
A serializer to a binary file.
Definition: Serialization.h:47
The namespace for gf classes.
Definition: Action.h:34
Serializer & operator|(Serializer &ar, const std::array< T, N > &array)
Serialize an array object.
Definition: SerializationOps.h:193
Deserializer & operator|(Deserializer &ar, std::array< T, N > &array)
Deserialize an array object.
Definition: SerializationOps.h:379
Deserializer & operator|(Deserializer &ar, BufferRef< T > array)
Deserialize an array object.
Definition: SerializationOps.h:345
A data object.
Definition: DataObject.h:200
void writeBinary(const uint8_t *data, uint32_t size)
Write a binary object.
Deserializer & operator|(Deserializer &ar, std::vector< T > &array)
Deserialize an array object.
Definition: SerializationOps.h:389
Deserializer & operator|(Deserializer &ar, std::map< K, V > &map)
Deserialize a map object.
Definition: SerializationOps.h:413
Serializer & operator|(Serializer &ar, const T(&array)[N])
Serialize an array object.
Definition: SerializationOps.h:161
bool readArrayHeader(uint32_t &size)
Read an array header.
Serializer & operator|(Serializer &ar, const std::unordered_map< K, V > &map)
Serialize a map object.
Definition: SerializationOps.h:225