Top |
#define | GI_IS_CALLABLE_INFO() |
gboolean | g_callable_info_can_throw_gerror () |
gint | g_callable_info_get_n_args () |
GIArgInfo * | g_callable_info_get_arg () |
GITransfer | g_callable_info_get_caller_owns () |
GITransfer | g_callable_info_get_instance_ownership_transfer () |
const gchar * | g_callable_info_get_return_attribute () |
GITypeInfo * | g_callable_info_get_return_type () |
gboolean | g_callable_info_invoke () |
gboolean | g_callable_info_is_method () |
gboolean | g_callable_info_iterate_return_attributes () |
void | g_callable_info_load_arg () |
void | g_callable_info_load_return_type () |
gboolean | g_callable_info_may_return_null () |
gboolean | g_callable_info_skip_return () |
ffi_closure * | g_callable_info_create_closure () |
void | g_callable_info_destroy_closure () |
gpointer * | g_callable_info_get_closure_native_address () |
GICallableInfo represents an entity which is callable.
Examples of callable are:
functions (GIFunctionInfo)
virtual functions (GIVFuncInfo)
callbacks (GICallbackInfo).
A callable has a list of arguments (GIArgInfo), a return type, direction and a flag which decides if it returns null.
#define GI_IS_CALLABLE_INFO(info)
Checks if info
is a GICallableInfo or derived from it.
gboolean
g_callable_info_can_throw_gerror (GICallableInfo *info
);
TODO
Since: 1.34
gint
g_callable_info_get_n_args (GICallableInfo *info
);
Obtain the number of arguments (both IN and OUT) for this callable.
GIArgInfo * g_callable_info_get_arg (GICallableInfo *info
,gint n
);
Obtain information about a particular argument of this callable.
GITransfer
g_callable_info_get_caller_owns (GICallableInfo *info
);
See whether the caller owns the return value of this callable. GITransfer contains a list of possible transfer values.
GITransfer
g_callable_info_get_instance_ownership_transfer
(GICallableInfo *info
);
Obtains the ownership transfer for the instance argument. GITransfer contains a list of possible transfer values.
Since: 1.42
const gchar * g_callable_info_get_return_attribute (GICallableInfo *info
,const gchar *name
);
Retrieve an arbitrary attribute associated with the return value.
GITypeInfo *
g_callable_info_get_return_type (GICallableInfo *info
);
Obtain the return type of a callable item as a GITypeInfo.
gboolean g_callable_info_invoke (GICallableInfo *info
,gpointer function
,const GIArgument *in_args
,int n_in_args
,const GIArgument *out_args
,int n_out_args
,GIArgument *return_value
,gboolean is_method
,gboolean throws
,GError **error
);
TODO
gboolean
g_callable_info_is_method (GICallableInfo *info
);
Determines if the callable info is a method. For GIVFuncInfos,
GICallbackInfos, and GISignalInfos,
this is always true. Otherwise, this looks at the GI_FUNCTION_IS_METHOD
flag on the GIFunctionInfo.
Concretely, this function returns whether g_callable_info_get_n_args()
matches the number of arguments in the raw C method. For methods, there
is one more C argument than is exposed by introspection: the "self"
or "this" object.
Since: 1.34
gboolean g_callable_info_iterate_return_attributes (GICallableInfo *info
,GIAttributeIter *iterator
,char **name
,char **value
);
Iterate over all attributes associated with the return value. The
iterator structure is typically stack allocated, and must have its
first member initialized to NULL
.
Both the name
and value
should be treated as constants
and must not be freed.
See g_base_info_iterate_attributes()
for an example of how to use a
similar API.
info |
||
iterator |
a GIAttributeIter structure, must be initialized; see below. |
[inout] |
name |
Returned name, must not be freed. |
[out][transfer none] |
value |
Returned name, must not be freed. |
[out][transfer none] |
void g_callable_info_load_arg (GICallableInfo *info
,gint n
,GIArgInfo *arg
);
Obtain information about a particular argument of this callable; this
function is a variant of g_callable_info_get_arg()
designed for stack
allocation.
The initialized arg
must not be referenced after info
is deallocated.
void g_callable_info_load_return_type (GICallableInfo *info
,GITypeInfo *type
);
Obtain information about a return value of callable; this
function is a variant of g_callable_info_get_return_type()
designed for stack
allocation.
The initialized type
must not be referenced after info
is deallocated.
gboolean
g_callable_info_may_return_null (GICallableInfo *info
);
See if a callable could return NULL
.
gboolean
g_callable_info_skip_return (GICallableInfo *info
);
See if a callable's return value is only useful in C.
ffi_closure * g_callable_info_create_closure (GICallableInfo *callable_info
,ffi_cif *cif
,GIFFIClosureCallback callback
,gpointer user_data
);
Prepares a callback for ffi invocation.
callable_info |
a callable info from a typelib |
|
cif |
a ffi_cif structure |
|
callback |
the ffi callback |
|
user_data |
data to be passed into the callback |
the ffi_closure or NULL on error. The return value
should be freed by calling g_callable_info_destroy_closure()
.
void g_callable_info_destroy_closure (GICallableInfo *callable_info
,ffi_closure *closure
);
Frees a ffi_closure returned from g_callable_info_create_closure()
gpointer * g_callable_info_get_closure_native_address (GICallableInfo *callable_info
,ffi_closure *closure
);
Gets callable code from ffi_closure prepared by g_callable_info_create_closure()
typedef GIBaseInfo GICallableInfo;
Represents a callable, either GIFunctionInfo, GICallbackInfo or GIVFuncInfo.