1 #ifndef DENGINE_SERIALIZER_H     2 #define DENGINE_SERIALIZER_H    94         std::vector<char> buffer;
    95         buffer.resize(
sizeof(*obj));
    96         std::memcpy(buffer.data(), obj, 
sizeof(*obj));
   102         std::ofstream file(
path, std::ios::binary);
   109         file.write(serializedData.data(), serializedData.size());
   115         LOG_INFO << 
"Serialized object saved to file: " << 
path;
   119     template <
typename T>
   122         std::memcpy(&obj, data.data(), 
sizeof(obj));
   126     template <
typename T>
   128         std::ifstream file(
path, std::ios::binary | std::ios::ate);
   130             std::cerr << 
"Failed to open file: " << 
path << std::endl;
   134         std::streamsize fileSize = file.tellg();
   135         file.seekg(0, std::ios::beg);
   137         std::vector<char> buffer(fileSize);
   138         file.read(buffer.data(), fileSize);
   140             std::cerr << 
"Failed to read file: " << 
path << std::endl;
   151 #endif //DENGINE_SERIALIZER_H std::string path
File path to save to/load from. 
Definition: Serializer.h:44
bool saveSerializedObject(const std::vector< char > &serializedData)
Saves an object to path. 
Definition: Serializer.h:101
T deserializeData(const std::vector< char > &data)
Deserialize data from a vector back into an object. 
Definition: Serializer.h:120
std::vector< char > serializeObject(const T *obj)
Serialize an object to a vector<char> 
Definition: Serializer.h:93
T loadFromFile()
Load data from a file and deserialize it back to an object. 
Definition: Serializer.h:87
Serializer(std::string filePath)
Constructor. 
Definition: Serializer.h:76
A serializer. 
Definition: Serializer.h:19
#define LOG_INFO
Definition: NanoLog.h:170
std::vector< char > loadSerializedData()
Loads data from file into a vector<char> 
Definition: Serializer.h:127
The namespace containing the engine's code. 
Definition: Collider.h:9
bool saveToFile(const T *obj)
Serialize and object and save it to a file. 
Definition: Serializer.h:81
#define LOG_CRIT
Definition: NanoLog.h:172