## GIVFuncInfo

GIVFuncInfo — Struct representing a virtual function

## Functions

GIVFuncInfoFlags | g_vfunc_info_get_flags ()
gint | g_vfunc_info_get_offset ()
GISignalInfo * | g_vfunc_info_get_signal ()
GIFunctionInfo * | g_vfunc_info_get_invoker ()
gpointer | g_vfunc_info_get_address ()
gboolean | g_vfunc_info_invoke ()

## Types and Values

typedef | GIVFuncInfo
enum | GIVFuncInfoFlags

## Description

GIVfuncInfo represents a virtual function.

A virtual function is a callable object that belongs to either a GIObjectInfo or a GIInterfaceInfo.

## Functions

### g_vfunc_info_get_flags ()

    GIVFuncInfoFlags
    g_vfunc_info_get_flags (GIVFuncInfo *info);

Obtain the flags for this virtual function info. See GIVFuncInfoFlags for more information about possible flag values.

#### Parameters

info | a GIVFuncInfo |

#### Returns

the flags

### g_vfunc_info_get_offset ()

    gint
    g_vfunc_info_get_offset (GIVFuncInfo *info);

Obtain the offset of the function pointer in the class struct. The value 0xFFFF indicates that the struct offset is unknown.

#### Parameters

info | a GIVFuncInfo |

#### Returns

the struct offset or 0xFFFF if it's unknown

### g_vfunc_info_get_signal ()

    GISignalInfo *
    g_vfunc_info_get_signal (GIVFuncInfo *info);

Obtain the signal for the virtual function if one is set. The signal comes from the object or interface to which this virtual function belongs.

#### Parameters

info | a GIVFuncInfo |

#### Returns

the signal or `NULL` if none set.

[transfer full]

### g_vfunc_info_get_invoker ()

    GIFunctionInfo *
    g_vfunc_info_get_invoker (GIVFuncInfo *info);

If this virtual function has an associated invoker method, this method will return it. An invoker method is a C entry point.

Not all virtuals will have invokers.

#### Parameters

info | a GIVFuncInfo |

#### Returns

the GIVFuncInfo or `NULL`. Free it with `g_base_info_unref()` when done.

[transfer full]

### g_vfunc_info_get_address ()

    gpointer
    g_vfunc_info_get_address (GIVFuncInfo *info,
                              GType implementor_gtype,
                              GError **error);

This method will look up where inside the type struct of `implementor_gtype` is the implementation for `info` .

#### Parameters

info | a GIVFuncInfo |
implementor_gtype | GType implementing this virtual function |
error | return location for a GError |

#### Returns

address to a function or `NULL` if an error happened

### g_vfunc_info_invoke ()

    gboolean
    g_vfunc_info_invoke (GIVFuncInfo *info,
                         GType implementor,
                         const GIArgument *in_args,
                         int n_in_args,
                         const GIArgument *out_args,
                         int n_out_args,
                         GIArgument *return_value,
                         GError **error);

Invokes the function described in `info` with the given arguments. Note that inout parameters must appear in both argument lists.

[skip]

#### Parameters

info | a GIVFuncInfo describing the virtual function to invoke |
implementor | GType of the type that implements this virtual function |
in_args | an array of GIArguments, one for each in parameter of `info` . If there are no in parameter, `in_args` can be `NULL`. | [array length=n_in_args]
n_in_args | the length of the `in_args` array |
out_args | an array of GIArguments, one for each out parameter of `info` . If there are no out parameters, `out_args` may be `NULL`. | [array length=n_out_args]
n_out_args | the length of the `out_args` array |
return_value | return location for the return value of the function. If the function returns void, `return_value` may be `NULL` |
error | return location for detailed error information, or `NULL` |

#### Returns

`TRUE` if the function has been invoked, `FALSE` if an error occurred.

## Types and Values

### GIVFuncInfo

    typedef GIBaseInfo GIVFuncInfo;

Represents a virtual function.

### enum GIVFuncInfoFlags

Flags of a GIVFuncInfo struct.

#### Members

GI_VFUNC_MUST_CHAIN_UP | chains up to the parent type |
GI_VFUNC_MUST_OVERRIDE | overrides |
GI_VFUNC_MUST_NOT_OVERRIDE | does not override |
GI_VFUNC_THROWS | Includes a GError |