Serializable¶
Serialization utilities.
Overview¶
Typical use cases:
Serializing and deserializing objects to/from binary streams
Reflecting object fields for custom processing
Header¶
<RaeptorCogs/Serializable.hpp>
Metadata¶
- Author
Estorc
- Version
v1.0
- Copyright
Copyright (c) 2025 Estorc MIT License.
Enums¶
Enum |
Description |
|---|---|
|
Serialization flags. |
|
Visitor mode enumeration. |
-
enum class RaeptorCogs::SerializationFlag : uint8_t¶
Serialization flags.
Defines flags for serialization options.
Values:
-
enumerator NONE¶
No serialization flags set.
-
enumerator COMPRESS¶
Enable compression for serialized data.
-
enumerator NONE¶
Classes¶
Class |
Description |
|---|---|
|
Serializable interface. |
|
Visitor interface. |
-
class Serializable¶
Serializable interface.
Provides a contract for serializable objects.
Public Functions
-
virtual ~Serializable() = default¶
Virtual destructor.
-
virtual void reflect(Visitor &v) = 0¶
Reflect method to be implemented by derived classes.
- Parameters:
v – Visitor to operate on the fields.
-
std::vector<uint8_t> dump(SerializationFlag flags = SerializationFlag::NONE)¶
Dump the object to an output stream.
- Parameters:
flags – Serialization flags to control the dumping process.
- Returns:
Vector of bytes representing the serialized object.
-
void load(std::vector<uint8_t> data, SerializationFlag flags = SerializationFlag::NONE)¶
Load the object from an input stream.
- Parameters:
data – Vector of bytes representing the serialized object.
flags – Serialization flags to control the loading process.
-
virtual ~Serializable() = default¶
-
class Visitor¶
Visitor interface.
Defines the interface for visitors that can operate on different field types.
Public Functions
-
template<typename T>
inline std::enable_if_t<std::is_base_of_v<Serializable, T>> visit(T &obj)¶ Visit a Serializable object field.
-
template<typename T>
inline std::enable_if_t<!std::is_base_of_v<Serializable, T>> visit(T &v)¶ Visit a generic field.
-
inline Visitor(std::iostream &stream, VisitorMode mode)¶
Constructor.
- Parameters:
stream – Stream to read from or write to.
mode – Mode of the visitor (serialize or deserialize).
-
~Visitor() = default¶
Destructor.
Private Members
-
VisitorMode mode¶
Current mode of the visitor (serialize or deserialize).
-
template<typename T>