add: ex01
This commit is contained in:
9
ex01/src/Data.hpp
Normal file
9
ex01/src/Data.hpp
Normal 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
29
ex01/src/Serializer.cpp
Normal 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
19
ex01/src/Serializer.hpp
Normal 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
13
ex01/src/main.cpp
Normal 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;
|
||||
}
|
Reference in New Issue
Block a user