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