GIObjectInfo

## GIObjectInfo GIObjectInfo — Struct representing a GObject |

## Synopsis

    #define             GI_IS_OBJECT_INFO                   (info)
    typedef             GIObjectInfo;
    gboolean            g_object_info_get_abstract          (GIObjectInfo *info);
    gboolean            g_object_info_get_fundamental       (GIObjectInfo *info);
    GIObjectInfo *      g_object_info_get_parent            (GIObjectInfo *info);
    const gchar *       g_object_info_get_type_name         (GIObjectInfo *info);
    const gchar *       g_object_info_get_type_init         (GIObjectInfo *info);

    gint                g_object_info_get_n_constants       (GIObjectInfo *info);
    GIConstantInfo *    g_object_info_get_constant          (GIObjectInfo *info,
                                                             gint n);

    gint                g_object_info_get_n_fields          (GIObjectInfo *info);
    GIFieldInfo *       g_object_info_get_field             (GIObjectInfo *info,
                                                             gint n);

    gint                g_object_info_get_n_interfaces      (GIObjectInfo *info);
    GIInterfaceInfo *   g_object_info_get_interface         (GIObjectInfo *info,
                                                             gint n);

    gint                g_object_info_get_n_methods         (GIObjectInfo *info);
    GIFunctionInfo *    g_object_info_get_method            (GIObjectInfo *info,
                                                             gint n);
    GIFunctionInfo *    g_object_info_find_method           (GIObjectInfo *info,
                                                             const gchar *name);
    GIFunctionInfo *    g_object_info_find_method_using_interfaces
                                                            (GIObjectInfo *info,
                                                             const gchar *name,
                                                             GIObjectInfo **implementor);

    gint                g_object_info_get_n_properties      (GIObjectInfo *info);
    GIPropertyInfo *    g_object_info_get_property          (GIObjectInfo *info,
                                                             gint n);

    gint                g_object_info_get_n_signals         (GIObjectInfo *info);
    GISignalInfo *      g_object_info_get_signal            (GIObjectInfo *info,
                                                             gint n);
    GISignalInfo *      g_object_info_find_signal           (GIObjectInfo *info,
                                                             const gchar *name);

    gint                g_object_info_get_n_vfuncs          (GIObjectInfo *info);
    GIVFuncInfo *       g_object_info_get_vfunc             (GIObjectInfo *info,
                                                             gint n);
    GIVFuncInfo *       g_object_info_find_vfunc            (GIObjectInfo *info,
                                                             const gchar *name);
    GIVFuncInfo *       g_object_info_find_vfunc_using_interfaces
                                                            (GIObjectInfo *info,
                                                             const gchar *name,
                                                             GIObjectInfo **implementor);

    GIStructInfo *      g_object_info_get_class_struct      (GIObjectInfo *info);
    const char *        g_object_info_get_ref_function      (GIObjectInfo *info);
    GIObjectInfoRefFunction g_object_info_get_ref_function_pointer
                                                            (GIObjectInfo *info);
    const char *        g_object_info_get_unref_function    (GIObjectInfo *info);
    GIObjectInfoUnrefFunction g_object_info_get_unref_function_pointer
                                                            (GIObjectInfo *info);
    const char *        g_object_info_get_set_value_function
                                                            (GIObjectInfo *info);
    GIObjectInfoSetValueFunction g_object_info_get_set_value_function_pointer
                                                            (GIObjectInfo *info);
    const char *        g_object_info_get_get_value_function
                                                            (GIObjectInfo *info);
    GIObjectInfoGetValueFunction g_object_info_get_get_value_function_pointer
                                                            (GIObjectInfo *info);
    void *              (*GIObjectInfoRefFunction)          (void *object);
    void                (*GIObjectInfoUnrefFunction)        (void *object);
    void                (*GIObjectInfoSetValueFunction)     (GValue *value,
                                                             void *object);
    void *              (*GIObjectInfoGetValueFunction)     (const GValue *value);

## Description

GIObjectInfo represents a GObject. This doesn't represent a specific instance of a GObject, instead this represent the object type (eg class).

A GObject has methods, fields, properties, signals, interfaces, constants and virtual functions.

## Struct hierarchy

      GIBaseInfo
       +----GIRegisteredTypeInfo
             +----GIObjectInfo

## Details

### GI_IS_OBJECT_INFO()

    #define             GI_IS_OBJECT_INFO(info)

Checks if `info` is a GIObjectInfo.

`info` : | an info structure

### GIObjectInfo

    typedef GIBaseInfo GIObjectInfo;

Represents an object.

### g_object_info_get_abstract ()

    gboolean            g_object_info_get_abstract          (GIObjectInfo *info);

Obtain if the object type is an abstract type, eg if it cannot be instantiated

`info` : | a GIObjectInfo
Returns : | `TRUE` if the object type is abstract

### g_object_info_get_fundamental ()

    gboolean            g_object_info_get_fundamental       (GIObjectInfo *info);

Obtain if the object type is of a fundamental type which is not G_TYPE_OBJECT. This is mostly for supporting GstMiniObject.

`info` : | a GIObjectInfo
Returns : | `TRUE` if the object type is a fundamental type

### g_object_info_get_parent ()

    GIObjectInfo *      g_object_info_get_parent            (GIObjectInfo *info);

Obtain the parent of the object type.

`info` : | a GIObjectInfo
Returns : | the GIObjectInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_get_type_name ()

    const gchar *       g_object_info_get_type_name         (GIObjectInfo *info);

Obtain the name of the objects class/type.

`info` : | a GIObjectInfo
Returns : | name of the objects type

### g_object_info_get_type_init ()

    const gchar *       g_object_info_get_type_init         (GIObjectInfo *info);

Obtain the function which when called will return the GType function for which this object type is registered.

`info` : | a GIObjectInfo
Returns : | the type init function

### g_object_info_get_n_constants ()

    gint                g_object_info_get_n_constants       (GIObjectInfo *info);

Obtain the number of constants that this object type has.

`info` : | a GIObjectInfo
Returns : | number of constants

### g_object_info_get_constant ()

    GIConstantInfo *    g_object_info_get_constant          (GIObjectInfo *info,
                                                             gint n);

Obtain an object type constant at index `n`.

`info` : | a GIObjectInfo
`n` : | index of constant to get
Returns : | the GIConstantInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_get_n_fields ()

    gint                g_object_info_get_n_fields          (GIObjectInfo *info);

Obtain the number of fields that this object type has.

`info` : | a GIObjectInfo
Returns : | number of fields

### g_object_info_get_field ()

    GIFieldInfo *       g_object_info_get_field             (GIObjectInfo *info,
                                                             gint n);

Obtain an object type field at index `n`.

`info` : | a GIObjectInfo
`n` : | index of field to get
Returns : | the GIFieldInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_get_n_interfaces ()

    gint                g_object_info_get_n_interfaces      (GIObjectInfo *info);

Obtain the number of interfaces that this object type has.

`info` : | a GIObjectInfo
Returns : | number of interfaces

### g_object_info_get_interface ()

    GIInterfaceInfo *   g_object_info_get_interface         (GIObjectInfo *info,
                                                             gint n);

Obtain an object type interface at index `n`.

`info` : | a GIObjectInfo
`n` : | index of interface to get
Returns : | the GIInterfaceInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_get_n_methods ()

    gint                g_object_info_get_n_methods         (GIObjectInfo *info);

Obtain the number of methods that this object type has.

`info` : | a GIObjectInfo
Returns : | number of methods

### g_object_info_get_method ()

    GIFunctionInfo *    g_object_info_get_method            (GIObjectInfo *info,
                                                             gint n);

Obtain an object type method at index `n`.

`info` : | a GIObjectInfo
`n` : | index of method to get
Returns : | the GIFunctionInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_find_method ()

    GIFunctionInfo *    g_object_info_find_method           (GIObjectInfo *info,
                                                             const gchar *name);

Obtain a method of the object type given a `name`. `NULL` will be returned if there's no method available with that name.

`info` : | a GIObjectInfo
`name` : | name of method to obtain
Returns : | the GIFunctionInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_find_method_using_interfaces ()

    GIFunctionInfo *    g_object_info_find_method_using_interfaces
                                                            (GIObjectInfo *info,
                                                             const gchar *name,
                                                             GIObjectInfo **implementor);

Obtain a method of the object given a `name`, searching both the object `info` and any interfaces it implements. `NULL` will be returned if there's no method available with that name.

Note that this function does *not* search parent classes; you will have to chain up if that's desired.

`info` : | a GIObjectInfo
`name` : | name of method to obtain
`implementor` : | The implementor of the interface. [out][transfer full]
Returns : | the GIFunctionInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_get_n_properties ()

    gint                g_object_info_get_n_properties      (GIObjectInfo *info);

Obtain the number of properties that this object type has.

`info` : | a GIObjectInfo
Returns : | number of properties

### g_object_info_get_property ()

    GIPropertyInfo *    g_object_info_get_property          (GIObjectInfo *info,
                                                             gint n);

Obtain an object type property at index `n`.

`info` : | a GIObjectInfo
`n` : | index of property to get
Returns : | the GIPropertyInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_get_n_signals ()

    gint                g_object_info_get_n_signals         (GIObjectInfo *info);

Obtain the number of signals that this object type has.

`info` : | a GIObjectInfo
Returns : | number of signals

### g_object_info_get_signal ()

    GISignalInfo *      g_object_info_get_signal            (GIObjectInfo *info,
                                                             gint n);

Obtain an object type signal at index `n`.

`info` : | a GIObjectInfo
`n` : | index of signal to get
Returns : | the GISignalInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_find_signal ()

    GISignalInfo *      g_object_info_find_signal           (GIObjectInfo *info,
                                                             const gchar *name);

TODO

`info` : | a GIObjectInfo
`name` : | Name of signal
Returns : | Info for the signal with name `name` in `info`, or `NULL` on failure. [transfer full]

### g_object_info_get_n_vfuncs ()

    gint                g_object_info_get_n_vfuncs          (GIObjectInfo *info);

Obtain the number of virtual functions that this object type has.

`info` : | a GIObjectInfo
Returns : | number of virtual functions

### g_object_info_get_vfunc ()

    GIVFuncInfo *       g_object_info_get_vfunc             (GIObjectInfo *info,
                                                             gint n);

Obtain an object type virtual function at index `n`.

`info` : | a GIObjectInfo
`n` : | index of virtual function to get
Returns : | the GIVFuncInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_find_vfunc ()

    GIVFuncInfo *       g_object_info_find_vfunc            (GIObjectInfo *info,
                                                             const gchar *name);

Locate a virtual function slot with name `name`. Note that the namespace for virtuals is distinct from that of methods; there may or may not be a concrete method associated for a virtual. If there is one, it may be retrieved using `g_vfunc_info_get_invoker()`, otherwise `NULL` will be returned. See the documentation for `g_vfunc_info_get_invoker()` for more information on invoking virtuals.

`info` : | a GIObjectInfo
`name` : | The name of a virtual function to find.
Returns : | the GIVFuncInfo, or `NULL`. Free it with `g_base_info_unref()` when done. [transfer full]

### g_object_info_find_vfunc_using_interfaces ()

    GIVFuncInfo *       g_object_info_find_vfunc_using_interfaces
                                                            (GIObjectInfo *info,
                                                             const gchar *name,
                                                             GIObjectInfo **implementor);

Locate a virtual function slot with name `name`, searching both the object `info` and any interfaces it implements. Note that the namespace for virtuals is distinct from that of methods; there may or may not be a concrete method associated for a virtual. If there is one, it may be retrieved using `g_vfunc_info_get_invoker()`, otherwise `NULL` will be returned.

Note that this function does *not* search parent classes; you will have to chain up if that's desired.

`info` : | a GIObjectInfo
`name` : | name of method to obtain
`implementor` : | The implementor of the interface. [out][transfer full]
Returns : | the GIFunctionInfo. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_object_info_get_class_struct ()

    GIStructInfo *      g_object_info_get_class_struct      (GIObjectInfo *info);

Every GObject has two structures; an instance structure and a class structure. This function returns the metadata for the class structure.

`info` : | a GIObjectInfo
Returns : | the GIStructInfo or `NULL`. Free with `g_base_info_unref()` when done. [transfer full]

### g_object_info_get_ref_function ()

    const char *        g_object_info_get_ref_function      (GIObjectInfo *info);

Obtain the symbol name of the function that should be called to ref this object type. It's mainly used fundamental types. The type signature for the symbol is `GIObjectInfoRefFunction`, to fetch the function pointer see `g_object_info_get_ref_function()`.

`info` : | a GIObjectInfo
Returns : | the symbol or `NULL`

### g_object_info_get_ref_function_pointer ()

    GIObjectInfoRefFunction g_object_info_get_ref_function_pointer
                                                            (GIObjectInfo *info);

Obtain a pointer to a function which can be used to increase the reference count an instance of this object type. This takes derivation into account and will reversely traverse the base classes of this type, starting at the top type.

`info` : | a GIObjectInfo
Returns : | the function pointer or `NULL`

### g_object_info_get_unref_function ()

    const char *        g_object_info_get_unref_function    (GIObjectInfo *info);

Obtain the symbol name of the function that should be called to unref this object type. It's mainly used fundamental types. The type signature for the symbol is `GIObjectInfoUnrefFunction`, to fetch the function pointer see `g_object_info_get_unref_function()`.

`info` : | a GIObjectInfo
Returns : | the symbol or `NULL`

### g_object_info_get_unref_function_pointer ()

    GIObjectInfoUnrefFunction g_object_info_get_unref_function_pointer
                                                            (GIObjectInfo *info);

Obtain a pointer to a function which can be used to decrease the reference count an instance of this object type. This takes derivation into account and will reversely traverse the base classes of this type, starting at the top type.

`info` : | a GIObjectInfo
Returns : | the function pointer or `NULL`

### g_object_info_get_set_value_function ()

    const char *        g_object_info_get_set_value_function
                                                            (GIObjectInfo *info);

Obtain the symbol name of the function that should be called to convert set a GValue giving an object instance pointer of this object type. I's mainly used fundamental types. The type signature for the symbol is `GIObjectInfoSetValueFunction`, to fetch the function pointer see `g_object_info_get_set_value_function()`.

`info` : | a GIObjectInfo
Returns : | the symbol or `NULL`

### g_object_info_get_set_value_function_pointer ()

    GIObjectInfoSetValueFunction g_object_info_get_set_value_function_pointer
                                                            (GIObjectInfo *info);

Obtain a pointer to a function which can be used to set a GValue given an instance of this object type. This takes derivation into account and will reversely traverse the base classes of this type, starting at the top type.

`info` : | a GIObjectInfo
Returns : | the function pointer or `NULL`

### g_object_info_get_get_value_function ()

    const char *        g_object_info_get_get_value_function
                                                            (GIObjectInfo *info);

Obtain the symbol name of the function that should be called to convert an object instance pointer of this object type to a GValue. I's mainly used fundamental types. The type signature for the symbol is `GIObjectInfoGetValueFunction`, to fetch the function pointer see `g_object_info_get_get_value_function()`.

`info` : | a GIObjectInfo
Returns : | the symbol or `NULL`

### g_object_info_get_get_value_function_pointer ()

    GIObjectInfoGetValueFunction g_object_info_get_get_value_function_pointer
                                                            (GIObjectInfo *info);

Obtain a pointer to a function which can be used to extract an instance of this object type out of a GValue. This takes derivation into account and will reversely traverse the base classes of this type, starting at the top type.

`info` : | a GIObjectInfo
Returns : | the function pointer or `NULL`

### GIObjectInfoRefFunction ()

    void *              (*GIObjectInfoRefFunction)          (void *object);

Increases the reference count of an object instance.

`object` : | object instance pointer
Returns : | the object instance. [transfer full]

### GIObjectInfoUnrefFunction ()

    void                (*GIObjectInfoUnrefFunction)        (void *object);

Decreases the reference count of an object instance.

`object` : | object instance pointer

### GIObjectInfoSetValueFunction ()

    void                (*GIObjectInfoSetValueFunction)     (GValue *value,
                                                             void *object);

Update `value` and attach the object instance pointer `object` to it.

`value` : | a GValue
`object` : | object instance pointer

### GIObjectInfoGetValueFunction ()

    void *              (*GIObjectInfoGetValueFunction)     (const GValue *value);

Extract an object instance out of `value`

`value` : | a GValue
Returns : | the object instance. [transfer full]