Function

Function

Synopsis

typedef             GIFunctionInfo;
enum                GInvokeError;
enum                GIFunctionInfoFlags;
const gchar *       g_function_info_get_symbol          (GIFunctionInfo *info);
GIFunctionInfoFlags  g_function_info_get_flags          (GIFunctionInfo *info);
GIPropertyInfo *    g_function_info_get_property        (GIFunctionInfo *info);
GIVFuncInfo *       g_function_info_get_vfunc           (GIFunctionInfo *info);
gboolean            g_function_info_invoke              (GIFunctionInfo *info,
                                                         const GArgument *in_args,
                                                         int n_in_args,
                                                         const GArgument *out_args,
                                                         int n_out_args,
                                                         GArgument *return_value,
                                                         GError **error);

Description

Details

GIFunctionInfo

typedef GIBaseInfo GIFunctionInfo;

Represents a function, eg arguments and return value.


enum GInvokeError

typedef enum
{
  G_INVOKE_ERROR_FAILED,
  G_INVOKE_ERROR_SYMBOL_NOT_FOUND,
  G_INVOKE_ERROR_ARGUMENT_MISMATCH
} GInvokeError;

An error occuring while invoking a function via g_function_info_invoke().

G_INVOKE_ERROR_FAILED

invokation failed, unknown error.

G_INVOKE_ERROR_SYMBOL_NOT_FOUND

symbol couldn't be found in any of the libraries associated with the typelib of the function.

G_INVOKE_ERROR_ARGUMENT_MISMATCH

the arguments provided didn't match the expected arguments for the functions type signature.

enum GIFunctionInfoFlags

typedef enum
{
  GI_FUNCTION_IS_METHOD      = 1 << 0,
  GI_FUNCTION_IS_CONSTRUCTOR = 1 << 1,
  GI_FUNCTION_IS_GETTER      = 1 << 2,
  GI_FUNCTION_IS_SETTER      = 1 << 3,
  GI_FUNCTION_WRAPS_VFUNC    = 1 << 4,
  GI_FUNCTION_THROWS         = 1 << 5
} GIFunctionInfoFlags;

Flags for a GIFunctionInfo struct.

GI_FUNCTION_IS_METHOD

is a method.

GI_FUNCTION_IS_CONSTRUCTOR

is a constructor.

GI_FUNCTION_IS_GETTER

is a getter of a GIPropertyInfo.

GI_FUNCTION_IS_SETTER

is a setter of a GIPropertyInfo.

GI_FUNCTION_WRAPS_VFUNC

represents a virtual function.

GI_FUNCTION_THROWS

the function may throw an error.

g_function_info_get_symbol ()

const gchar *       g_function_info_get_symbol          (GIFunctionInfo *info);

info :

Returns :


g_function_info_get_flags ()

GIFunctionInfoFlags  g_function_info_get_flags          (GIFunctionInfo *info);

info :

Returns :


g_function_info_get_property ()

GIPropertyInfo *    g_function_info_get_property        (GIFunctionInfo *info);

info :

Returns :


g_function_info_get_vfunc ()

GIVFuncInfo *       g_function_info_get_vfunc           (GIFunctionInfo *info);

info :

Returns :


g_function_info_invoke ()

gboolean            g_function_info_invoke              (GIFunctionInfo *info,
                                                         const GArgument *in_args,
                                                         int n_in_args,
                                                         const GArgument *out_args,
                                                         int n_out_args,
                                                         GArgument *return_value,
                                                         GError **error);

Invokes the function described in info with the given arguments. Note that inout parameters must appear in both argument lists. This function uses dlsym() to obtain a pointer to the function, so the library or shared object containing the described function must either be linked to the caller, or must have been dlopen()ed before calling this function.

info :

a GIFunctionInfo describing the function to invoke

in_args :

an array of GArguments, 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 GArguments, 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.