dEngine
Simple 2D C++ game engine
Public Member Functions | Private Member Functions | Private Attributes | List of all members
dengine::Serializer< T > Class Template Reference

A serializer. More...

#include <Serializer.h>

Public Member Functions

 Serializer (std::string filePath)
 Constructor. More...
 
bool saveToFile (const T *obj)
 Serialize and object and save it to a file. More...
 
loadFromFile ()
 Load data from a file and deserialize it back to an object. More...
 

Private Member Functions

std::vector< char > serializeObject (const T *obj)
 Serialize an object to a vector<char> More...
 
bool saveSerializedObject (const std::vector< char > &serializedData)
 Saves an object to path. More...
 
std::vector< char > loadSerializedData ()
 Loads data from file into a vector<char> More...
 
deserializeData (const std::vector< char > &data)
 Deserialize data from a vector back into an object. More...
 

Private Attributes

std::string path
 File path to save to/load from. More...
 

Detailed Description

template<typename T>
class dengine::Serializer< T >

A serializer.

Template Parameters
TThe type to serialize or deserialize
Deprecated:
This was initially created for the Load/Save system but I wasn't able to find a way to integrate it just right as such I am marking this as deprecated. I don't want to get rid of it just yet in case I find a use for it, but currently it isn't used.

Constructor & Destructor Documentation

◆ Serializer()

template<typename T >
dengine::Serializer< T >::Serializer ( std::string  filePath)

Constructor.

Create a new Serializer that will use the file defined in filePath to read/write

Parameters
filePathThe path to save to/load from

Member Function Documentation

◆ deserializeData()

template<typename T >
T dengine::Serializer< T >::deserializeData ( const std::vector< char > &  data)
private

Deserialize data from a vector back into an object.

Template Parameters
TThe type to deserialize
Parameters
dataThe serialized data to deserialize
Returns
The deserialized object

Referenced by dengine::Serializer< T >::loadFromFile().

◆ loadFromFile()

template<typename T >
T dengine::Serializer< T >::loadFromFile ( )

Load data from a file and deserialize it back to an object.

Template Parameters
TThe type to deserialize
Returns
The deserialized object

Referenced by dengine::Game::LoadState().

◆ loadSerializedData()

template<typename T >
std::vector< char > dengine::Serializer< T >::loadSerializedData ( )
private

Loads data from file into a vector<char>

Returns
A vector<char> containing serialized data

Referenced by dengine::Serializer< T >::loadFromFile().

◆ saveSerializedObject()

template<typename T >
bool dengine::Serializer< T >::saveSerializedObject ( const std::vector< char > &  serializedData)
private

Saves an object to path.

Parameters
serializedDataA vector<char> of serialized data
Returns
True if save was successfull
See also
path

Referenced by dengine::Serializer< T >::saveToFile().

◆ saveToFile()

template<typename T >
bool dengine::Serializer< T >::saveToFile ( const T *  obj)

Serialize and object and save it to a file.

Parameters
objThe object to serialize
Returns
True if success

Referenced by dengine::Game::SaveState().

◆ serializeObject()

template<typename T >
std::vector< char > dengine::Serializer< T >::serializeObject ( const T *  obj)
private

Serialize an object to a vector<char>

Template Parameters
TThe type of the object to serialize
Parameters
objThe object to serialize
Returns
A vector containing the binary of the object

Referenced by dengine::Serializer< T >::saveToFile().

Member Data Documentation

◆ path

template<typename T>
std::string dengine::Serializer< T >::path
private