template<typename SerializedT, typename ObjectT, typename... AdditionalArgs>
class Leosac::ExtensibleSerializer< SerializedT, ObjectT, AdditionalArgs >
Provides dynamic serializers management for a given object's hierarchy.
Clients are able to add serializers for a concrete subtype of ObjectT. They can also remove serializers, and call the serialize()
method.
- Note
- : The ExtensibleSerializer is thread safe. Management of user-defined serializers, aswell as invocation of serializers is performed while holding an internal recursive mutex. It is therefore allowed for a serializer implementation to make call to the ExtensibleSerializer. However, be careful to avoid deadlock if using multiple ExtensibleSerializer.
- Template Parameters
-
SerializedT | The type of serialization output. |
ObjectT | The base type of the class hierarchy this serializer will be able to handle. |
AdditionalArgs | A variadic parameter that let the serialize() method accepts additional arguments and forward them to the user-provided serialization callable. |
Definition at line 53 of file ExtensibleSerializer.hpp.