-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserializer.cpp
More file actions
32 lines (24 loc) · 892 Bytes
/
serializer.cpp
File metadata and controls
32 lines (24 loc) · 892 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "serializer.hpp"
#include <iostream>
Serialization::SerializerExceptions::InvalidType::InvalidType(const std::string& err)
: std::runtime_error{err} {}
Serialization::SerializerExceptions::InvalidArgs::InvalidArgs(const std::string& err)
: std::runtime_error{err} {}
void Serialization::MultipleSerializable::registerSerializer(SerializerId _id, const SerializerFunction& f)
{
smap[_id] = f;
}
// throws if not have such Id
const Serialization::SerializerFunction& Serialization::MultipleSerializable::getCurrentSerializer()
{
return smap.at(curId);
}
void Serialization::MultipleDeserializable::registerDeserializer(SerializerId _id, const DeserializerFunction& f)
{
dsmap[_id] = f;
}
// throws if not have such Id
const Serialization::DeserializerFunction& Serialization::MultipleDeserializable::getCurrentDeserializer()
{
return dsmap.at(curId);
}