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