timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
tim::operation::extra_serialization< Tp > Struct Template Reference

Provides a hook to add additional serialization data for the type. Examples include the roofline components adding roofline data. Note that this is data for the component type, not data for a component entry in the call-graph. More...

#include "timemory/operations/types/serialization.hpp"

+ Collaboration diagram for tim::operation::extra_serialization< Tp >:

Public Types

using PrettyJson_t = cereal::PrettyJSONOutputArchive
 
using MinimalJson_t = cereal::MinimalJSONOutputArchive
 

Public Member Functions

 extra_serialization (PrettyJson_t &ar, unsigned int ver=0)
 
 extra_serialization (MinimalJson_t &ar, unsigned int ver=0)
 
template<typename Archive >
 extra_serialization (Archive &ar, unsigned int ver=0)
 
auto operator() (PrettyJson_t &ar, unsigned int ver=0) const
 
auto operator() (MinimalJson_t &ar, unsigned int ver=0) const
 
template<typename Archive >
auto operator() (Archive &ar, unsigned int ver=0) const
 

Detailed Description

template<typename Tp>
struct tim::operation::extra_serialization< Tp >

Provides a hook to add additional serialization data for the type. Examples include the roofline components adding roofline data. Note that this is data for the component type, not data for a component entry in the call-graph.

Definition at line 52 of file serialization.hpp.

Member Typedef Documentation

◆ MinimalJson_t

template<typename Tp >
using tim::operation::extra_serialization< Tp >::MinimalJson_t = cereal::MinimalJSONOutputArchive

Definition at line 55 of file serialization.hpp.

◆ PrettyJson_t

template<typename Tp >
using tim::operation::extra_serialization< Tp >::PrettyJson_t = cereal::PrettyJSONOutputArchive

Definition at line 54 of file serialization.hpp.

Constructor & Destructor Documentation

◆ extra_serialization() [1/3]

template<typename Tp >
tim::operation::extra_serialization< Tp >::extra_serialization ( PrettyJson_t ar,
unsigned int  ver = 0 
)
inlineexplicit

Definition at line 59 of file serialization.hpp.

60 {
61 (*this)(ar, ver);
62 }

◆ extra_serialization() [2/3]

template<typename Tp >
tim::operation::extra_serialization< Tp >::extra_serialization ( MinimalJson_t ar,
unsigned int  ver = 0 
)
inlineexplicit

Definition at line 64 of file serialization.hpp.

65 {
66 (*this)(ar, ver);
67 }

◆ extra_serialization() [3/3]

template<typename Tp >
template<typename Archive >
tim::operation::extra_serialization< Tp >::extra_serialization ( Archive &  ar,
unsigned int  ver = 0 
)
inlineexplicit

Definition at line 70 of file serialization.hpp.

71 {
72 (*this)(ar, ver);
73 }

Member Function Documentation

◆ operator()() [1/3]

template<typename Tp >
template<typename Archive >
auto tim::operation::extra_serialization< Tp >::operator() ( Archive &  ar,
unsigned int  ver = 0 
) const
inline

Definition at line 86 of file serialization.hpp.

87 {
88 sfinae(ar, ver, 0, 0);
89 }

◆ operator()() [2/3]

template<typename Tp >
auto tim::operation::extra_serialization< Tp >::operator() ( MinimalJson_t ar,
unsigned int  ver = 0 
) const
inline

Definition at line 80 of file serialization.hpp.

81 {
82 sfinae(ar, ver, 0, 0);
83 }

◆ operator()() [3/3]

template<typename Tp >
auto tim::operation::extra_serialization< Tp >::operator() ( PrettyJson_t ar,
unsigned int  ver = 0 
) const
inline

Definition at line 75 of file serialization.hpp.

76 {
77 sfinae(ar, ver, 0, 0);
78 }

The documentation for this struct was generated from the following files: