GITypeInfo

GITypeInfo — Struct representing a type

Functions

Types and Values

enum GIArrayType
typedef GITypeInfo
enum GITypeTag

Description

GITypeInfo represents a type. You can retrieve a type info from an argument (see GIArgInfo), a functions return value (see GIFunctionInfo), a field (see GIFieldInfo), a property (see GIPropertyInfo), a constant (see GIConstantInfo) or for a union discriminator (see GIUnionInfo).

A type can either be a of a basic type which is a standard C primitive type or an interface type. For interface types you need to call g_type_info_get_interface() to get a reference to the base info for that interface.

Struct hierarchy

  GIBaseInfo
   +----GITypeInfo

Functions

GI_IS_TYPE_INFO()

#define             GI_IS_TYPE_INFO(info)

G_TYPE_TAG_IS_BASIC()

#define G_TYPE_TAG_IS_BASIC(tag) (tag < GI_TYPE_TAG_ARRAY || tag == GI_TYPE_TAG_UNICHAR)

g_type_tag_to_string ()

const gchar *
g_type_tag_to_string (GITypeTag type);

Obtain a string representation of type

Parameters

type

the type_tag

 

Returns

the string


g_type_info_is_pointer ()

gboolean
g_type_info_is_pointer (GITypeInfo *info);

Obtain if the type is passed as a reference.

Parameters

info

a GITypeInfo

 

Returns

TRUE if it is a pointer


g_type_info_get_tag ()

GITypeTag
g_type_info_get_tag (GITypeInfo *info);

Obtain the type tag for the type. See GITypeTag for a list of type tags.

Parameters

info

a GITypeInfo

 

Returns

the type tag


g_type_info_get_param_type ()

GITypeInfo *
g_type_info_get_param_type (GITypeInfo *info,
                            gint n);

Obtain the parameter type n .

Parameters

info

a GITypeInfo

 

n

index of the parameter

 

Returns

the param type info.

[transfer full]


g_type_info_get_interface ()

GIBaseInfo *
g_type_info_get_interface (GITypeInfo *info);

For types which have GI_TYPE_TAG_INTERFACE such as GObjects and boxed values, this function returns full information about the referenced type. You can then inspect the type of the returned GIBaseInfo to further query whether it is a concrete GObject, a GInterface, a structure, etc. using g_base_info_get_type().

Parameters

info

a GITypeInfo

 

Returns

the GIBaseInfo, or NULL. Free it with g_base_info_unref() when done.

[transfer full]


g_type_info_get_array_length ()

gint
g_type_info_get_array_length (GITypeInfo *info);

Obtain the array length of the type. The type tag must be a GI_TYPE_TAG_ARRAY or -1 will returned.

Parameters

info

a GITypeInfo

 

Returns

the array length, or -1 if the type is not an array


g_type_info_get_array_fixed_size ()

gint
g_type_info_get_array_fixed_size (GITypeInfo *info);

Obtain the fixed array size of the type. The type tag must be a GI_TYPE_TAG_ARRAY or -1 will returned.

Parameters

info

a GITypeInfo

 

Returns

the size or -1 if it's not an array


g_type_info_is_zero_terminated ()

gboolean
g_type_info_is_zero_terminated (GITypeInfo *info);

Obtain if the last element of the array is NULL. The type tag must be a GI_TYPE_TAG_ARRAY or FALSE will returned.

Parameters

info

a GITypeInfo

 

Returns

TRUE if zero terminated


g_type_info_get_array_type ()

GIArrayType
g_type_info_get_array_type (GITypeInfo *info);

Obtain the array type for this type. See GIArrayType for a list of possible values. If the type tag of this type is not array, -1 will be returned.

Parameters

info

a GITypeInfo

 

Returns

the array type or -1

Types and Values

enum GIArrayType

The type of array in a GITypeInfo.

Members

GI_ARRAY_TYPE_C

a C array, char[] for instance

 

GI_ARRAY_TYPE_ARRAY

a GArray array

 

GI_ARRAY_TYPE_PTR_ARRAY

a GPtrArray array

 

GI_ARRAY_TYPE_BYTE_ARRAY

a GByteArray array

 

GITypeInfo

typedef GIBaseInfo GITypeInfo;

Represents type information, direction, transfer etc.


enum GITypeTag

The type tag of a GITypeInfo.

Members

GI_TYPE_TAG_VOID

void

 

GI_TYPE_TAG_BOOLEAN

boolean

 

GI_TYPE_TAG_INT8

8-bit signed integer

 

GI_TYPE_TAG_UINT8

8-bit unsigned integer

 

GI_TYPE_TAG_INT16

16-bit signed integer

 

GI_TYPE_TAG_UINT16

16-bit unsigned integer

 

GI_TYPE_TAG_INT32

32-bit signed integer

 

GI_TYPE_TAG_UINT32

32-bit unsigned integer

 

GI_TYPE_TAG_INT64

64-bit signed integer

 

GI_TYPE_TAG_UINT64

64-bit unsigned integer

 

GI_TYPE_TAG_FLOAT

float

 

GI_TYPE_TAG_DOUBLE

double floating point

 

GI_TYPE_TAG_GTYPE

a GType

 

GI_TYPE_TAG_UTF8

a UTF-8 encoded string

 

GI_TYPE_TAG_FILENAME

a filename, encoded in the same encoding as the native filesystem is using.

 

GI_TYPE_TAG_ARRAY

an array

 

GI_TYPE_TAG_INTERFACE

an extended interface object

 

GI_TYPE_TAG_GLIST

a GList

 

GI_TYPE_TAG_GSLIST

a GSList

 

GI_TYPE_TAG_GHASH

a GHashTable

 

GI_TYPE_TAG_ERROR

a GError

 

GI_TYPE_TAG_UNICHAR

Unicode character