lib/checkpoint/src/checkpoint/dispatch/vrt/virtual_serialize.h file

Namespaces

namespace checkpoint
namespace checkpoint::dispatch
namespace checkpoint::dispatch::vrt

Classes

template<typename T, typename SerializerT, typename _enabled = void>
struct checkpoint::SerializeVirtualTypeIfNeeded
Do a static trait test on type to check for virtual serializability.
template<typename T, typename SerializerT>
struct checkpoint::SerializeVirtualTypeIfNeeded<T, SerializerT, typename std::enable_if_t<dispatch::vrt::VirtualSerializeTraits<T>::has_not_virtual_serialize>>
template<typename T, typename SerializerT>
struct checkpoint::SerializeVirtualTypeIfNeeded<T, SerializerT, typename std::enable_if_t<dispatch::vrt::VirtualSerializeTraits<T>::has_virtual_serialize>>
template<typename T, typename SerializerT, typename _enabled = void>
struct checkpoint::ReconstructAsVirtualIfNeeded
Do a static trait test on type to check for virtual serializability. If virtually serializable, we need to perform some extra work to register the type, allocate, and construct the proper type. Otherwise, we go through the normal path for allocating memory for T and serializing what the pointer points to.
template<typename T, typename SerializerT>
struct checkpoint::ReconstructAsVirtualIfNeeded<T, SerializerT, typename std::enable_if_t<dispatch::vrt::VirtualSerializeTraits<T>::has_not_virtual_serialize and not checkpoint::is_footprinter_v<SerializerT>>>
template<typename T, typename SerializerT>
struct checkpoint::ReconstructAsVirtualIfNeeded<T, SerializerT, typename std::enable_if_t<dispatch::vrt::VirtualSerializeTraits<T>::has_not_virtual_serialize and checkpoint::is_footprinter_v<SerializerT>>>
template<typename T, typename SerializerT>
struct checkpoint::ReconstructAsVirtualIfNeeded<T, SerializerT, typename std::enable_if_t<dispatch::vrt::VirtualSerializeTraits<T>::has_virtual_serialize>>