Gamedev Framework (gf)  0.11.0
A C++14 framework for 2D games
Public Member Functions | Related Functions | List of all members
gf::Serializer Class Reference

A serializer to a binary file. More...

#include <gf/Serialization.h>

Public Member Functions

 Serializer (OutputStream &stream, uint16_t version=0)
 Constructor. More...
 
uint16_t getVersion () const
 Get the version of the current archive format. More...
 
void writeBoolean (bool data)
 Write a boolean object. More...
 
void writeChar (char data)
 Write a char. More...
 
void writeSigned8 (int8_t data)
 Write a signed integer object. More...
 
void writeSigned16 (int16_t data)
 Write a signed integer object. More...
 
void writeSigned32 (int32_t data)
 Write a signed integer object. More...
 
void writeSigned64 (int64_t data)
 Write a signed integer object. More...
 
void writeUnsigned8 (uint8_t data)
 Write an unsigned object. More...
 
void writeUnsigned16 (uint16_t data)
 Write an unsigned object. More...
 
void writeUnsigned32 (uint32_t data)
 Write an unsigned object. More...
 
void writeUnsigned64 (uint64_t data)
 Write an unsigned object. More...
 
void writeFloat (float data)
 Write a single precison float object. More...
 
void writeDouble (double data)
 Write a double precison float object. More...
 
void writeString (const char *data, std::size_t size)
 Write a string object. More...
 
void writeSizeHeader (std::size_t size)
 Write a size header. More...
 

Related Functions

(Note that these are not member functions.)

template<typename T , typename I >
Serializeroperator| (Serializer &ar, const Array2D< T, I > &array)
 Serialize a 2D array. More...
 
Serializeroperator| (Serializer &ar, const Path &path)
 Serialize a path. More...
 
Serializeroperator| (Serializer &ar, const Polygon &polygon)
 Serialize a polygon. More...
 
Serializeroperator| (Serializer &ar, const Polyline &polyline)
 Serialize a polyline. More...
 
Serializeroperator| (Serializer &ar, bool data)
 Serialize a boolean object. More...
 
Serializeroperator| (Serializer &ar, char data)
 Serialize a char object. More...
 
Serializeroperator| (Serializer &ar, uint8_t data)
 Serialize an unsigned integer object. More...
 
Serializeroperator| (Serializer &ar, uint16_t data)
 Serialize an unsigned integer object. More...
 
Serializeroperator| (Serializer &ar, uint32_t data)
 Serialize an unsigned integer object. More...
 
Serializeroperator| (Serializer &ar, uint64_t data)
 Serialize an unsigned integer object. More...
 
Serializeroperator| (Serializer &ar, int8_t data)
 Serialize a signed integer object. More...
 
Serializeroperator| (Serializer &ar, int16_t data)
 Serialize a signed integer object. More...
 
Serializeroperator| (Serializer &ar, int32_t data)
 Serialize a signed integer object. More...
 
Serializeroperator| (Serializer &ar, int64_t data)
 Serialize a signed integer object. More...
 
template<typename T , typename E = typename std::enable_if<std::is_enum<T>::value, T>::type>
Serializeroperator| (Serializer &ar, T data)
 Serialize an enum object. More...
 
Serializeroperator| (Serializer &ar, float data)
 Serialize a single precision float object. More...
 
Serializeroperator| (Serializer &ar, double data)
 Serialize a double precision float object. More...
 
Serializeroperator| (Serializer &ar, const char *str)
 Serialize a string object. More...
 
Serializeroperator| (Serializer &ar, const std::string &str)
 Serialize a string object. More...
 
template<typename T , std::size_t N>
Serializeroperator| (Serializer &ar, const T(&array)[N])
 Serialize an array object. More...
 
template<typename T >
Serializeroperator| (Serializer &ar, const std::vector< T > &array)
 Serialize an array object. More...
 
template<typename T , std::size_t N>
Serializeroperator| (Serializer &ar, const std::array< T, N > &array)
 Serialize an array object. More...
 
template<typename T >
Serializeroperator| (Serializer &ar, const std::set< T > &set)
 Serialize a set object. More...
 
template<typename T >
Serializeroperator| (Serializer &ar, const std::unordered_set< T > &set)
 Serialize a set object. More...
 
template<typename K , typename V >
Serializeroperator| (Serializer &ar, const std::map< K, V > &map)
 Serialize a map object. More...
 
template<typename K , typename V >
Serializeroperator| (Serializer &ar, const std::unordered_map< K, V > &map)
 Serialize a map object. More...
 
Serializeroperator| (Serializer &ar, Time time)
 Serialize a time. More...
 

Detailed Description

A serializer to a binary file.

You should not use the methods in this class. Prefer using and overloading operator |.

See also
gf::Deserializer

Constructor & Destructor Documentation

◆ Serializer()

gf::Serializer::Serializer ( OutputStream stream,
uint16_t  version = 0 
)

Constructor.

Parameters
streamThe output stream
versionThe version of the archive format

Member Function Documentation

◆ getVersion()

uint16_t gf::Serializer::getVersion ( ) const
inline

Get the version of the current archive format.

◆ writeBoolean()

void gf::Serializer::writeBoolean ( bool  data)

Write a boolean object.

◆ writeChar()

void gf::Serializer::writeChar ( char  data)

Write a char.

◆ writeDouble()

void gf::Serializer::writeDouble ( double  data)

Write a double precison float object.

◆ writeFloat()

void gf::Serializer::writeFloat ( float  data)

Write a single precison float object.

◆ writeSigned16()

void gf::Serializer::writeSigned16 ( int16_t  data)

Write a signed integer object.

◆ writeSigned32()

void gf::Serializer::writeSigned32 ( int32_t  data)

Write a signed integer object.

◆ writeSigned64()

void gf::Serializer::writeSigned64 ( int64_t  data)

Write a signed integer object.

◆ writeSigned8()

void gf::Serializer::writeSigned8 ( int8_t  data)

Write a signed integer object.

◆ writeSizeHeader()

void gf::Serializer::writeSizeHeader ( std::size_t  size)

Write a size header.

◆ writeString()

void gf::Serializer::writeString ( const char *  data,
std::size_t  size 
)

Write a string object.

◆ writeUnsigned16()

void gf::Serializer::writeUnsigned16 ( uint16_t  data)

Write an unsigned object.

◆ writeUnsigned32()

void gf::Serializer::writeUnsigned32 ( uint32_t  data)

Write an unsigned object.

◆ writeUnsigned64()

void gf::Serializer::writeUnsigned64 ( uint64_t  data)

Write an unsigned object.

◆ writeUnsigned8()

void gf::Serializer::writeUnsigned8 ( uint8_t  data)

Write an unsigned object.

Friends And Related Function Documentation

◆ operator|() [1/27]

Serializer & operator| ( Serializer ar,
bool  data 
)
related

Serialize a boolean object.

◆ operator|() [2/27]

Serializer & operator| ( Serializer ar,
const Path path 
)
related

Serialize a path.

◆ operator|() [3/27]

Serializer & operator| ( Serializer ar,
char  data 
)
related

Serialize a char object.

◆ operator|() [4/27]

Serializer & operator| ( Serializer ar,
uint8_t  data 
)
related

Serialize an unsigned integer object.

◆ operator|() [5/27]

Serializer & operator| ( Serializer ar,
uint16_t  data 
)
related

Serialize an unsigned integer object.

◆ operator|() [6/27]

Serializer & operator| ( Serializer ar,
uint32_t  data 
)
related

Serialize an unsigned integer object.

◆ operator|() [7/27]

Serializer & operator| ( Serializer ar,
uint64_t  data 
)
related

Serialize an unsigned integer object.

◆ operator|() [8/27]

Serializer & operator| ( Serializer ar,
int8_t  data 
)
related

Serialize a signed integer object.

◆ operator|() [9/27]

Serializer & operator| ( Serializer ar,
int16_t  data 
)
related

Serialize a signed integer object.

◆ operator|() [10/27]

Serializer & operator| ( Serializer ar,
int32_t  data 
)
related

Serialize a signed integer object.

◆ operator|() [11/27]

Serializer & operator| ( Serializer ar,
int64_t  data 
)
related

Serialize a signed integer object.

◆ operator|() [12/27]

template<typename T , typename E = typename std::enable_if<std::is_enum<T>::value, T>::type>
Serializer & operator| ( Serializer ar,
T  data 
)
related

Serialize an enum object.

◆ operator|() [13/27]

Serializer & operator| ( Serializer ar,
float  data 
)
related

Serialize a single precision float object.

◆ operator|() [14/27]

Serializer & operator| ( Serializer ar,
double  data 
)
related

Serialize a double precision float object.

◆ operator|() [15/27]

Serializer & operator| ( Serializer ar,
const char *  str 
)
related

Serialize a string object.

◆ operator|() [16/27]

Serializer & operator| ( Serializer ar,
const std::string &  str 
)
related

Serialize a string object.

◆ operator|() [17/27]

template<typename T , std::size_t N>
Serializer & operator| ( Serializer ar,
const T(&)  array[N] 
)
related

Serialize an array object.

◆ operator|() [18/27]

template<typename T >
Serializer & operator| ( Serializer ar,
const std::vector< T > &  array 
)
related

Serialize an array object.

◆ operator|() [19/27]

template<typename T , std::size_t N>
Serializer & operator| ( Serializer ar,
const std::array< T, N > &  array 
)
related

Serialize an array object.

◆ operator|() [20/27]

template<typename T >
Serializer & operator| ( Serializer ar,
const std::set< T > &  set 
)
related

Serialize a set object.

◆ operator|() [21/27]

Serializer & operator| ( Serializer ar,
const Polygon polygon 
)
related

Serialize a polygon.

◆ operator|() [22/27]

template<typename T >
Serializer & operator| ( Serializer ar,
const std::unordered_set< T > &  set 
)
related

Serialize a set object.

◆ operator|() [23/27]

template<typename K , typename V >
Serializer & operator| ( Serializer ar,
const std::map< K, V > &  map 
)
related

Serialize a map object.

◆ operator|() [24/27]

Serializer & operator| ( Serializer ar,
const Polyline polyline 
)
related

Serialize a polyline.

◆ operator|() [25/27]

template<typename K , typename V >
Serializer & operator| ( Serializer ar,
const std::unordered_map< K, V > &  map 
)
related

Serialize a map object.

◆ operator|() [26/27]

Serializer & operator| ( Serializer ar,
Time  time 
)
related

Serialize a time.

◆ operator|() [27/27]

template<typename T , typename I >
Serializer & operator| ( Serializer ar,
const Array2D< T, I > &  array 
)
related

Serialize a 2D array.