GATE
typeids.h File Reference

GATE type ID specifications. More...

#include "gate/gate_core_api.h"
#include "gate/gatetypes.h"

Macros

#define GATE_TYPE_VOID   0x0000
 
#define GATE_TYPE_EMPTY   GATE_TYPE_VOID
 
#define GATE_TYPE_BOOL   0x0001 /* boolean 0|1 */
 
#define GATE_TYPE_I8   0x0002 /* 8 bit signed integer */
 
#define GATE_TYPE_UI8   0x0003 /* 8 bit unsigned integer */
 
#define GATE_TYPE_I16   0x0004 /* 16 bit signed integer */
 
#define GATE_TYPE_UI16   0x0005 /* 16 bit unsigned integer */
 
#define GATE_TYPE_I32   0x0006 /* 32 bit signed integer */
 
#define GATE_TYPE_UI32   0x0007 /* 32 bit unsigned integer */
 
#define GATE_TYPE_I64   0x0008 /* 64 bit signed integer */
 
#define GATE_TYPE_UI64   0x0009 /* 64 bit unsigned integer */
 
#define GATE_TYPE_R32   0x000a /* 32 bit floating point */
 
#define GATE_TYPE_R64   0x000b /* 64 bit floating point */
 
#define GATE_TYPE_ADDRESS   0x000c /* platform dependent integer (uintptr_t) */
 
#define GATE_TYPE_DATAPTR   0x0021 /* generic data pointer (void*) */
 
#define GATE_TYPE_FUNCPTR   0x0022 /* generic function pointer (int(*)(void*, ...) */
 
#define GATE_TYPE_CSTR   0x0023 /* pointer to const char string */
 
#define GATE_TYPE_WSTR   0x0024 /* pointer to const wchar_t string */
 
#define GATE_TYPE_GUID   0x0025 /* GUID value */
 
#define GATE_TYPE_DATE   0x0026 /* date (year-month-day), gate_date_t */
 
#define GATE_TYPE_DAYTIME   0x0027 /* day-time (hour-minute-second), gate_daytime_t */
 
#define GATE_TYPE_DATETIME   0x0028 /* date + day-time (year-month-day + hour-minute-second), gate_datetime_t */
 
#define GATE_TYPE_TIME   0x0029 /* global timestamp + local bias, gate_time_t */
 
#define GATE_TYPE_STRING   0x0041 /* gate_string_t object */
 
#define GATE_TYPE_ARRAY   0x0042 /* gate_array_t object of elements */
 
#define GATE_TYPE_BLOB   0x0043 /* gate_blob_t object*/
 
#define GATE_TYPE_STRUCT   0x0061 /* gate_struct_ptr_t */
 
#define GATE_TYPE_OBJECT   0x0062 /* gate_object_ptr_t */
 
#define GATE_TYPE_PROPERTY   0x0063 /* gate_property_t */
 
#define GATE_TYPE_ARRAYLIST   0x4000
 
#define GATE_TYPE_ARRAYLIST_BOOL   (GATE_TYPE_ARRAYLIST | GATE_TYPE_BOOL)
 
#define GATE_TYPE_ARRAYLIST_I8   (GATE_TYPE_ARRAYLIST | GATE_TYPE_I8)
 
#define GATE_TYPE_ARRAYLIST_UI8   (GATE_TYPE_ARRAYLIST | GATE_TYPE_UI8)
 
#define GATE_TYPE_ARRAYLIST_I16   (GATE_TYPE_ARRAYLIST | GATE_TYPE_I16)
 
#define GATE_TYPE_ARRAYLIST_UI16   (GATE_TYPE_ARRAYLIST | GATE_TYPE_UI16)
 
#define GATE_TYPE_ARRAYLIST_I32   (GATE_TYPE_ARRAYLIST | GATE_TYPE_I32)
 
#define GATE_TYPE_ARRAYLIST_UI32   (GATE_TYPE_ARRAYLIST | GATE_TYPE_UI32)
 
#define GATE_TYPE_ARRAYLIST_I64   (GATE_TYPE_ARRAYLIST | GATE_TYPE_I64)
 
#define GATE_TYPE_ARRAYLIST_UI64   (GATE_TYPE_ARRAYLIST | GATE_TYPE_UI64)
 
#define GATE_TYPE_ARRAYLIST_R32   (GATE_TYPE_ARRAYLIST | GATE_TYPE_R32)
 
#define GATE_TYPE_ARRAYLIST_R64   (GATE_TYPE_ARRAYLIST | GATE_TYPE_R64)
 
#define GATE_TYPE_ARRAYLIST_ADDRESS   (GATE_TYPE_ARRAYLIST | GATE_TYPE_ADDRESS)
 
#define GATE_TYPE_ARRAYLIST_DATAPTR   (GATE_TYPE_ARRAYLIST | GATE_TYPE_DATAPTR)
 
#define GATE_TYPE_ARRAYLIST_FUNCPTR   (GATE_TYPE_ARRAYLIST | GATE_TYPE_FUNCPTR)
 
#define GATE_TYPE_ARRAYLIST_CSTR   (GATE_TYPE_ARRAYLIST | GATE_TYPE_CSTR)
 
#define GATE_TYPE_ARRAYLIST_WSTR   (GATE_TYPE_ARRAYLIST | GATE_TYPE_WSTR)
 
#define GATE_TYPE_ARRAYLIST_GUID   (GATE_TYPE_ARRAYLIST | GATE_TYPE_GUID)
 
#define GATE_TYPE_ARRAYLIST_DATE   (GATE_TYPE_ARRAYLIST | GATE_TYPE_DATE)
 
#define GATE_TYPE_ARRAYLIST_DAYTIME   (GATE_TYPE_ARRAYLIST | GATE_TYPE_DAYTIME)
 
#define GATE_TYPE_ARRAYLIST_DATETIME   (GATE_TYPE_ARRAYLIST | GATE_TYPE_DATETIME)
 
#define GATE_TYPE_ARRAYLIST_TIME   (GATE_TYPE_ARRAYLIST | GATE_TYPE_TIME)
 
#define GATE_TYPE_ARRAYLIST_STRING   (GATE_TYPE_ARRAYLIST | GATE_TYPE_STRING)
 
#define GATE_TYPE_ARRAYLIST_ARRAY   (GATE_TYPE_ARRAYLIST | GATE_TYPE_ARRAY)
 
#define GATE_TYPE_ARRAYLIST_BLOB   (GATE_TYPE_ARRAYLIST | GATE_TYPE_BLOB)
 
#define GATE_TYPE_ARRAYLIST_STRUCT   (GATE_TYPE_ARRAYLIST | GATE_TYPE_STRUCT)
 
#define GATE_TYPE_ARRAYLIST_OBJECT   (GATE_TYPE_ARRAYLIST | GATE_TYPE_OBJECT)
 
#define GATE_TYPE_ARRAYLIST_PROPERTY   (GATE_TYPE_ARRAYLIST | GATE_TYPE_PROPERTY)
 
#define GATE_TYPESIG_VOID   "void"
 
#define GATE_TYPESIG_EMPTY   GATE_TYPESIG_VOID
 
#define GATE_TYPESIG_BOOL   "bool"
 
#define GATE_TYPESIG_I8   "int8"
 
#define GATE_TYPESIG_UI8   "uint8"
 
#define GATE_TYPESIG_I16   "int16"
 
#define GATE_TYPESIG_UI16   "uint16"
 
#define GATE_TYPESIG_I32   "int32"
 
#define GATE_TYPESIG_UI32   "uint32"
 
#define GATE_TYPESIG_I64   "int64"
 
#define GATE_TYPESIG_UI64   "uint64"
 
#define GATE_TYPESIG_R32   "real32"
 
#define GATE_TYPESIG_R64   "real64"
 
#define GATE_TYPESIG_ADDR   "address"
 
#define GATE_TYPESIG_DATAPTR   "dataptr"
 
#define GATE_TYPESIG_FUNCPTR   "funcptr"
 
#define GATE_TYPESIG_CSTR   "cstr"
 
#define GATE_TYPESIG_WSTR   "wstr"
 
#define GATE_TYPESIG_GUID   "guid"
 
#define GATE_TYPESIG_DATE   "date"
 
#define GATE_TYPESIG_DAYTIME   "daytime"
 
#define GATE_TYPESIG_DATETIME   "datetime"
 
#define GATE_TYPESIG_TIME   "time"
 
#define GATE_TYPESIG_STRING   "string"
 
#define GATE_TYPESIG_ARRAY   "array"
 
#define GATE_TYPESIG_BLOB   "blob"
 
#define GATE_TYPESIG_STRUCT   "struct"
 
#define GATE_TYPESIG_OBJECT   "object"
 
#define GATE_TYPESIG_PROPERTY   "property"
 
#define GATE_TYPESIG_ARRAYLIST   "arraylist"
 
#define GATE_TYPESIG_ARRAYLIST_BOOL   "arraylist[bool]"
 
#define GATE_TYPESIG_ARRAYLIST_I8   "arraylist[int8]"
 
#define GATE_TYPESIG_ARRAYLIST_UI8   "arraylist[uint8]"
 
#define GATE_TYPESIG_ARRAYLIST_I16   "arraylist[int16]"
 
#define GATE_TYPESIG_ARRAYLIST_UI16   "arraylist[uint16]"
 
#define GATE_TYPESIG_ARRAYLIST_I32   "arraylist[int32]"
 
#define GATE_TYPESIG_ARRAYLIST_UI32   "arraylist[uint32]"
 
#define GATE_TYPESIG_ARRAYLIST_I64   "arraylist[int64]"
 
#define GATE_TYPESIG_ARRAYLIST_UI64   "arraylist[uint64]"
 
#define GATE_TYPESIG_ARRAYLIST_R32   "arraylist[real32]"
 
#define GATE_TYPESIG_ARRAYLIST_R64   "arraylist[real64]"
 
#define GATE_TYPESIG_ARRAYLIST_ADDR   "arraylist[address]"
 
#define GATE_TYPESIG_ARRAYLIST_DATAPTR   "arraylist[dataptr]"
 
#define GATE_TYPESIG_ARRAYLIST_FUNCTIONPTR   "arraylist[functionptr]"
 
#define GATE_TYPESIG_ARRAYLIST_CSTR   "arraylist[cstr]"
 
#define GATE_TYPESIG_ARRAYLIST_WSTR   "arraylist[wstr]"
 
#define GATE_TYPESIG_ARRAYLIST_GUID   "arraylist[guid]"
 
#define GATE_TYPESIG_ARRAYLIST_DATE   "arraylist[date]"
 
#define GATE_TYPESIG_ARRAYLIST_DAYTIME   "arraylist[daytime]"
 
#define GATE_TYPESIG_ARRAYLIST_DATETIME   "arraylist[datetime]"
 
#define GATE_TYPESIG_ARRAYLIST_TIME   "arraylist[time]"
 
#define GATE_TYPESIG_ARRAYLIST_STRING   "arraylist[string]"
 
#define GATE_TYPESIG_ARRAYLIST_ARRAY   "arraylist[array]"
 
#define GATE_TYPESIG_ARRAYLIST_BLOB   "arraylist[blob]"
 
#define GATE_TYPESIG_ARRAYLIST_STRUCT   "arraylist[struct]"
 
#define GATE_TYPESIG_ARRAYLIST_OBJECT   "arraylist[object]"
 
#define GATE_TYPESIG_ARRAYLIST_PROPERTY   "arraylist[property]"
 

Typedefs

typedef gate_uint16_t gate_type_id_t
 
typedef char const * gate_type_sig_t
 

Functions

GATE_CORE_API gate_size_t gate_type_length (gate_type_id_t value_type_id)
 Returns the byte size of a native GATE type.
 
GATE_CORE_API gate_size_t gate_type_aligned_length (gate_type_id_t value_type_id)
 Returns the byte size of a native GATE type with default system alignment padding.
 
GATE_CORE_API gate_result_t gate_type_init (gate_type_id_t value_type_id, void *ptr_value)
 Initializes a native GATE type with its default value.
 
GATE_CORE_API gate_result_t gate_type_copy (gate_type_id_t value_type_id, void *ptr_dst, void const *ptr_src)
 Copies the contents of a native GATE type from a source to a destination value.
 
GATE_CORE_API gate_result_t gate_type_release (gate_type_id_t value_type_id, void *ptr_value)
 Releases all resources of a data type.
 
GATE_CORE_API gate_type_sig_t gate_type_signature (gate_type_id_t value_type_id)
 Returns a text signature of the given native type-id.
 
GATE_CORE_API gate_bool_t gate_type_signature_equals (gate_type_sig_t sig1, gate_type_sig_t sig2)
 Evaluates if two GATE type signatures are equal.
 

Detailed Description

GATE type ID specifications.

Typedef Documentation

◆ gate_type_sig_t

typedef char const* gate_type_sig_t

native GATE type signature

Function Documentation

◆ gate_type_aligned_length()

GATE_CORE_API gate_size_t gate_type_aligned_length ( gate_type_id_t value_type_id)

Returns the byte size of a native GATE type with default system alignment padding.

Parameters
value_type_idGATE native type-identifier
Returns
aligned length in bytes

◆ gate_type_copy()

GATE_CORE_API gate_result_t gate_type_copy ( gate_type_id_t value_type_id,
void * ptr_dst,
void const * ptr_src )

Copies the contents of a native GATE type from a source to a destination value.

Parameters
value_type_idGATE native type-identifier
ptr_dstpointer to destination native type
ptr_srcpointer to source native type
Returns
result code (see GATE_RESULT_*)

◆ gate_type_init()

GATE_CORE_API gate_result_t gate_type_init ( gate_type_id_t value_type_id,
void * ptr_value )

Initializes a native GATE type with its default value.

Parameters
value_type_idGATE native type-identifier
ptr_valuepointer to native type
Returns
result code (see GATE_RESULT_*)

◆ gate_type_length()

GATE_CORE_API gate_size_t gate_type_length ( gate_type_id_t value_type_id)

Returns the byte size of a native GATE type.

Parameters
value_type_idGATE native type-identifier
Returns
length in byte

◆ gate_type_release()

GATE_CORE_API gate_result_t gate_type_release ( gate_type_id_t value_type_id,
void * ptr_value )

Releases all resources of a data type.

Parameters
[in]value_type_idGATE native type-identifier
[in]ptr_valuepointer to native type
Returns
result code (see GATE_RESULT_*)

◆ gate_type_signature()

GATE_CORE_API gate_type_sig_t gate_type_signature ( gate_type_id_t value_type_id)

Returns a text signature of the given native type-id.

Parameters
value_type_idGATE native type-identifier
Returns
static type signature

◆ gate_type_signature_equals()

GATE_CORE_API gate_bool_t gate_type_signature_equals ( gate_type_sig_t sig1,
gate_type_sig_t sig2 )

Evaluates if two GATE type signatures are equal.

Parameters
[in]sig1GATE native type-identifier to be compared
[in]sig2other GATE native type-identifier to be compared
Returns
true of both type signatures are equal, otherwise false