|  |  |  | GObject Introspection Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#define GI_IS_UNION_INFO (info) typedef GIUnionInfo; gint g_union_info_get_n_fields (GIUnionInfo *info); GIFieldInfo * g_union_info_get_field (GIUnionInfo *info,gint n); gint g_union_info_get_n_methods (GIUnionInfo *info); GIFunctionInfo * g_union_info_get_method (GIUnionInfo *info,gint n); gboolean g_union_info_is_discriminated (GIUnionInfo *info); gint g_union_info_get_discriminator_offset (GIUnionInfo *info); GITypeInfo * g_union_info_get_discriminator_type (GIUnionInfo *info); GIConstantInfo * g_union_info_get_discriminator (GIUnionInfo *info,gint n); GIFunctionInfo * g_union_info_find_method (GIUnionInfo *info,const gchar *name); gsize g_union_info_get_size (GIUnionInfo *info); gsize g_union_info_get_alignment (GIUnionInfo *info);
GIUnionInfo represents a union type.
A union has methods and fields. Unions can optionally have a discriminator, which is a field deciding what type of real union fields is valid for specified instance.
gint                g_union_info_get_n_fields           (GIUnionInfo *info);
Obtain the number of fields this union has.
| 
 | a GIUnionInfo | 
| Returns : | number of fields | 
GIFieldInfo * g_union_info_get_field (GIUnionInfo *info,gint n);
Obtain the type information for field with specified index.
| 
 | a GIUnionInfo | 
| 
 | a field index | 
| Returns : | the GIFieldInfo, free it with g_base_info_unref()when done. [transfer full] | 
gint                g_union_info_get_n_methods          (GIUnionInfo *info);
Obtain the number of methods this union has.
| 
 | a GIUnionInfo | 
| Returns : | number of methods | 
GIFunctionInfo * g_union_info_get_method (GIUnionInfo *info,gint n);
Obtain the type information for method with specified index.
| 
 | a GIUnionInfo | 
| 
 | a method index | 
| Returns : | the GIFunctionInfo, free it with g_base_info_unref()when done. [transfer full] | 
gboolean            g_union_info_is_discriminated       (GIUnionInfo *info);
Return true if this union contains discriminator field.
| 
 | a GIUnionInfo | 
| Returns : | TRUEif this is a discriminated union,FALSEotherwise | 
gint                g_union_info_get_discriminator_offset
                                                        (GIUnionInfo *info);
GITypeInfo *        g_union_info_get_discriminator_type (GIUnionInfo *info);
Obtain the type information of the union discriminator.
| 
 | a GIUnionInfo | 
| Returns : | the GITypeInfo, free it with g_base_info_unref()when done. [transfer full] | 
GIConstantInfo * g_union_info_get_discriminator (GIUnionInfo *info,gint n);
Obtain discriminator value assigned for n-th union field, i.e. n-th union field is the active one if discriminator contains this constant.
| 
 | a GIUnionInfo | 
| 
 | a union field index | 
| Returns : | the GIConstantInfo, free it with g_base_info_unref()when done. [transfer full] | 
GIFunctionInfo * g_union_info_find_method (GIUnionInfo *info,const gchar *name);
Obtain the type information for method named name.
| 
 | a GIUnionInfo | 
| 
 | a method name | 
| Returns : | the GIFunctionInfo, free it with g_base_info_unref()when done. [transfer full] | 
gsize               g_union_info_get_size               (GIUnionInfo *info);
Obtain the total size of the union.
| 
 | a GIUnionInfo | 
| Returns : | size of the union in bytes | 
gsize               g_union_info_get_alignment          (GIUnionInfo *info);
Obtain the required alignment of the union.
| 
 | a GIUnionInfo | 
| Returns : | required alignment in bytes |