LibGimbal  1.0.0
Ultimate C17/C++20 Cross-Language Runtime Framework and Meta Type System
MetaType< T > Class Template Reference

#include <gimbal_meta.hpp>

Inheritance diagram for MetaType< T >:
Collaboration diagram for MetaType< T >:

Public Member Functions

template<typename V = MetaTypeVTable<T>>
requires std::is_base_of_v< GblMetaTypeVTable, V > MetaType (const V *pVTable, const char *pTypeName="Unknown")
 
const char * getTypeName (void) const
 
MetaTypeId getMetaTypeId (void) const
 
auto getFlags (void) const
 
Size getSize (void) const
 
Size getAlignment (void) const
 
Size getVTableSize (void) const
 
T * create (Context *pCtx, const Variant &variant) const
 
void construct (Context *pCtx, T *pData, const Variant &variant) const
 
void destroy (Context *pCtx, T *pData) const
 
void destruct (Context *pCtx, T *pData) const
 
void convert (Context *pCtx, const T *pData, Variant *pTo) const
 
gimbal::Int compare (Context *pCtx, const T *pData, const Variant &rhs) const
 
bool compare (Context *pCtx, const T *pData, const Variant &rhs, Variant::OpCmpType cmpType) const
 
bool serialize (Context *pCtx, const T *pData, void *pBuffer, Size *pSize) const
 
bool deserialize (Context *pCtx, T *pData, const void *pBuffer, Size *pSize) const
 

Additional Inherited Members

- Data Fields inherited from GblMetaType
GblVTableEntrypVTable
 
const char * pTypeName
 
GBL_VARIANT_TYPE variantType
 

Detailed Description

template<typename T = void>
class gimbal::MetaType< T >

Definition at line 160 of file gimbal_meta.hpp.

Constructor & Destructor Documentation

◆ MetaType()

requires std::is_base_of_v<GblMetaTypeVTable, V> MetaType ( const V *  pVTable,
const char *  pTypeName = "Unknown" 
)
inline

Definition at line 166 of file gimbal_meta.hpp.

Member Function Documentation

◆ compare() [1/2]

gimbal::Int compare ( Context pCtx,
const T *  pData,
const Variant &  rhs 
) const
inline

Definition at line 209 of file gimbal_meta.hpp.

◆ compare() [2/2]

bool compare ( Context pCtx,
const T *  pData,
const Variant &  rhs,
Variant::OpCmpType  cmpType 
) const
inline

Definition at line 214 of file gimbal_meta.hpp.

◆ construct()

void construct ( Context pCtx,
T *  pData,
const Variant &  variant 
) const
inline

Definition at line 197 of file gimbal_meta.hpp.

◆ convert()

void convert ( Context pCtx,
const T *  pData,
Variant *  pTo 
) const
inline

Definition at line 206 of file gimbal_meta.hpp.

◆ create()

T* create ( Context pCtx,
const Variant &  variant 
) const
inline

Definition at line 192 of file gimbal_meta.hpp.

◆ deserialize()

bool deserialize ( Context pCtx,
T *  pData,
const void *  pBuffer,
Size pSize 
) const
inline

Definition at line 222 of file gimbal_meta.hpp.

◆ destroy()

void destroy ( Context pCtx,
T *  pData 
) const
inline

Definition at line 200 of file gimbal_meta.hpp.

◆ destruct()

void destruct ( Context pCtx,
T *  pData 
) const
inline

Definition at line 203 of file gimbal_meta.hpp.

◆ getAlignment()

Size getAlignment ( void  ) const
inline

Definition at line 187 of file gimbal_meta.hpp.

◆ getFlags()

auto getFlags ( void  ) const
inline

Definition at line 185 of file gimbal_meta.hpp.

◆ getMetaTypeId()

MetaTypeId getMetaTypeId ( void  ) const
inline

Definition at line 184 of file gimbal_meta.hpp.

◆ getSize()

Size getSize ( void  ) const
inline

Definition at line 186 of file gimbal_meta.hpp.

◆ getTypeName()

const char* getTypeName ( void  ) const
inline

Definition at line 183 of file gimbal_meta.hpp.

◆ getVTableSize()

Size getVTableSize ( void  ) const
inline

Definition at line 188 of file gimbal_meta.hpp.

◆ serialize()

bool serialize ( Context pCtx,
const T *  pData,
void *  pBuffer,
Size pSize 
) const
inline

Definition at line 218 of file gimbal_meta.hpp.


The documentation for this class was generated from the following file: