## GIInterfaceInfo

GIInterfaceInfo — Struct representing a GInterface

## Synopsis

    #define             GI_IS_INTERFACE_INFO                (info)
    typedef             GIInterfaceInfo;
    gint                g_interface_info_get_n_prerequisites
                                                            (GIInterfaceInfo *info);
    GIBaseInfo *        g_interface_info_get_prerequisite   (GIInterfaceInfo *info,
                                                             gint n);
    gint                g_interface_info_get_n_properties   (GIInterfaceInfo *info);
    GIPropertyInfo *    g_interface_info_get_property       (GIInterfaceInfo *info,
                                                             gint n);
    gint                g_interface_info_get_n_methods      (GIInterfaceInfo *info);
    GIFunctionInfo *    g_interface_info_get_method         (GIInterfaceInfo *info,
                                                             gint n);
    GIFunctionInfo *    g_interface_info_find_method        (GIInterfaceInfo *info,
                                                             const gchar *name);
    gint                g_interface_info_get_n_signals      (GIInterfaceInfo *info);
    GISignalInfo *      g_interface_info_get_signal         (GIInterfaceInfo *info,
                                                             gint n);
    gint                g_interface_info_get_n_vfuncs       (GIInterfaceInfo *info);
    GIVFuncInfo *       g_interface_info_get_vfunc          (GIInterfaceInfo *info,
                                                             gint n);
    gint                g_interface_info_get_n_constants    (GIInterfaceInfo *info);
    GIConstantInfo *    g_interface_info_get_constant       (GIInterfaceInfo *info,
                                                             gint n);
    GIStructInfo *      g_interface_info_get_iface_struct   (GIInterfaceInfo *info);
    GIVFuncInfo *       g_interface_info_find_vfunc         (GIInterfaceInfo *info,
                                                             const gchar *name);

## Description

GIInterfaceInfo represents a GInterface type.

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

## Struct hierarchy

      GIBaseInfo
       +----GIRegisteredTypeInfo
             +----GIInterfaceInfo

## Details

### GI_IS_INTERFACE_INFO()

    #define             GI_IS_INTERFACE_INFO(info)

### GIInterfaceInfo

    typedef GIBaseInfo GIInterfaceInfo;

Represents an interface.

### g_interface_info_get_n_prerequisites ()

    gint                g_interface_info_get_n_prerequisites
                                                            (GIInterfaceInfo *info);

Obtain the number of prerequisites for this interface type. A prerequisites is another interface that needs to be implemented for interface, similar to an base class for GObjects.

`info` : | a GIInterfaceInfo
Returns : | number of prerequisites

### g_interface_info_get_prerequisite ()

    GIBaseInfo *        g_interface_info_get_prerequisite   (GIInterfaceInfo *info,
                                                             gint n);

Obtain an interface type prerequisites index `n`.

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

### g_interface_info_get_n_properties ()

    gint                g_interface_info_get_n_properties   (GIInterfaceInfo *info);

Obtain the number of properties that this interface type has.

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

### g_interface_info_get_property ()

    GIPropertyInfo *    g_interface_info_get_property       (GIInterfaceInfo *info,
                                                             gint n);

Obtain an interface type property at index `n`.

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

### g_interface_info_get_n_methods ()

    gint                g_interface_info_get_n_methods      (GIInterfaceInfo *info);

Obtain the number of methods that this interface type has.

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

### g_interface_info_get_method ()

    GIFunctionInfo *    g_interface_info_get_method         (GIInterfaceInfo *info,
                                                             gint n);

Obtain an interface type method at index `n`.

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

### g_interface_info_find_method ()

    GIFunctionInfo *    g_interface_info_find_method        (GIInterfaceInfo *info,
                                                             const gchar *name);

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

`info` : | a GIInterfaceInfo
`name` : | name of method to obtain
Returns : | the GIFunctionInfo or `NULL` if none found. Free the struct by calling `g_base_info_unref()` when done. [transfer full]

### g_interface_info_get_n_signals ()

    gint                g_interface_info_get_n_signals      (GIInterfaceInfo *info);

Obtain the number of signals that this interface type has.

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

### g_interface_info_get_signal ()

    GISignalInfo *      g_interface_info_get_signal         (GIInterfaceInfo *info,
                                                             gint n);

Obtain an interface type signal at index `n`.

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

### g_interface_info_get_n_vfuncs ()

    gint                g_interface_info_get_n_vfuncs       (GIInterfaceInfo *info);

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

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

### g_interface_info_get_vfunc ()

    GIVFuncInfo *       g_interface_info_get_vfunc          (GIInterfaceInfo *info,
                                                             gint n);

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

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

### g_interface_info_get_n_constants ()

    gint                g_interface_info_get_n_constants    (GIInterfaceInfo *info);

Obtain the number of constants that this interface type has.

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

### g_interface_info_get_constant ()

    GIConstantInfo *    g_interface_info_get_constant       (GIInterfaceInfo *info,
                                                             gint n);

Obtain an interface type constant at index `n`.

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

### g_interface_info_get_iface_struct ()

    GIStructInfo *      g_interface_info_get_iface_struct   (GIInterfaceInfo *info);

Returns the layout C structure associated with this GInterface.

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

### g_interface_info_find_vfunc ()

    GIVFuncInfo *       g_interface_info_find_vfunc         (GIInterfaceInfo *info,
                                                             const gchar *name);

Locate a virtual function slot with name `name`. See the documentation for `g_object_info_find_vfunc()` for more information on virtuals.

`info` : | a GIInterfaceInfo
`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]