libGimbal 0.1.0
C17-Based Extended Standard Library and Cross-Language Runtime Framework
Loading...
Searching...
No Matches
gimbal_ivariant.h File Reference

Go to the source code of this file.

Data Structures

struct  GblIVariantVTable
 
struct  GblIVariantClass
 

Macros

#define GBL_IVARIANT_VALUE_VAR_ARG_MAX
 
#define VARIANT
 
#define CVARIANT
 
#define GBL_KEY
 
#define GBL_VALUE
 
Type System

Type UUID and cast operators

#define GBL_IVARIANT_TYPE
 
#define GBL_IVARIANT(instance)
 
#define GBL_IVARIANT_CLASS(klass)
 
#define GBL_IVARIANT_GET_CLASS(instance)
 

Typedefs

typedef GblFlags GBL_IVARIANT_OP_FLAGS
 
typedef struct GblIVariant GblIVariant
 

Enumerations

enum  GBL_IVARIANT_OP_FLAGS
 

Functions

GBL_RESULT GblIVariantClass_validate (const GblIVariantClass *pSelf)
 
GBL_RESULT GblIVariantClass_constructDefault (const GblIVariantClass *pSelf, GblVariant *pVariant)
 
GBL_RESULT GblIVariantClass_constructCopy (const GblIVariantClass *pSelf, GblVariant *pVariant, const GblVariant *pOther)
 
GBL_RESULT GblIVariantClass_constructMove (const GblIVariantClass *pSelf, GblVariant *pVariant, GblVariant *pOther)
 
GBL_RESULT GblIVariantClass_constructValueCopy (const GblIVariantClass *pSelf, GblVariant *pVariant, va_list *pVarArgs)
 
GBL_RESULT GblIVariantClass_constructValueMove (const GblIVariantClass *pSelf, GblVariant *pVariant, va_list *pVarArgs)
 
GBL_RESULT GblIVariantClass_setCopy (const GblIVariantClass *pSelf, GblVariant *pVariant, const GblVariant *pOther)
 
GBL_RESULT GblIVariantClass_setMove (const GblIVariantClass *pSelf, GblVariant *pVariant, GblVariant *pOther)
 
GBL_RESULT GblIVariantClass_setValueCopy (const GblIVariantClass *pSelf, GblVariant *pVariant, va_list *pVarArgs)
 
GBL_RESULT GblIVariantClass_setValueMove (const GblIVariantClass *pSelf, GblVariant *pVariant, va_list *pVarArgs)
 
GBL_RESULT GblIVariantClass_getValueCopy (const GblIVariantClass *pSelf, const GblVariant *pVariant, va_list *pVarArgs)
 
GBL_RESULT GblIVariantClass_getValuePeek (const GblIVariantClass *pSelf, const GblVariant *pVariant, va_list *pVarArgs)
 
GBL_RESULT GblIVariantClass_getValueMove (const GblIVariantClass *pSelf, const GblVariant *pVariant, va_list *pVarArgs)
 
GBL_RESULT GblIVariantClass_destruct (const GblIVariantClass *pSelf, GblVariant *pVariant)
 
GBL_RESULT GblIVariantClass_compare (const GblIVariantClass *pSelf, const GblVariant *pVariant, const GblVariant *pOther, int *pCmpResult)
 
GBL_RESULT GblIVariantClass_save (const GblIVariantClass *pSelf, const GblVariant *pVariant, GblStringBuffer *pString)
 
GBL_RESULT GblIVariantClass_load (const GblIVariantClass *pSelf, GblVariant *pVariant, const GblStringBuffer *pString)
 

Detailed Description

GblIVariant interface for GblVariant compatibility.

Todo:
  • Shouldn't the RHS variant automatically be invalidated after a "move" operation?
Author
2023 Falco Girgis

Definition in file gimbal_ivariant.h.

Macro Definition Documentation

◆ GBL_IVARIANT_TYPE

#define GBL_IVARIANT_TYPE

Definition at line 22 of file gimbal_ivariant.h.

◆ GBL_IVARIANT

#define GBL_IVARIANT (   instance)

Definition at line 23 of file gimbal_ivariant.h.

◆ GBL_IVARIANT_CLASS

#define GBL_IVARIANT_CLASS (   klass)

Definition at line 24 of file gimbal_ivariant.h.

◆ GBL_IVARIANT_GET_CLASS

#define GBL_IVARIANT_GET_CLASS (   instance)

Definition at line 25 of file gimbal_ivariant.h.

◆ GBL_IVARIANT_VALUE_VAR_ARG_MAX

#define GBL_IVARIANT_VALUE_VAR_ARG_MAX

Definition at line 28 of file gimbal_ivariant.h.

◆ VARIANT

#define VARIANT

Definition at line 55 of file gimbal_ivariant.h.

◆ CVARIANT

#define CVARIANT

Definition at line 56 of file gimbal_ivariant.h.

◆ GBL_KEY

#define GBL_KEY

Definition at line 89 of file gimbal_ivariant.h.

◆ GBL_VALUE

#define GBL_VALUE

Definition at line 90 of file gimbal_ivariant.h.

Typedef Documentation

◆ GBL_IVARIANT_OP_FLAGS

typedef GblFlags GBL_IVARIANT_OP_FLAGS

Definition at line 35 of file gimbal_ivariant.h.

◆ GblIVariant

typedef struct GblIVariant GblIVariant

Definition at line 84 of file gimbal_ivariant.h.

Enumeration Type Documentation

◆ GBL_IVARIANT_OP_FLAGS

enum GBL_IVARIANT_OP_FLAGS

Definition at line 35 of file gimbal_ivariant.h.

35 {
36 GBL_IVARIANT_OP_FLAG_RELOCATABLE = 0x00001,
37 GBL_IVARIANT_OP_FLAG_CONSTRUCT_DEFAULT = 0x00002,
38 GBL_IVARIANT_OP_FLAG_CONSTRUCT_COPY = 0x00004,
39 GBL_IVARIANT_OP_FLAG_CONSTRUCT_MOVE = 0x00008,
40 GBL_IVARIANT_OP_FLAG_CONSTRUCT_VALUE_COPY = 0x00010,
41 GBL_IVARIANT_OP_FLAG_CONSTRUCT_VALUE_MOVE = 0x00020,
42 GBL_IVARIANT_OP_FLAG_CONSTRUCT_MASK = 0x0003e,
43 GBL_IVARIANT_OP_FLAG_SET_COPY = 0x00040,
44 GBL_IVARIANT_OP_FLAG_SET_MOVE = 0x00080,
45 GBL_IVARIANT_OP_FLAG_SET_VALUE_COPY = 0x00100,
46 GBL_IVARIANT_OP_FLAG_SET_VALUE_MOVE = 0x00200,
47 GBL_IVARIANT_OP_FLAG_SET_MASK = 0x003c0,
48 GBL_IVARIANT_OP_FLAG_GET_VALUE_COPY = 0x00400,
49 GBL_IVARIANT_OP_FLAG_GET_VALUE_PEEK = 0x00800,
50 GBL_IVARIANT_OP_FLAG_GET_VALUE_MOVE = 0x01000,
51 GBL_IVARIANT_OP_FLAG_GET_MASK = 0x01c00,
52 GBL_IVARIANT_OP_FLAG_VALUELESS_TYPE = 0x40000
53};