Top |
struct | GClosure |
#define | G_TYPE_CLOSURE |
struct | GCClosure |
#define | g_cclosure_marshal_BOOL__FLAGS |
#define | g_cclosure_marshal_BOOL__BOXED_BOXED |
A GClosure represents a callback supplied by the programmer. It will generally comprise a function of some kind and a marshaller used to call it. It is the responsibility of the marshaller to convert the arguments for the invocation from GValues into a suitable form, perform the callback on the converted arguments, and transform the return value back into a GValue.
In the case of C programs, a closure usually just holds a pointer to a function and maybe a data argument, and the marshaller converts between GValue and native C types. The GObject library provides the GCClosure type for this purpose. Bindings for other languages need marshallers which convert between GValue<!-- -->s and suitable representations in the runtime of the language in order to use functions written in that languages as callbacks.
Within GObject, closures play an important role in the
implementation of signals. When a signal is registered, the
c_marshaller
argument to g_signal_new()
specifies the default C
marshaller for any closure which is connected to this
signal. GObject provides a number of C marshallers for this
purpose, see the g_cclosure_marshal_*() functions. Additional C
marshallers can be generated with the glib-genmarshal
utility. Closures can be explicitly connected to signals with
g_signal_connect_closure()
, but it usually more convenient to let
GObject create a closure automatically by using one of the
g_signal_connect_*() functions which take a callback function/user
data pair.
Using closures has a number of important advantages over a simple callback function/data pointer combination:
Closures allow the callee to get the types of the callback parameters, which means that language bindings don't have to write individual glue for each callback type.
The reference counting of GClosure makes it easy to handle reentrancy right; if a callback is removed while it is being invoked, the closure and its parameters won't be freed until the invocation finishes.
g_closure_invalidate() and invalidation notifiers allow callbacks to be automatically removed when the objects they point to go away.
#define G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL)
Check if the closure still needs a marshaller. See g_closure_set_marshal()
.
#define G_CLOSURE_N_NOTIFIERS(cl)
Get the total number of notifiers connected with the closure cl
.
The count includes the meta marshaller, the finalize and invalidate notifiers
and the marshal guards. Note that each guard counts as two notifiers.
See g_closure_set_meta_marshal()
, g_closure_add_finalize_notifier()
,
g_closure_add_invalidate_notifier()
and g_closure_add_marshal_guards()
.
#define G_CCLOSURE_SWAP_DATA(cclosure) (((GClosure*) (cclosure))->derivative_flag)
Checks whether the user data of the GCClosure should be passed as the
first parameter to the callback. See g_cclosure_new_swap()
.
void
(*GCallback) (void
);
The type used for callback functions in structure definitions and function
signatures. This doesn't mean that all callback functions must take no
parameters and return void. The required signature of a callback function
is determined by the context in which is used (e.g. the signal to which it
is connected). Use G_CALLBACK()
to cast the callback function to a GCallback.
void (*GClosureMarshal) (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
The type used for marshaller functions.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
n_param_values |
the length of the |
|
param_values |
an array of
GValues holding the arguments on which to invoke the
callback of |
[array length=n_param_values] |
invocation_hint |
the invocation hint given as the
last argument to |
[nullable] |
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
void (*GVaClosureMarshal) (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
This is the signature of va_list marshaller functions, an optional marshaller that can be used in some situations to avoid marshalling the signal argument into GValues.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void (*GClosureNotify) (gpointer data
,GClosure *closure
);
The type used for the various notification callbacks which can be registered on closures.
data |
data specified when registering the notification callback |
|
closure |
the GClosure on which the notification is emitted |
GClosure * g_cclosure_new (GCallback callback_func
,gpointer user_data
,GClosureNotify destroy_data
);
Creates a new closure which invokes callback_func
with user_data
as
the last parameter.
[skip]
GClosure * g_cclosure_new_swap (GCallback callback_func
,gpointer user_data
,GClosureNotify destroy_data
);
Creates a new closure which invokes callback_func
with user_data
as
the first parameter.
[skip]
GClosure * g_cclosure_new_object (GCallback callback_func
,GObject *object
);
A variant of g_cclosure_new()
which uses object
as user_data
and
calls g_object_watch_closure()
on object
and the created
closure. This function is useful when you have a callback closely
associated with a GObject, and want the callback to no longer run
after the object is is freed.
[skip]
GClosure * g_cclosure_new_object_swap (GCallback callback_func
,GObject *object
);
A variant of g_cclosure_new_swap()
which uses object
as user_data
and calls g_object_watch_closure()
on object
and the created
closure. This function is useful when you have a callback closely
associated with a GObject, and want the callback to no longer run
after the object is is freed.
[skip]
void g_cclosure_marshal_generic (GClosure *closure
,GValue *return_gvalue
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A generic marshaller function implemented via libffi.
Normally this function is not passed explicitly to g_signal_new()
,
but used automatically by GLib when specifying a NULL
marshaller.
closure |
A GClosure. |
|
return_gvalue |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
Since: 2.30
GClosure * g_closure_new_object (guint sizeof_closure
,GObject *object
);
A variant of g_closure_new_simple()
which stores object
in the
data
field of the closure and calls g_object_watch_closure()
on
object
and the created closure. This function is mainly useful
when implementing new types of closures.
GClosure *
g_closure_ref (GClosure *closure
);
Increments the reference count on a closure to force it staying alive while the caller holds a pointer to it.
void
g_closure_sink (GClosure *closure
);
Takes over the initial ownership of a closure. Each closure is
initially created in a "floating" state, which means that the initial
reference count is not owned by any caller. g_closure_sink()
checks
to see if the object is still floating, and if so, unsets the
floating state and decreases the reference count. If the closure
is not floating, g_closure_sink()
does nothing. The reason for the
existence of the floating state is to prevent cumbersome code
sequences like:
1 2 3 |
closure = g_cclosure_new (cb_func, cb_data); g_source_set_closure (source, closure); g_closure_unref (closure); // GObject doesn't really need this |
Because g_source_set_closure()
(and similar functions) take ownership of the
initial reference count, if it is unowned, we instead can write:
1 |
g_source_set_closure (source, g_cclosure_new (cb_func, cb_data)); |
Generally, this function is used together with g_closure_ref()
. Ane example
of storing a closure for later notification looks like:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
static GClosure *notify_closure = NULL; void foo_notify_set_closure (GClosure *closure) { if (notify_closure) g_closure_unref (notify_closure); notify_closure = closure; if (notify_closure) { g_closure_ref (notify_closure); g_closure_sink (notify_closure); } } |
Because g_closure_sink()
may decrement the reference count of a closure
(if it hasn't been called on closure
yet) just like g_closure_unref()
,
g_closure_ref()
should be called prior to this function.
void
g_closure_unref (GClosure *closure
);
Decrements the reference count of a closure after it was previously incremented by the same caller. If no other callers are using the closure, then the closure will be destroyed and freed.
void g_closure_invoke (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
);
Invokes the closure, i.e. executes the callback represented by the closure
.
closure |
a GClosure |
|
return_value |
a GValue to store the return
value. May be |
[optional][out] |
n_param_values |
the length of the |
|
param_values |
an array of
GValues holding the arguments on which to
invoke the callback of |
[array length=n_param_values] |
invocation_hint |
a context-dependent invocation hint. |
[nullable] |
void
g_closure_invalidate (GClosure *closure
);
Sets a flag on the closure to indicate that its calling
environment has become invalid, and thus causes any future
invocations of g_closure_invoke()
on this closure
to be
ignored. Also, invalidation notifiers installed on the closure will
be called at this point. Note that unless you are holding a
reference to the closure yourself, the invalidation notifiers may
unref the closure and cause it to be destroyed, so if you need to
access the closure after calling g_closure_invalidate()
, make sure
that you've previously called g_closure_ref()
.
Note that g_closure_invalidate()
will also be called when the
reference count of a closure drops to zero (unless it has already
been invalidated before).
void g_closure_add_finalize_notifier (GClosure *closure
,gpointer notify_data
,GClosureNotify notify_func
);
Registers a finalization notifier which will be called when the
reference count of closure
goes down to 0. Multiple finalization
notifiers on a single closure are invoked in unspecified order. If
a single call to g_closure_unref()
results in the closure being
both invalidated and finalized, then the invalidate notifiers will
be run before the finalize notifiers.
[skip]
closure |
a GClosure |
|
notify_data |
data to pass to |
[closure notify_func] |
notify_func |
the callback function to register |
void g_closure_add_invalidate_notifier (GClosure *closure
,gpointer notify_data
,GClosureNotify notify_func
);
Registers an invalidation notifier which will be called when the
closure
is invalidated with g_closure_invalidate()
. Invalidation
notifiers are invoked before finalization notifiers, in an
unspecified order.
[skip]
closure |
a GClosure |
|
notify_data |
data to pass to |
[closure notify_func] |
notify_func |
the callback function to register |
void g_closure_remove_finalize_notifier (GClosure *closure
,gpointer notify_data
,GClosureNotify notify_func
);
Removes a finalization notifier.
Notice that notifiers are automatically removed after they are run.
[skip]
closure |
a GClosure |
|
notify_data |
data which was passed to |
|
notify_func |
the callback function to remove |
void g_closure_remove_invalidate_notifier (GClosure *closure
,gpointer notify_data
,GClosureNotify notify_func
);
Removes an invalidation notifier.
Notice that notifiers are automatically removed after they are run.
[skip]
closure |
a GClosure |
|
notify_data |
data which was passed to |
|
notify_func |
the callback function to remove |
GClosure * g_closure_new_simple (guint sizeof_closure
,gpointer data
);
Allocates a struct of the given size and initializes the initial part as a GClosure. This function is mainly useful when implementing new types of closures.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
typedef struct _MyClosure MyClosure; struct _MyClosure { GClosure closure; // extra data goes here }; static void my_closure_finalize (gpointer notify_data, GClosure *closure) { MyClosure *my_closure = (MyClosure *)closure; // free extra data here } MyClosure *my_closure_new (gpointer data) { GClosure *closure; MyClosure *my_closure; closure = g_closure_new_simple (sizeof (MyClosure), data); my_closure = (MyClosure *) closure; // initialize extra data here g_closure_add_finalize_notifier (closure, notify_data, my_closure_finalize); return my_closure; } |
sizeof_closure |
the size of the structure to allocate, must be at least
|
|
data |
data to store in the |
void g_closure_set_marshal (GClosure *closure
,GClosureMarshal marshal
);
Sets the marshaller of closure
. The marshal_data
of marshal
provides a way for a meta marshaller to provide additional
information to the marshaller. (See g_closure_set_meta_marshal()
.) For
GObject's C predefined marshallers (the g_cclosure_marshal_*()
functions), what it provides is a callback function to use instead of
closure->callback
.
[skip]
void g_closure_add_marshal_guards (GClosure *closure
,gpointer pre_marshal_data
,GClosureNotify pre_marshal_notify
,gpointer post_marshal_data
,GClosureNotify post_marshal_notify
);
Adds a pair of notifiers which get invoked before and after the
closure callback, respectively. This is typically used to protect
the extra arguments for the duration of the callback. See
g_object_watch_closure()
for an example of marshal guards.
[skip]
closure |
a GClosure |
|
pre_marshal_data |
data to pass
to |
[closure pre_marshal_notify] |
pre_marshal_notify |
a function to call before the closure callback |
|
post_marshal_data |
data to pass
to |
[closure post_marshal_notify] |
post_marshal_notify |
a function to call after the closure callback |
void g_closure_set_meta_marshal (GClosure *closure
,gpointer marshal_data
,GClosureMarshal meta_marshal
);
Sets the meta marshaller of closure
. A meta marshaller wraps
closure->marshal
and modifies the way it is called in some
fashion. The most common use of this facility is for C callbacks.
The same marshallers (generated by glib-genmarshal),
are used everywhere, but the way that we get the callback function
differs. In most cases we want to use closure->callback
, but in
other cases we want to use some different technique to retrieve the
callback function.
For example, class closures for signals (see
g_signal_type_cclosure_new()
) retrieve the callback function from a
fixed offset in the class structure. The meta marshaller retrieves
the right callback and passes it to the marshaller as the
marshal_data
argument.
[skip]
closure |
a GClosure |
|
marshal_data |
context-dependent data to pass
to |
[closure meta_marshal] |
meta_marshal |
a GClosureMarshal function |
void g_source_set_closure (GSource *source
,GClosure *closure
);
Set the callback for a source as a GClosure.
If the source is not one of the standard GLib types, the closure_callback
and closure_marshal
fields of the GSourceFuncs structure must have been
filled in with pointers to appropriate functions.
void
g_source_set_dummy_callback (GSource *source
);
Sets a dummy callback for source
. The callback will do nothing, and
if the source expects a gboolean return value, it will return TRUE
.
(If the source expects any other type of return value, it will return
a 0/NULL
value; whatever g_value_init()
initializes a GValue to for
that type.)
If the source is not one of the standard GLib types, the
closure_callback
and closure_marshal
fields of the GSourceFuncs
structure must have been filled in with pointers to appropriate
functions.
void g_cclosure_marshal_VOID__VOID (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with no arguments.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__BOOLEAN (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single boolean argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__CHAR (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single character argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__UCHAR (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single unsigned character argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__INT (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single integer argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__UINT (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with with a single unsigned integer argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__LONG (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with with a single long integer argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__ULONG (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single unsigned long integer argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__ENUM (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single argument with an enumerated type.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__FLAGS (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single argument with a flags types.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__FLOAT (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with one single-precision floating point argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__DOUBLE (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with one double-precision floating point argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__STRING (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single string argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__PARAM (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single argument of type GParamSpec.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__BOXED (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single argument which is any boxed pointer type.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__POINTER (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single raw pointer argument type.
If it is possible, it is better to use one of the more specific
functions such as g_cclosure_marshal_VOID__OBJECT()
or
g_cclosure_marshal_VOID__OBJECT()
.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__OBJECT (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single GObject argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__VARIANT (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a single GVariant argument.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
Since: 2.26
void g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with handlers that take a GObject and a pointer and produce a string. It is highly unlikely that your signal handler fits this description.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_VOID__UINT_POINTER (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with a unsigned int and a pointer as arguments.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_BOOLEAN__FLAGS (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with handlers that
take a flags type as an argument and return a boolean. If you have
such a signal, you will probably also need to use an accumulator,
such as g_signal_accumulator_true_handled()
.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_BOOLEAN__BOXED_BOXED (GClosure *closure
,GValue *return_value
,guint n_param_values
,const GValue *param_values
,gpointer invocation_hint
,gpointer marshal_data
);
A GClosureMarshal function for use with signals with handlers that
take two boxed pointers as arguments and return a boolean. If you
have such a signal, you will probably also need to use an
accumulator, such as g_signal_accumulator_true_handled()
.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
void g_cclosure_marshal_generic_va (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args_list
,gpointer marshal_data
,int n_params
,GType *param_types
);
A generic GVaClosureMarshal function implemented via libffi.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args_list |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
Since: 2.30
void g_cclosure_marshal_VOID__VOIDv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__VOID()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__BOOLEANv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__BOOLEAN()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__CHARv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__CHAR()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__UCHARv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__UCHAR()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__INTv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__INT()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__UINTv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__UINT()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__LONGv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__LONG()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__ULONGv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__ULONG()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__ENUMv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__ENUM()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__FLAGSv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__FLAGS()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__FLOATv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__FLOAT()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__DOUBLEv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__DOUBLE()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__STRINGv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__STRING()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__PARAMv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__PARAM()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__BOXEDv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__BOXED()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__POINTERv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__POINTER()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__OBJECTv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__OBJECT()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__VARIANTv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__VARIANT()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_STRING__OBJECT_POINTERv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_STRING__OBJECT_POINTER()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_VOID__UINT_POINTERv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__UINT_POINTER()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_BOOLEAN__FLAGSv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_BOOLEAN__FLAGS()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
void g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv (GClosure *closure
,GValue *return_value
,gpointer instance
,va_list args
,gpointer marshal_data
,int n_params
,GType *param_types
);
The GVaClosureMarshal equivalent to g_cclosure_marshal_BOOLEAN__BOXED_BOXED()
.
closure |
the GClosure to which the marshaller belongs |
|
return_value |
a GValue to store the return
value. May be |
[nullable] |
instance |
the instance on which the closure is invoked. |
[type GObject.TypeInstance] |
args |
va_list of arguments to be passed to the closure. |
|
marshal_data |
additional data specified when
registering the marshaller, see |
[nullable] |
n_params |
the length of the |
|
param_types |
the GType of each argument from
|
[array length=n_params] |
struct GClosure { volatile guint in_marshal : 1; volatile guint is_invalid : 1; };
A GClosure represents a callback supplied by the programmer.
volatile guint |
Indicates whether the closure is currently being invoked with
|
|
volatile guint |
Indicates whether the closure has been invalidated by
|
struct GCClosure { GClosure closure; gpointer callback; };
A GCClosure is a specialization of GClosure for C function callbacks.
#define g_cclosure_marshal_BOOL__FLAGS
An old alias for g_cclosure_marshal_BOOLEAN__FLAGS()
.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |
#define g_cclosure_marshal_BOOL__BOXED_BOXED
An old alias for g_cclosure_marshal_BOOLEAN__BOXED_BOXED()
.
closure |
A GClosure. |
|
return_value |
A GValue to store the return value. May be |
|
n_param_values |
The length of the |
|
param_values |
An array of GValues holding the arguments on which to invoke the callback of closure. |
|
invocation_hint |
The invocation hint given as the last argument to
|
|
marshal_data |
Additional data specified when registering the
marshaller, see |