checkpoint::dispatch namespace

Namespaces

namespace typeregistry
namespace vrt

Classes

template<typename T>
struct Allocator
template<typename SerializerT, typename T>
struct BasicDispatcher
template<typename T>
struct CleanType
template<typename T>
struct InPlaceWrapper
A wrapper class for in-place allocations that may not have a corresponding destructor. If a user has an existing allocation that is deserialized into, it may never be destructed as it gets copied or moved. This class encapsulates that allocation and ensures it is properly destroyed, or it explicitly requires transferOwnership to be invoked, indicating that the user is now responsible for its destruction. This typically occurs when the user or system places the type in a managed pointer, such as a std::unique_ptr<T> with a standard deleter.
template<typename T>
struct Reconstructor
struct serialization_error
struct SERIALIZE_CONSTRUCT_TAG
template<typename SerializerT, typename T, typename Dispatcher>
struct SerializerDispatchByte
template<typename SerializerT, typename T, typename Dispatcher = BasicDispatcher<SerializerT, T>>
struct SerializerDispatchNonByte

Typedefs

template<typename SerializerT, typename T, typename Dispatcher = BasicDispatcher<SerializerT, T>>
using SerializerDispatch = SerializerDispatchByte<SerializerT, T, Dispatcher>

Functions

template<typename T>
auto cleanType(T* val) -> CleanType<T>::CleanT*
template<typename T, typename TraverserT>
auto withTypeIdx(TraverserT& t) -> TraverserT&
template<typename T, typename TraverserT>
auto withMemUsed(TraverserT& t, SerialSizeType len) -> TraverserT&
template<typename Serializer, typename T>
void serializeArray(Serializer& s, T* array, SerialSizeType const len)
template<typename TargetT, typename PackerT>
void validatePackerBufferSize(PackerT const& p, SerialSizeType bufferSize)
template<typename T, typename UserTraits>
auto packBuffer(T& target, SerialSizeType size, BufferObtainFnType fn) -> buffer::ImplReturnType
template<typename T, typename UserTraits>
auto serializeType(T& target, BufferObtainFnType fn) -> buffer::ImplReturnType
template<typename T, typename UserTraits>
auto deserializeType(SerialByteType* data, SerialByteType* allocBuf) -> T*
template<typename T, typename UserTraits>
void deserializeType(InPlaceTag, SerialByteType* data, T* t)

Typedef documentation

template<typename SerializerT, typename T, typename Dispatcher = BasicDispatcher<SerializerT, T>>
using checkpoint::dispatch::SerializerDispatch = SerializerDispatchByte<SerializerT, T, Dispatcher>

Function documentation

template<typename T>
CleanType<T>::CleanT* checkpoint::dispatch::cleanType(T* val)

template<typename T, typename TraverserT>
TraverserT& checkpoint::dispatch::withTypeIdx(TraverserT& t)

template<typename T, typename TraverserT>
TraverserT& checkpoint::dispatch::withMemUsed(TraverserT& t, SerialSizeType len)

template<typename Serializer, typename T>
void checkpoint::dispatch::serializeArray(Serializer& s, T* array, SerialSizeType const len)

template<typename TargetT, typename PackerT>
void checkpoint::dispatch::validatePackerBufferSize(PackerT const& p, SerialSizeType bufferSize)

template<typename T, typename UserTraits>
buffer::ImplReturnType checkpoint::dispatch::packBuffer(T& target, SerialSizeType size, BufferObtainFnType fn)

template<typename T, typename UserTraits>
buffer::ImplReturnType checkpoint::dispatch::serializeType(T& target, BufferObtainFnType fn)

template<typename T, typename UserTraits>
T* checkpoint::dispatch::deserializeType(SerialByteType* data, SerialByteType* allocBuf)

template<typename T, typename UserTraits>
void checkpoint::dispatch::deserializeType(InPlaceTag, SerialByteType* data, T* t)