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 () |
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 () |
GICallableInfo represents an entity which is callable. Currently a function (GIFunctionInfo), virtual function, (GIVFuncInfo) or callback (GICallbackInfo).
A callable has a list of arguments (GIArgInfo), a return type, direction and a flag which decides if it returns null.
GIBaseInfo +----GICallableInfo +----GIFunctionInfo +----GISignalInfo +----GIVFuncInfo
#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.
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.