From 913699342c2a87e6a380fe4c78f3fbf42da48eba Mon Sep 17 00:00:00 2001 From: "Luna Mira Lage (Desoroxxx)" Date: Thu, 30 Jul 2026 19:53:40 +0200 Subject: [PATCH] ex01 Signed-off-by: Luna Mira Lage (Desoroxxx) --- ex01/Makefile | 4 ++++ ex01/src/Serializer.cpp | 9 +++++++++ ex01/src/Serializer.hpp | 23 +++++++++++++++++++++++ ex01/src/main.cpp | 17 +++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 ex01/Makefile create mode 100644 ex01/src/Serializer.cpp create mode 100644 ex01/src/Serializer.hpp create mode 100644 ex01/src/main.cpp diff --git a/ex01/Makefile b/ex01/Makefile new file mode 100644 index 0000000..c70dac7 --- /dev/null +++ b/ex01/Makefile @@ -0,0 +1,4 @@ +override NAME = ex01.out +override SRC_FILES = main.cpp Serializer.cpp + +include ../Makefile diff --git a/ex01/src/Serializer.cpp b/ex01/src/Serializer.cpp new file mode 100644 index 0000000..d36a4ae --- /dev/null +++ b/ex01/src/Serializer.cpp @@ -0,0 +1,9 @@ +#include + +uintptr_t Serializer::serialize(Data* ptr) { + return reinterpret_cast(ptr); +} + +Data* Serializer::deserialize(uintptr_t raw) { + return reinterpret_cast(raw); +} diff --git a/ex01/src/Serializer.hpp b/ex01/src/Serializer.hpp new file mode 100644 index 0000000..274890d --- /dev/null +++ b/ex01/src/Serializer.hpp @@ -0,0 +1,23 @@ +#pragma once + +#include +#include + +struct Data { + std::string name; + int value; + int year; +}; + +class Serializer { + public: + static uintptr_t serialize(Data* ptr); + static Data* deserialize(uintptr_t raw); + private: + Serializer(); + Serializer(const Serializer&); + + Serializer& operator=(const Serializer&); + + ~Serializer(); +}; diff --git a/ex01/src/main.cpp b/ex01/src/main.cpp new file mode 100644 index 0000000..c541b09 --- /dev/null +++ b/ex01/src/main.cpp @@ -0,0 +1,17 @@ +#include +#include + +int main() { + Data data; + data.name = "Peugeot 208"; + data.value = 3860; + data.year = 2013; + + std::cout << "Before : " << &data << " " << data.year << " " << data.name << ": " << data.value << "€" << std::endl; + + const uintptr_t raw = Serializer::serialize(&data); + std::cout << "Serialized : " << raw << std::endl; + + const Data* deserialized = Serializer::deserialize(raw); + std::cout << "Deserialized: " << deserialized << " " << deserialized->year << " " << deserialized->name << ": " << deserialized->value << "€" << std::endl; +} -- 2.51.2