Line |
Branch |
Exec |
Source |
1 |
|
|
// |
2 |
|
|
// Copyright (c) 2024 INRIA |
3 |
|
|
// |
4 |
|
|
|
5 |
|
|
#ifndef COAL_SERIALIZATION_SERIALIZER_H |
6 |
|
|
#define COAL_SERIALIZATION_SERIALIZER_H |
7 |
|
|
|
8 |
|
|
#include "coal/serialization/archive.h" |
9 |
|
|
|
10 |
|
|
namespace coal { |
11 |
|
|
namespace serialization { |
12 |
|
|
|
13 |
|
|
struct Serializer { |
14 |
|
|
/// \brief Loads an object from a text file. |
15 |
|
|
template <typename T> |
16 |
|
✗ |
static void loadFromText(T& object, const std::string& filename) { |
17 |
|
✗ |
::coal::serialization::loadFromText(object, filename); |
18 |
|
|
} |
19 |
|
|
|
20 |
|
|
/// \brief Saves an object as a text file. |
21 |
|
|
template <typename T> |
22 |
|
✗ |
static void saveToText(const T& object, const std::string& filename) { |
23 |
|
✗ |
::coal::serialization::saveToText(object, filename); |
24 |
|
|
} |
25 |
|
|
|
26 |
|
|
/// \brief Loads an object from a stream string. |
27 |
|
|
template <typename T> |
28 |
|
|
static void loadFromStringStream(T& object, std::istringstream& is) { |
29 |
|
|
::coal::serialization::loadFromStringStream(object, is); |
30 |
|
|
} |
31 |
|
|
|
32 |
|
|
/// \brief Saves an object to a string stream. |
33 |
|
|
template <typename T> |
34 |
|
|
static void saveToStringStream(const T& object, std::stringstream& ss) { |
35 |
|
|
::coal::serialization::saveToStringStream(object, ss); |
36 |
|
|
} |
37 |
|
|
|
38 |
|
|
/// \brief Loads an object from a string. |
39 |
|
|
template <typename T> |
40 |
|
✗ |
static void loadFromString(T& object, const std::string& str) { |
41 |
|
✗ |
::coal::serialization::loadFromString(object, str); |
42 |
|
|
} |
43 |
|
|
|
44 |
|
|
/// \brief Saves a Derived object to a string. |
45 |
|
|
template <typename T> |
46 |
|
✗ |
static std::string saveToString(const T& object) { |
47 |
|
✗ |
return ::coal::serialization::saveToString(object); |
48 |
|
|
} |
49 |
|
|
|
50 |
|
|
/// \brief Loads an object from an XML file. |
51 |
|
|
template <typename T> |
52 |
|
✗ |
static void loadFromXML(T& object, const std::string& filename, |
53 |
|
|
const std::string& tag_name) { |
54 |
|
✗ |
::coal::serialization::loadFromXML(object, filename, tag_name); |
55 |
|
|
} |
56 |
|
|
|
57 |
|
|
/// \brief Saves an object as an XML file. |
58 |
|
|
template <typename T> |
59 |
|
✗ |
static void saveToXML(const T& object, const std::string& filename, |
60 |
|
|
const std::string& tag_name) { |
61 |
|
✗ |
::coal::serialization::saveToXML(object, filename, tag_name); |
62 |
|
|
} |
63 |
|
|
|
64 |
|
|
/// \brief Loads a Derived object from an binary file. |
65 |
|
|
template <typename T> |
66 |
|
✗ |
static void loadFromBinary(T& object, const std::string& filename) { |
67 |
|
✗ |
::coal::serialization::loadFromBinary(object, filename); |
68 |
|
|
} |
69 |
|
|
|
70 |
|
|
/// \brief Saves a Derived object as an binary file. |
71 |
|
|
template <typename T> |
72 |
|
✗ |
static void saveToBinary(const T& object, const std::string& filename) { |
73 |
|
✗ |
::coal::serialization::saveToBinary(object, filename); |
74 |
|
|
} |
75 |
|
|
|
76 |
|
|
/// \brief Loads an object from a binary buffer. |
77 |
|
|
template <typename T> |
78 |
|
✗ |
static void loadFromBuffer(T& object, boost::asio::streambuf& container) { |
79 |
|
✗ |
::coal::serialization::loadFromBuffer(object, container); |
80 |
|
|
} |
81 |
|
|
|
82 |
|
|
/// \brief Saves an object as a binary buffer. |
83 |
|
|
template <typename T> |
84 |
|
✗ |
static void saveToBuffer(const T& object, boost::asio::streambuf& container) { |
85 |
|
✗ |
::coal::serialization::saveToBuffer(object, container); |
86 |
|
|
} |
87 |
|
|
}; |
88 |
|
|
|
89 |
|
|
} // namespace serialization |
90 |
|
|
} // namespace coal |
91 |
|
|
|
92 |
|
|
#endif // ifndef COAL_SERIALIZATION_SERIALIZER_H |
93 |
|
|
|