Top |
#define | GI_IS_ARG_INFO() |
gint | g_arg_info_get_closure () |
gint | g_arg_info_get_destroy () |
GIDirection | g_arg_info_get_direction () |
GITransfer | g_arg_info_get_ownership_transfer () |
GIScopeType | g_arg_info_get_scope () |
GITypeInfo * | g_arg_info_get_type () |
void | g_arg_info_load_type () |
gboolean | g_arg_info_may_be_null () |
gboolean | g_arg_info_is_caller_allocates () |
gboolean | g_arg_info_is_optional () |
gboolean | g_arg_info_is_return_value () |
gboolean | g_arg_info_is_skip () |
GIArgInfo represents an argument of a callable.
An argument is always part of a GICallableInfo.
gint
g_arg_info_get_closure (GIArgInfo *info
);
Obtain the index of the user data argument. This is only valid for arguments which are callbacks.
gint
g_arg_info_get_destroy (GIArgInfo *info
);
Obtains the index of the GDestroyNotify argument. This is only valid for arguments which are callbacks.
GIDirection
g_arg_info_get_direction (GIArgInfo *info
);
Obtain the direction of the argument. Check GIDirection for possible direction values.
GITransfer
g_arg_info_get_ownership_transfer (GIArgInfo *info
);
Obtain the ownership transfer for this argument. GITransfer contains a list of possible values.
GIScopeType
g_arg_info_get_scope (GIArgInfo *info
);
Obtain the scope type for this argument. The scope type explains how a callback is going to be invoked, most importantly when the resources required to invoke it can be freed. GIScopeType contains a list of possible values.
GITypeInfo *
g_arg_info_get_type (GIArgInfo *info
);
Obtain the type information for info
.
the GITypeInfo holding the type
information for info
, free it with g_base_info_unref()
when done.
[transfer full]
void g_arg_info_load_type (GIArgInfo *info
,GITypeInfo *type
);
Obtain information about a the type of given argument info
; this
function is a variant of g_arg_info_get_type()
designed for stack
allocation.
The initialized type
must not be referenced after info
is deallocated.
gboolean
g_arg_info_may_be_null (GIArgInfo *info
);
Obtain if the type of the argument includes the possibility of NULL
.
For 'in' values this means that NULL
is a valid value. For 'out'
values, this means that NULL
may be returned.
See also g_arg_info_is_optional()
.
gboolean
g_arg_info_is_caller_allocates (GIArgInfo *info
);
Obtain if the argument is a pointer to a struct or object that will
receive an output of a function. The default assumption for
GI_DIRECTION_OUT
arguments which have allocation is that the
callee allocates; if this is TRUE
, then the caller must allocate.
gboolean
g_arg_info_is_optional (GIArgInfo *info
);
Obtain if the argument is optional. For 'out' arguments this means
that you can pass NULL
in order to ignore the result.
gboolean
g_arg_info_is_return_value (GIArgInfo *info
);
Obtain if the argument is a return value. It can either be a parameter or a return value.
Scope type of a GIArgInfo representing callback, determines how the callback is invoked and is used to decided when the invoke structs can be freed.
The argument is not of callback type. |
||
The callback and associated user_data is only used during the call to this function. |
||
The callback and associated user_data is only used until the callback is invoked, and the callback. is invoked always exactly once. |
||
The callback and associated user_data is used until the caller is notfied via the destroy_notify. |
||
The callback and associated user_data is used until the process terminates |
The transfer is the exchange of data between two parts, from the callee to the caller. The callee is either a function/method/signal or an object/interface where a property is defined. The caller is the side accessing a property or calling a function. GITransfer specifies who's responsible for freeing the resources after the ownership transfer is complete. In case of a containing type such as a list, an array or a hash table the container itself is specified differently from the items within the container itself. Each container is freed differently, check the documentation for the types themselves for information on how to free them.
transfer nothing from the callee (function or the type instance the property belongs to) to the caller. The callee retains the ownership of the transfer and the caller doesn't need to do anything to free up the resources of this transfer. |
||
transfer the container (list, array, hash table) from
the callee to the caller. The callee retains the ownership of the individual
items in the container and the caller has to free up the container resources
( |
||
transfer everything, eg the container and its contents from the callee to the caller. This is the case when the callee creates a copy of all the data it returns. The caller is responsible for cleaning up the container and item resources of this transfer. |