libGimbal 0.1.0
C17-Based Extended Standard Library and Cross-Language Runtime Framework
Loading...
Searching...
No Matches
gimbal::StaticType< P, C, I > Class Template Reference
Inheritance diagram for gimbal::StaticType< P, C, I >:
gimbal::Type

Public Types

using ParentType = P
 
using ClassType = C
 
using InstanceType = I
 

Protected Member Functions

 StaticType (Type type)
 
InstanceType * createInstance (void) const
 
void destroyInstance (InstanceType *pInstance) const
 
Type registerStatic (const char *pName, TypeFlags flags)
 

Additional Inherited Members

- Public Member Functions inherited from gimbal::Type
 Type (GblType type=((GblType) 0))
 
 Type (float)=delete
 
 Type (double)=delete
 
 Type (unsigned)=delete
 
const char * getName (void) const
 
Type getParentType (void) const
 
Type getFundamentalType (void) const
 
const TypeInfogetInfo (void) const
 
UInt getDepth (void) const
 
bool isValid (void) const
 
bool isClassed (void) const
 
bool isInstantiable (void) const
 
bool isDerivable (void) const
 
bool isDeepDerivable (void) const
 
bool isAbstract (void) const
 
bool isFinal (void) const
 
bool isInterfaced (void) const
 
bool isFundamental (void) const
 
bool isA (Type base) const
 
bool isFundamentallyA (Type base) const
 
RefCount getClassRefCount (void) const
 
void * instanceCreate (void) const
 
void instanceConstruct (void *pInstance) const
 
void instanceDestruct (void *pInstance) const
 
void instanceDestroy (void *pInstance) const
 
void * classReference (void) const
 
void classUnreference (void *pClass) const
 
- Static Public Member Functions inherited from gimbal::Type
static Result init (Context *pCtx=nullptr, Size typeBuiltinInitialCount=0, Size typeTotalInitialCount=0)
 
static Type registerStatic (Type parentType, const char *pName, TypeInfo typeInfo, TypeFlags flags)
 
static void unregister (Type type)
 
static Size count (void)
 
static Type fromName (const char *pName)
 
static void * instanceCreate (Type type)
 
static void instanceConstruct (Type type, void *pInstance)
 
static void instanceDestruct (Type type, void *pInstance)
 
static void instanceDestroy (Type type, void *pInstance)
 
static void * classReference (Type type)
 
static void * classPeek (Type type)
 
static void classUnreference (Type type, void *pClass)
 

Detailed Description

template<typename P, typename C, typename I>
class gimbal::StaticType< P, C, I >

Definition at line 105 of file gimbal_type.hpp.

Member Typedef Documentation

◆ ParentType

template<typename P , typename C , typename I >
using gimbal::StaticType< P, C, I >::ParentType = P

Definition at line 107 of file gimbal_type.hpp.

◆ ClassType

template<typename P , typename C , typename I >
using gimbal::StaticType< P, C, I >::ClassType = C

Definition at line 108 of file gimbal_type.hpp.

◆ InstanceType

template<typename P , typename C , typename I >
using gimbal::StaticType< P, C, I >::InstanceType = I

Definition at line 109 of file gimbal_type.hpp.

Constructor & Destructor Documentation

◆ StaticType()

template<typename P , typename C , typename I >
gimbal::StaticType< P, C, I >::StaticType ( Type  type)
inlineprotected

Definition at line 112 of file gimbal_type.hpp.

112: Type(std::move(type)) {}

Member Function Documentation

◆ registerStatic()

template<typename P , typename C , typename I >
Type gimbal::StaticType< P, C, I >::registerStatic ( const char *  pName,
TypeFlags  flags 
)
inlineprotected

Definition at line 122 of file gimbal_type.hpp.

122 {
123 const TypeInfo info = {
124 {
125 .classSize = sizeof(C),
126 .instanceSize = sizeof(I)
127 }
128 };
129 return Type::registerStatic(P(), pName, info, flags);
130 }

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