add: ex01

This commit is contained in:
Camille Chauvet
2023-09-19 11:37:26 +00:00
parent 4afd76b65b
commit 671d71f273
5 changed files with 96 additions and 0 deletions

9
ex01/src/Data.hpp Normal file
View File

@ -0,0 +1,9 @@
#pragma once
#include <string>
typedef struct s_data
{
std::string name;
int id;
} Data;

29
ex01/src/Serializer.cpp Normal file
View File

@ -0,0 +1,29 @@
#include "Serializer.hpp"
#include "Data.hpp"
Serializer::Serializer()
{}
Serializer::~Serializer()
{}
Serializer::Serializer(const Serializer& src)
{
(void)src;
}
Serializer& Serializer::operator=(const Serializer& src)
{
(void)src;
return *this;
}
uintptr_t Serializer::serialize(Data* ptr)
{
return reinterpret_cast<uintptr_t>(ptr);
}
Data* Serializer::deserialize(uintptr_t raw)
{
return reinterpret_cast<Data *>(raw);
}

19
ex01/src/Serializer.hpp Normal file
View File

@ -0,0 +1,19 @@
#pragma once
#include <stdint.h>
#include "Data.hpp"
class Serializer
{
private:
Serializer();
~Serializer();
Serializer(const Serializer& src);
Serializer& operator=(const Serializer& src);
public:
static uintptr_t serialize(Data* ptr);
static Data* deserialize(uintptr_t raw);
};

13
ex01/src/main.cpp Normal file
View File

@ -0,0 +1,13 @@
#include "Data.hpp"
#include "Serializer.hpp"
#include <iostream>
int main()
{
Data data = {"bozo", 10};
uintptr_t tmp = Serializer::serialize(&data);
std::cout << "serialized: " << std::hex << tmp << std::endl;
std::cout << "deserialized: " << Serializer::deserialize(tmp) << std::endl;
}