|  |  |  | GObject Introspection Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#define GI_IS_FUNCTION_INFO (info) typedef GIFunctionInfo; enum GInvokeError; enum GIFunctionInfoFlags; #define G_INVOKE_ERROR 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 GIArgument *in_args,int n_in_args,const GIArgument *out_args,int n_out_args,GIArgument *return_value,GError **error);
GIFunctionInfo represents a function, method or constructor.
To find out what kind of entity a GIFunctionInfo represents, call
g_function_info_get_flags().
See also GICallableInfo for information on how to retreive arguments and other metadata.
GIBaseInfo +----GICallableInfo +----GIFunctionInfo +----GISignalInfo +----GIVFuncInfo
typedef GIBaseInfo GIFunctionInfo;
Represents a function, eg arguments and return value.
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().
| invokation failed, unknown error. | |
| symbol couldn't be found in any of the libraries associated with the typelib of the function. | |
| the arguments provided didn't match the expected arguments for the functions type signature. | 
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.
| is a method. | |
| is a constructor. | |
| is a getter of a GIPropertyInfo. | |
| is a setter of a GIPropertyInfo. | |
| represents a virtual function. | |
| the function may throw an error. | 
const gchar *       g_function_info_get_symbol          (GIFunctionInfo *info);
Obtain the symbol of the function. The symbol is the name of the
exported function, suitable to be used as an argument to
g_module_symbol().
| 
 | a GIFunctionInfo | 
| Returns : | the symbol | 
GIFunctionInfoFlags g_function_info_get_flags           (GIFunctionInfo *info);
Obtain the GIFunctionInfoFlags for the info.
| 
 | a GIFunctionInfo | 
| Returns : | the flags | 
GIPropertyInfo *    g_function_info_get_property        (GIFunctionInfo *info);
Obtain the property associated with this GIFunctionInfo.
Only GIFunctionInfo with the flag GI_FUNCTION_IS_GETTER or
GI_FUNCTION_IS_SETTER have a property set. For other cases,
NULL will be returned.
| 
 | a GIFunctionInfo | 
| Returns : | the property or NULLif not set. Free it withg_base_info_unref()when done. [transfer full] | 
GIVFuncInfo *       g_function_info_get_vfunc           (GIFunctionInfo *info);
Obtain the virtual function associated with this GIFunctionInfo.
Only GIFunctionInfo with the flag GI_FUNCTION_WRAPS_VFUNC has
a virtual function set. For other cases, NULL will be returned.
| 
 | a GIFunctionInfo | 
| Returns : | the virtual function or NULLif not set.
Free it by callingg_base_info_unref()when done. [transfer full] | 
gboolean g_function_info_invoke (GIFunctionInfo *info,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. 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 g_module_symbol()ed before calling this function.
| 
 | a GIFunctionInfo describing the function to invoke | 
| 
 | an array of GIArguments, one for each in
parameter of info. If there are no in parameter,in_argscan beNULL | 
| 
 | the length of the in_argsarray | 
| 
 | an array of GIArguments, one for each out
parameter of info. If there are no out parameters,out_argsmay beNULL | 
| 
 | the length of the out_argsarray | 
| 
 | return location for the return value of the
function. If the function returns void, return_valuemay beNULL | 
| 
 | return location for detailed error information, or NULL | 
| Returns : | TRUEif the function has been invoked,FALSEif an
error occurred. |