namespace
vrt
Namespaces
- namespace objregistry
- namespace serializer_registry
Classes
-
template<typename BaseT>struct _CheckpointBaseType
-
template<typename BaseT>struct _CheckpointBaseType<BaseT*>
-
template<typename BaseT>struct _CheckpointBaseType<SerializableBase<BaseT>*>
-
template<typename DerivedT>struct _CheckpointDerivedType
-
template<typename DerivedT>struct _CheckpointDerivedType<DerivedT*>
-
template<typename DerivedT, typename BaseT>struct _CheckpointDerivedType<SerializableDerived<DerivedT, BaseT>*>
-
template<typename ObjT, typename SerializerT, typename = void>struct InstantiateIfPossible
-
template<typename ObjT, typename... Ts>struct InstantiateTupleHelper
-
template<typename ObjT>struct InstantiateTupleHelper<ObjT>
-
template<typename ObjT, typename T, typename... Ts>struct InstantiateTupleHelper<ObjT, T, Ts...>
-
template<typename ObjT, typename SerializerT>struct InstantiateIfPossible<ObjT, SerializerT, typename std::enable_if_t<SerializableTraits<ObjT, SerializerT>::has_serialize_function or SerializableTraits<ObjT, SerializerT>::is_bytecopyable>>
-
template<typename ObjT, typename SerializerT>struct InstantiateIfPossible<ObjT, SerializerT, typename std::enable_if_t<not(SerializableTraits<ObjT, SerializerT>::has_serialize_function or SerializableTraits<ObjT, SerializerT>::is_bytecopyable)>>
-
template<typename BaseT>struct SerializableBase
- A class at the base of an inheritance hierarchy should inherit from this.
-
template<typename DerivedT, typename BaseT>struct SerializableDerived
- A derived class of an inheritance hierarchy should inherit from this.
-
template<typename T>struct VirtualSerializeTraits
Typedefs
-
template<typename DerivedT>using checkpoint_derived_type_t = typename _
CheckpointDerivedType<DerivedT>::type - using TypeIdx = int
-
template<typename ObjT>using checkpoint_base_type_t = typename _
CheckpointBaseType<decltype(std::declval<ObjT>()._CheckpointVSBaseTypeFn())>::type
Functions
-
template<typename ObjT>void assertTypeIdxMatch(TypeIdx const expected_idx)
-
template<typename SerializerT, typename DerivedT, typename BaseT>void linkDerivedToBase()
-
template<typename ObjT, typename SerializerT>static void instantiateObjSerializerImpl()
-
template<typename T, typename SerializerT>void virtualSerialize(T*& base, SerializerT& s)
- A function to handle serialization of objects of a mix of types in a virtual inheritance hierarchy.
Variables
- static const TypeIdx no_type_idx constexpr
Typedef documentation
template<typename DerivedT>
using checkpoint:: dispatch:: vrt:: checkpoint_derived_type_t = typename _ CheckpointDerivedType<DerivedT>::type
using checkpoint:: dispatch:: vrt:: TypeIdx = int
template<typename ObjT>
using checkpoint:: dispatch:: vrt:: checkpoint_base_type_t = typename _ CheckpointBaseType<decltype(std::declval<ObjT>()._CheckpointVSBaseTypeFn())>::type
Function documentation
template<typename ObjT>
void checkpoint:: dispatch:: vrt:: assertTypeIdxMatch(TypeIdx const expected_idx)
template<typename SerializerT, typename DerivedT, typename BaseT>
void checkpoint:: dispatch:: vrt:: linkDerivedToBase()
template<typename ObjT, typename SerializerT>
static void checkpoint:: dispatch:: vrt:: instantiateObjSerializerImpl()
template<typename T, typename SerializerT>
void checkpoint:: dispatch:: vrt:: virtualSerialize(T*& base,
SerializerT& s)
A function to handle serialization of objects of a mix of types in a virtual inheritance hierarchy.
This will automatically record the exact derived type at serialization, and reconstruct objects accordingly at deserialization.
Variable documentation
static const TypeIdx checkpoint:: dispatch:: vrt:: no_type_idx constexpr