GIVFuncInfo

GIVFuncInfo — Struct representing a virtual function

Synopsis

typedef             GIVFuncInfo;
enum                GIVFuncInfoFlags;
GIVFuncInfoFlags    g_vfunc_info_get_flags              (GIVFuncInfo *info);
gint                g_vfunc_info_get_offset             (GIVFuncInfo *info);
GISignalInfo *      g_vfunc_info_get_signal             (GIVFuncInfo *info);
GIFunctionInfo *    g_vfunc_info_get_invoker            (GIVFuncInfo *info);
gpointer            g_vfunc_info_get_address            (GIVFuncInfo *info,
                                                         GType implementor_gtype,
                                                         GError **error);
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);

Description

GIVfuncInfo represents a virtual function. A property belongs to either a GIObjectInfo or a GIInterfaceInfo.

Struct hierarchy

  GIBaseInfo
   +----GICallableInfo
         +----GIFunctionInfo
         +----GISignalInfo
         +----GIVFuncInfo

Details

GIVFuncInfo

typedef GIBaseInfo GIVFuncInfo;

Represents a virtual function.


enum GIVFuncInfoFlags

typedef enum {
  GI_VFUNC_MUST_CHAIN_UP     = 1 << 0,
  GI_VFUNC_MUST_OVERRIDE     = 1 << 1,
  GI_VFUNC_MUST_NOT_OVERRIDE = 1 << 2,
  GI_VFUNC_THROWS =            1 << 3
} GIVFuncInfoFlags;

Flags of a GIVFuncInfo struct.

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

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.

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.

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.

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.

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.

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.

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

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

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.