<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC '-//OASIS//DTD DocBook XML V4.5//EN'
                      'http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd' [

<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="gobject-Closures">
<refmeta>
<refentrytitle role="top_of_page" id="gobject-Closures.top_of_page">Closures</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GOBJECT Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Closures</refname>
<refpurpose>Functions as first-class objects</refpurpose>
</refnamediv>

<refsect1 id="gobject-Closures.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="G-CLOSURE-NEEDS-MARSHAL:CAPS">G_CLOSURE_NEEDS_MARSHAL</link><phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="G-CLOSURE-N-NOTIFIERS:CAPS">G_CLOSURE_N_NOTIFIERS</link><phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="G-CCLOSURE-SWAP-DATA:CAPS">G_CCLOSURE_SWAP_DATA</link><phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="G-CALLBACK:CAPS">G_CALLBACK</link><phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="GCallback">*GCallback</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="GClosureMarshal">*GClosureMarshal</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="GVaClosureMarshal">*GVaClosureMarshal</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="GClosureNotify">*GClosureNotify</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="g-cclosure-new">g_cclosure_new</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="g-cclosure-new-swap">g_cclosure_new_swap</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="g-cclosure-new-object">g_cclosure_new_object</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="g-cclosure-new-object-swap">g_cclosure_new_object_swap</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-generic">g_cclosure_marshal_generic</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="g-closure-new-object">g_closure_new_object</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="g-closure-ref">g_closure_ref</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-sink">g_closure_sink</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-unref">g_closure_unref</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-invoke">g_closure_invoke</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-invalidate">g_closure_invalidate</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-add-finalize-notifier">g_closure_add_finalize_notifier</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-add-invalidate-notifier">g_closure_add_invalidate_notifier</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-remove-finalize-notifier">g_closure_remove_finalize_notifier</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-remove-invalidate-notifier">g_closure_remove_invalidate_notifier</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="g-closure-new-simple">g_closure_new_simple</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-set-marshal">g_closure_set_marshal</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-add-marshal-guards">g_closure_add_marshal_guards</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-closure-set-meta-marshal">g_closure_set_meta_marshal</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-source-set-closure">g_source_set_closure</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-source-set-dummy-callback">g_source_set_dummy_callback</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--VOID">g_cclosure_marshal_VOID__VOID</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--BOOLEAN">g_cclosure_marshal_VOID__BOOLEAN</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--CHAR">g_cclosure_marshal_VOID__CHAR</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--UCHAR">g_cclosure_marshal_VOID__UCHAR</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--INT">g_cclosure_marshal_VOID__INT</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--UINT">g_cclosure_marshal_VOID__UINT</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--LONG">g_cclosure_marshal_VOID__LONG</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--ULONG">g_cclosure_marshal_VOID__ULONG</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--ENUM">g_cclosure_marshal_VOID__ENUM</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--FLAGS">g_cclosure_marshal_VOID__FLAGS</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--FLOAT">g_cclosure_marshal_VOID__FLOAT</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--DOUBLE">g_cclosure_marshal_VOID__DOUBLE</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--STRING">g_cclosure_marshal_VOID__STRING</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--PARAM">g_cclosure_marshal_VOID__PARAM</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--BOXED">g_cclosure_marshal_VOID__BOXED</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--POINTER">g_cclosure_marshal_VOID__POINTER</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--OBJECT">g_cclosure_marshal_VOID__OBJECT</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--VARIANT">g_cclosure_marshal_VOID__VARIANT</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-STRING--OBJECT-POINTER">g_cclosure_marshal_STRING__OBJECT_POINTER</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--UINT-POINTER">g_cclosure_marshal_VOID__UINT_POINTER</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-BOOLEAN--FLAGS">g_cclosure_marshal_BOOLEAN__FLAGS</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-BOOLEAN--BOXED-BOXED">g_cclosure_marshal_BOOLEAN__BOXED_BOXED</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-generic-va">g_cclosure_marshal_generic_va</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--VOIDv">g_cclosure_marshal_VOID__VOIDv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--BOOLEANv">g_cclosure_marshal_VOID__BOOLEANv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--CHARv">g_cclosure_marshal_VOID__CHARv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--UCHARv">g_cclosure_marshal_VOID__UCHARv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--INTv">g_cclosure_marshal_VOID__INTv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--UINTv">g_cclosure_marshal_VOID__UINTv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--LONGv">g_cclosure_marshal_VOID__LONGv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--ULONGv">g_cclosure_marshal_VOID__ULONGv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--ENUMv">g_cclosure_marshal_VOID__ENUMv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--FLAGSv">g_cclosure_marshal_VOID__FLAGSv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--FLOATv">g_cclosure_marshal_VOID__FLOATv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--DOUBLEv">g_cclosure_marshal_VOID__DOUBLEv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--STRINGv">g_cclosure_marshal_VOID__STRINGv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--PARAMv">g_cclosure_marshal_VOID__PARAMv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--BOXEDv">g_cclosure_marshal_VOID__BOXEDv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--POINTERv">g_cclosure_marshal_VOID__POINTERv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--OBJECTv">g_cclosure_marshal_VOID__OBJECTv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--VARIANTv">g_cclosure_marshal_VOID__VARIANTv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-STRING--OBJECT-POINTERv">g_cclosure_marshal_STRING__OBJECT_POINTERv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-VOID--UINT-POINTERv">g_cclosure_marshal_VOID__UINT_POINTERv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-BOOLEAN--FLAGSv">g_cclosure_marshal_BOOLEAN__FLAGSv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="g-cclosure-marshal-BOOLEAN--BOXED-BOXEDv">g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<anchor id="GClosure"/><refsect1 id="gobject-Closures.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="GClosure-struct">GClosure</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="G-TYPE-CLOSURE:CAPS">G_TYPE_CLOSURE</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="GCClosure">GCClosure</link></entry></row>

<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="g-cclosure-marshal-BOOL--FLAGS">g_cclosure_marshal_BOOL__FLAGS</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="g-cclosure-marshal-BOOL--BOXED-BOXED">g_cclosure_marshal_BOOL__BOXED_BOXED</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="gobject-Closures.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GBoxed">GBoxed</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> GClosure
</screen>
</refsect1>

<refsect1 id="gobject-Closures.includes"><title>Includes</title><synopsis>#include &lt;glib-object.h&gt;
#include &lt;gobject/gvaluecollector.h&gt;
</synopsis></refsect1>

<refsect1 id="gobject-Closures.description" role="desc">
<title role="desc.title">Description</title>
<para>A <link linkend="GClosure"><type>GClosure</type></link> 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 <link linkend="GValues"><type>GValues</type></link> into
a suitable form, perform the callback on the converted arguments,
and transform the return value back into a <link linkend="GValue"><type>GValue</type></link>.</para>
<para>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 <link linkend="GValue"><type>GValue</type></link> and native C types. The GObject
library provides the <link linkend="GCClosure"><type>GCClosure</type></link> type for this purpose. Bindings for
other languages need marshallers which convert between <link linkend="GValues"><type>GValues</type></link>
and suitable representations in the runtime of the language in
order to use functions written in that language as callbacks. Use
<link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> to set the marshaller on such a custom
closure implementation.</para>
<para>Within GObject, closures play an important role in the
implementation of signals. When a signal is registered, the
<parameter>c_marshaller</parameter>
 argument to <link linkend="g-signal-new"><function>g_signal_new()</function></link> 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 <link linkend="glib-genmarshal">glib-genmarshal</link>
utility.  Closures can be explicitly connected to signals with
<link linkend="g-signal-connect-closure"><function>g_signal_connect_closure()</function></link>, 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.</para>
<para>Using closures has a number of important advantages over a simple
callback function/data pointer combination:</para>
<itemizedlist>
<listitem>
<para>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.</para>
</listitem>
<listitem>
<para>The reference counting of <link linkend="GClosure"><type>GClosure</type></link> 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.</para>
</listitem>
<listitem><para>g_closure_invalidate() and invalidation notifiers allow callbacks to be
automatically removed when the objects they point to go away.</para></listitem>
</itemizedlist>

</refsect1>
<refsect1 id="gobject-Closures.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="G-CLOSURE-NEEDS-MARSHAL:CAPS" role="macro">
<title>G_CLOSURE_NEEDS_MARSHAL()</title>
<indexterm zone="G-CLOSURE-NEEDS-MARSHAL:CAPS"><primary sortas="CLOSURE_NEEDS_MARSHAL">G_CLOSURE_NEEDS_MARSHAL</primary></indexterm>
<programlisting language="C">#define&#160;G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))-&gt;marshal == NULL)
</programlisting>
<para>Check if the closure still needs a marshaller. See <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link>.</para>
<refsect3 id="G-CLOSURE-NEEDS-MARSHAL.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="G-CLOSURE-NEEDS-MARSHAL.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if a <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> marshaller has not yet been set on
<parameter>closure</parameter>
.</para>
</refsect3></refsect2>
<refsect2 id="G-CLOSURE-N-NOTIFIERS:CAPS" role="macro">
<title>G_CLOSURE_N_NOTIFIERS()</title>
<indexterm zone="G-CLOSURE-N-NOTIFIERS:CAPS"><primary sortas="CLOSURE_N_NOTIFIERS">G_CLOSURE_N_NOTIFIERS</primary></indexterm>
<programlisting language="C">#define             G_CLOSURE_N_NOTIFIERS(cl)</programlisting>
<para>Get the total number of notifiers connected with the closure <parameter>cl</parameter>
. 
The count includes the meta marshaller, the finalize and invalidate notifiers 
and the marshal guards. Note that each guard counts as two notifiers. 
See <link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>, <link linkend="g-closure-add-finalize-notifier"><function>g_closure_add_finalize_notifier()</function></link>,
<link linkend="g-closure-add-invalidate-notifier"><function>g_closure_add_invalidate_notifier()</function></link> and <link linkend="g-closure-add-marshal-guards"><function>g_closure_add_marshal_guards()</function></link>.</para>
<refsect3 id="G-CLOSURE-N-NOTIFIERS.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>cl</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="G-CLOSURE-N-NOTIFIERS.returns" role="returns">
<title>Returns</title>
<para> number of notifiers</para>
</refsect3></refsect2>
<refsect2 id="G-CCLOSURE-SWAP-DATA:CAPS" role="macro">
<title>G_CCLOSURE_SWAP_DATA()</title>
<indexterm zone="G-CCLOSURE-SWAP-DATA:CAPS"><primary sortas="CCLOSURE_SWAP_DATA">G_CCLOSURE_SWAP_DATA</primary></indexterm>
<programlisting language="C">#define&#160;G_CCLOSURE_SWAP_DATA(cclosure)	 (((GClosure*) (cclosure))-&gt;derivative_flag)
</programlisting>
<para>Checks whether the user data of the <link linkend="GCClosure"><type>GCClosure</type></link> should be passed as the
first parameter to the callback. See <link linkend="g-cclosure-new-swap"><function>g_cclosure_new_swap()</function></link>.</para>
<refsect3 id="G-CCLOSURE-SWAP-DATA.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>cclosure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GCClosure"><type>GCClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="G-CCLOSURE-SWAP-DATA.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if data has to be swapped.</para>
</refsect3></refsect2>
<refsect2 id="G-CALLBACK:CAPS" role="macro">
<title>G_CALLBACK()</title>
<indexterm zone="G-CALLBACK:CAPS"><primary sortas="CALLBACK">G_CALLBACK</primary></indexterm>
<programlisting language="C">#define&#160;G_CALLBACK(f)			 ((GCallback) (f))
</programlisting>
<para>Cast a function pointer to a <link linkend="GCallback"><type>GCallback</type></link>.</para>
<refsect3 id="G-CALLBACK.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>f</para></entry>
<entry role="parameter_description"><para>a function pointer.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GCallback" role="function">
<title>GCallback&#160;()</title>
<indexterm zone="GCallback"><primary sortas="Callback">GCallback</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
<phrase role="c_punctuation">(</phrase>*GCallback<phrase role="c_punctuation">)</phrase> (<parameter><type>void</type></parameter>);</programlisting>
<para>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 <link linkend="G-CALLBACK:CAPS"><function>G_CALLBACK()</function></link> to cast the callback function to a <link linkend="GCallback"><type>GCallback</type></link>.</para>
</refsect2>
<refsect2 id="GClosureMarshal" role="function">
<title>GClosureMarshal&#160;()</title>
<indexterm zone="GClosureMarshal"><primary sortas="ClosureMarshal">GClosureMarshal</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
<phrase role="c_punctuation">(</phrase>*GClosureMarshal<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                    <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                    <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                    <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                    <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                    <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>The type used for marshaller functions.</para>
<refsect3 id="GClosureMarshal.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_values</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>an array of
<link linkend="GValues"><type>GValues</type></link> holding the arguments on which to invoke the
callback of <parameter>closure</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_param_values]</emphasis></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>the invocation hint given as the
last argument to <link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GVaClosureMarshal" role="function">
<title>GVaClosureMarshal&#160;()</title>
<indexterm zone="GVaClosureMarshal"><primary sortas="VaClosureMarshal">GVaClosureMarshal</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
<phrase role="c_punctuation">(</phrase>*GVaClosureMarshal<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                      <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                      <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                      <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                      <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                      <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                      <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>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.</para>
<refsect3 id="GVaClosureMarshal.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is
invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GClosureNotify" role="function">
<title>GClosureNotify&#160;()</title>
<indexterm zone="GClosureNotify"><primary sortas="ClosureNotify">GClosureNotify</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
<phrase role="c_punctuation">(</phrase>*GClosureNotify<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="gpointer"><type>gpointer</type></link> data</parameter>,
                   <parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>);</programlisting>
<para>The type used for the various notification callbacks which can be registered
on closures.</para>
<refsect3 id="GClosureNotify.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>data</para></entry>
<entry role="parameter_description"><para>data specified when registering the notification callback</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> on which the notification is emitted</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-new" role="function">
<title>g_cclosure_new&#160;()</title>
<indexterm zone="g-cclosure-new"><primary sortas="cclosure_new">g_cclosure_new</primary></indexterm>
<programlisting language="C"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
g_cclosure_new (<parameter><link linkend="GCallback"><type>GCallback</type></link> callback_func</parameter>,
                <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>,
                <parameter><link linkend="GClosureNotify"><type>GClosureNotify</type></link> destroy_data</parameter>);</programlisting>
<para>Creates a new closure which invokes <parameter>callback_func</parameter>
 with <parameter>user_data</parameter>
 as
the last parameter.</para>
<para><parameter>destroy_data</parameter>
 will be called as a finalize notifier on the <link linkend="GClosure"><type>GClosure</type></link>.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-cclosure-new.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>callback_func</para></entry>
<entry role="parameter_description"><para>the function to invoke</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data to pass to <parameter>callback_func</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym> callback_func]</emphasis></entry></row>
<row><entry role="parameter_name"><para>destroy_data</para></entry>
<entry role="parameter_description"><para>destroy notify to be called when <parameter>user_data</parameter>
is no longer used</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="g-cclosure-new.returns" role="returns">
<title>Returns</title>
<para>a floating reference to a new <link linkend="GCClosure"><type>GCClosure</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="g-cclosure-new-swap" role="function">
<title>g_cclosure_new_swap&#160;()</title>
<indexterm zone="g-cclosure-new-swap"><primary sortas="cclosure_new_swap">g_cclosure_new_swap</primary></indexterm>
<programlisting language="C"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
g_cclosure_new_swap (<parameter><link linkend="GCallback"><type>GCallback</type></link> callback_func</parameter>,
                     <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>,
                     <parameter><link linkend="GClosureNotify"><type>GClosureNotify</type></link> destroy_data</parameter>);</programlisting>
<para>Creates a new closure which invokes <parameter>callback_func</parameter>
 with <parameter>user_data</parameter>
 as
the first parameter.</para>
<para><parameter>destroy_data</parameter>
 will be called as a finalize notifier on the <link linkend="GClosure"><type>GClosure</type></link>.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-cclosure-new-swap.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>callback_func</para></entry>
<entry role="parameter_description"><para>the function to invoke</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data to pass to <parameter>callback_func</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym> callback_func]</emphasis></entry></row>
<row><entry role="parameter_name"><para>destroy_data</para></entry>
<entry role="parameter_description"><para>destroy notify to be called when <parameter>user_data</parameter>
is no longer used</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="g-cclosure-new-swap.returns" role="returns">
<title>Returns</title>
<para>a floating reference to a new <link linkend="GCClosure"><type>GCClosure</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="g-cclosure-new-object" role="function">
<title>g_cclosure_new_object&#160;()</title>
<indexterm zone="g-cclosure-new-object"><primary sortas="cclosure_new_object">g_cclosure_new_object</primary></indexterm>
<programlisting language="C"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
g_cclosure_new_object (<parameter><link linkend="GCallback"><type>GCallback</type></link> callback_func</parameter>,
                       <parameter><link linkend="GObject"><type>GObject</type></link> *object</parameter>);</programlisting>
<para>A variant of <link linkend="g-cclosure-new"><function>g_cclosure_new()</function></link> which uses <parameter>object</parameter>
 as <parameter>user_data</parameter>
 and
calls <link linkend="g-object-watch-closure"><function>g_object_watch_closure()</function></link> on <parameter>object</parameter>
 and the created
closure. This function is useful when you have a callback closely
associated with a <link linkend="GObject"><type>GObject</type></link>, and want the callback to no longer run
after the object is is freed.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-cclosure-new-object.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>callback_func</para></entry>
<entry role="parameter_description"><para>the function to invoke</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>object</para></entry>
<entry role="parameter_description"><para>a <link linkend="GObject"><type>GObject</type></link> pointer to pass to <parameter>callback_func</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="g-cclosure-new-object.returns" role="returns">
<title>Returns</title>
<para> a new <link linkend="GCClosure"><type>GCClosure</type></link></para>
</refsect3></refsect2>
<refsect2 id="g-cclosure-new-object-swap" role="function">
<title>g_cclosure_new_object_swap&#160;()</title>
<indexterm zone="g-cclosure-new-object-swap"><primary sortas="cclosure_new_object_swap">g_cclosure_new_object_swap</primary></indexterm>
<programlisting language="C"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
g_cclosure_new_object_swap (<parameter><link linkend="GCallback"><type>GCallback</type></link> callback_func</parameter>,
                            <parameter><link linkend="GObject"><type>GObject</type></link> *object</parameter>);</programlisting>
<para>A variant of <link linkend="g-cclosure-new-swap"><function>g_cclosure_new_swap()</function></link> which uses <parameter>object</parameter>
 as <parameter>user_data</parameter>

and calls <link linkend="g-object-watch-closure"><function>g_object_watch_closure()</function></link> on <parameter>object</parameter>
 and the created
closure. This function is useful when you have a callback closely
associated with a <link linkend="GObject"><type>GObject</type></link>, and want the callback to no longer run
after the object is is freed.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-cclosure-new-object-swap.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>callback_func</para></entry>
<entry role="parameter_description"><para>the function to invoke</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>object</para></entry>
<entry role="parameter_description"><para>a <link linkend="GObject"><type>GObject</type></link> pointer to pass to <parameter>callback_func</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="g-cclosure-new-object-swap.returns" role="returns">
<title>Returns</title>
<para> a new <link linkend="GCClosure"><type>GCClosure</type></link></para>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-generic" role="function" condition="since:2.30">
<title>g_cclosure_marshal_generic&#160;()</title>
<indexterm zone="g-cclosure-marshal-generic" role="2.30"><primary sortas="cclosure_marshal_generic">g_cclosure_marshal_generic</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_generic (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                            <parameter><link linkend="GValue"><type>GValue</type></link> *return_gvalue</parameter>,
                            <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                            <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                            <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                            <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A generic marshaller function implemented via
<ulink url="http://sourceware.org/libffi/">libffi</ulink>.</para>
<para>Normally this function is not passed explicitly to <link linkend="g-signal-new"><function>g_signal_new()</function></link>,
but used automatically by GLib when specifying a <link linkend="NULL:CAPS"><literal>NULL</literal></link> marshaller.</para>
<refsect3 id="g-cclosure-marshal-generic.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_gvalue</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-2.30">2.30</link></para></refsect2>
<refsect2 id="g-closure-new-object" role="function">
<title>g_closure_new_object&#160;()</title>
<indexterm zone="g-closure-new-object"><primary sortas="closure_new_object">g_closure_new_object</primary></indexterm>
<programlisting language="C"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
g_closure_new_object (<parameter><link linkend="guint"><type>guint</type></link> sizeof_closure</parameter>,
                      <parameter><link linkend="GObject"><type>GObject</type></link> *object</parameter>);</programlisting>
<para>A variant of <link linkend="g-closure-new-simple"><function>g_closure_new_simple()</function></link> which stores <parameter>object</parameter>
 in the
<parameter>data</parameter>
 field of the closure and calls <link linkend="g-object-watch-closure"><function>g_object_watch_closure()</function></link> on
<parameter>object</parameter>
 and the created closure. This function is mainly useful
when implementing new types of closures.</para>
<refsect3 id="g-closure-new-object.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sizeof_closure</para></entry>
<entry role="parameter_description"><para>the size of the structure to allocate, must be at least
<literal>sizeof (GClosure)</literal></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>object</para></entry>
<entry role="parameter_description"><para>a <link linkend="GObject"><type>GObject</type></link> pointer to store in the <parameter>data</parameter>
field of the newly
allocated <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="g-closure-new-object.returns" role="returns">
<title>Returns</title>
<para>a newly allocated <link linkend="GClosure"><type>GClosure</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="g-closure-ref" role="function">
<title>g_closure_ref&#160;()</title>
<indexterm zone="g-closure-ref"><primary sortas="closure_ref">g_closure_ref</primary></indexterm>
<programlisting language="C"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
g_closure_ref (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>);</programlisting>
<para>Increments the reference count on a closure to force it staying
alive while the caller holds a pointer to it.</para>
<refsect3 id="g-closure-ref.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para><link linkend="GClosure"><type>GClosure</type></link> to increment the reference count on</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="g-closure-ref.returns" role="returns">
<title>Returns</title>
<para>The <parameter>closure</parameter>
passed in, for convenience. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="g-closure-sink" role="function">
<title>g_closure_sink&#160;()</title>
<indexterm zone="g-closure-sink"><primary sortas="closure_sink">g_closure_sink</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_sink (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>);</programlisting>
<para>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. <link linkend="g-closure-sink"><function>g_closure_sink()</function></link> 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, <link linkend="g-closure-sink"><function>g_closure_sink()</function></link> does nothing. The reason for the
existence of the floating state is to prevent cumbersome code
sequences like:</para>
<informalexample><programlisting role="example"><![CDATA[
closure = g_cclosure_new (cb_func, cb_data);
g_source_set_closure (source, closure);
g_closure_unref (closure); // GObject doesn't really need this
]]></programlisting></informalexample>
<para>
Because <link linkend="g-source-set-closure"><function>g_source_set_closure()</function></link> (and similar functions) take ownership of the
initial reference count, if it is unowned, we instead can write:</para>
<informalexample><programlisting role="example"><![CDATA[
g_source_set_closure (source, g_cclosure_new (cb_func, cb_data));
]]></programlisting></informalexample>
<para></para>
<para>Generally, this function is used together with <link linkend="g-closure-ref"><function>g_closure_ref()</function></link>. An example
of storing a closure for later notification looks like:</para>
<informalexample><programlisting role="example"><![CDATA[
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);
    }
}
]]></programlisting></informalexample>
<para></para>
<para>Because <link linkend="g-closure-sink"><function>g_closure_sink()</function></link> may decrement the reference count of a closure
(if it hasn't been called on <parameter>closure</parameter>
 yet) just like <link linkend="g-closure-unref"><function>g_closure_unref()</function></link>,
<link linkend="g-closure-ref"><function>g_closure_ref()</function></link> should be called prior to this function.</para>
<refsect3 id="g-closure-sink.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para><link linkend="GClosure"><type>GClosure</type></link> to decrement the initial reference count on, if it's
still being held</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-unref" role="function">
<title>g_closure_unref&#160;()</title>
<indexterm zone="g-closure-unref"><primary sortas="closure_unref">g_closure_unref</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_unref (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>);</programlisting>
<para>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.</para>
<refsect3 id="g-closure-unref.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para><link linkend="GClosure"><type>GClosure</type></link> to decrement the reference count on</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-invoke" role="function">
<title>g_closure_invoke&#160;()</title>
<indexterm zone="g-closure-invoke"><primary sortas="closure_invoke">g_closure_invoke</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_invoke (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                  <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                  <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                  <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                  <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>);</programlisting>
<para>Invokes the closure, i.e. executes the callback represented by the <parameter>closure</parameter>
.</para>
<refsect3 id="g-closure-invoke.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>optional</acronym>][<acronym>out</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_values</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>an array of
<link linkend="GValues"><type>GValues</type></link> holding the arguments on which to
invoke the callback of <parameter>closure</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_param_values]</emphasis></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>a context-dependent invocation hint. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-invalidate" role="function">
<title>g_closure_invalidate&#160;()</title>
<indexterm zone="g-closure-invalidate"><primary sortas="closure_invalidate">g_closure_invalidate</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_invalidate (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>);</programlisting>
<para>Sets a flag on the closure to indicate that its calling
environment has become invalid, and thus causes any future
invocations of <link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link> on this <parameter>closure</parameter>
 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 <link linkend="g-closure-invalidate"><function>g_closure_invalidate()</function></link>, make sure
that you've previously called <link linkend="g-closure-ref"><function>g_closure_ref()</function></link>.</para>
<para>Note that <link linkend="g-closure-invalidate"><function>g_closure_invalidate()</function></link> will also be called when the
reference count of a closure drops to zero (unless it has already
been invalidated before).</para>
<refsect3 id="g-closure-invalidate.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para><link linkend="GClosure"><type>GClosure</type></link> to invalidate</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-add-finalize-notifier" role="function">
<title>g_closure_add_finalize_notifier&#160;()</title>
<indexterm zone="g-closure-add-finalize-notifier"><primary sortas="closure_add_finalize_notifier">g_closure_add_finalize_notifier</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_add_finalize_notifier (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> notify_data</parameter>,
                                 <parameter><link linkend="GClosureNotify"><type>GClosureNotify</type></link> notify_func</parameter>);</programlisting>
<para>Registers a finalization notifier which will be called when the
reference count of <parameter>closure</parameter>
 goes down to 0. Multiple finalization
notifiers on a single closure are invoked in unspecified order. If
a single call to <link linkend="g-closure-unref"><function>g_closure_unref()</function></link> results in the closure being
both invalidated and finalized, then the invalidate notifiers will
be run before the finalize notifiers.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-closure-add-finalize-notifier.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>notify_data</para></entry>
<entry role="parameter_description"><para>data to pass to <parameter>notify_func</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym> notify_func]</emphasis></entry></row>
<row><entry role="parameter_name"><para>notify_func</para></entry>
<entry role="parameter_description"><para>the callback function to register</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-add-invalidate-notifier" role="function">
<title>g_closure_add_invalidate_notifier&#160;()</title>
<indexterm zone="g-closure-add-invalidate-notifier"><primary sortas="closure_add_invalidate_notifier">g_closure_add_invalidate_notifier</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_add_invalidate_notifier (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                   <parameter><link linkend="gpointer"><type>gpointer</type></link> notify_data</parameter>,
                                   <parameter><link linkend="GClosureNotify"><type>GClosureNotify</type></link> notify_func</parameter>);</programlisting>
<para>Registers an invalidation notifier which will be called when the
<parameter>closure</parameter>
 is invalidated with <link linkend="g-closure-invalidate"><function>g_closure_invalidate()</function></link>. Invalidation
notifiers are invoked before finalization notifiers, in an
unspecified order.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-closure-add-invalidate-notifier.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>notify_data</para></entry>
<entry role="parameter_description"><para>data to pass to <parameter>notify_func</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym> notify_func]</emphasis></entry></row>
<row><entry role="parameter_name"><para>notify_func</para></entry>
<entry role="parameter_description"><para>the callback function to register</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-remove-finalize-notifier" role="function">
<title>g_closure_remove_finalize_notifier&#160;()</title>
<indexterm zone="g-closure-remove-finalize-notifier"><primary sortas="closure_remove_finalize_notifier">g_closure_remove_finalize_notifier</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_remove_finalize_notifier (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                    <parameter><link linkend="gpointer"><type>gpointer</type></link> notify_data</parameter>,
                                    <parameter><link linkend="GClosureNotify"><type>GClosureNotify</type></link> notify_func</parameter>);</programlisting>
<para>Removes a finalization notifier.</para>
<para>Notice that notifiers are automatically removed after they are run.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-closure-remove-finalize-notifier.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>notify_data</para></entry>
<entry role="parameter_description"><para>data which was passed to <link linkend="g-closure-add-finalize-notifier"><function>g_closure_add_finalize_notifier()</function></link>
when registering <parameter>notify_func</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>notify_func</para></entry>
<entry role="parameter_description"><para>the callback function to remove</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-remove-invalidate-notifier" role="function">
<title>g_closure_remove_invalidate_notifier&#160;()</title>
<indexterm zone="g-closure-remove-invalidate-notifier"><primary sortas="closure_remove_invalidate_notifier">g_closure_remove_invalidate_notifier</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_remove_invalidate_notifier (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                      <parameter><link linkend="gpointer"><type>gpointer</type></link> notify_data</parameter>,
                                      <parameter><link linkend="GClosureNotify"><type>GClosureNotify</type></link> notify_func</parameter>);</programlisting>
<para>Removes an invalidation notifier.</para>
<para>Notice that notifiers are automatically removed after they are run.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-closure-remove-invalidate-notifier.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>notify_data</para></entry>
<entry role="parameter_description"><para>data which was passed to <link linkend="g-closure-add-invalidate-notifier"><function>g_closure_add_invalidate_notifier()</function></link>
when registering <parameter>notify_func</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>notify_func</para></entry>
<entry role="parameter_description"><para>the callback function to remove</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-new-simple" role="function">
<title>g_closure_new_simple&#160;()</title>
<indexterm zone="g-closure-new-simple"><primary sortas="closure_new_simple">g_closure_new_simple</primary></indexterm>
<programlisting language="C"><link linkend="GClosure"><returnvalue>GClosure</returnvalue></link>&#160;*
g_closure_new_simple (<parameter><link linkend="guint"><type>guint</type></link> sizeof_closure</parameter>,
                      <parameter><link linkend="gpointer"><type>gpointer</type></link> data</parameter>);</programlisting>
<para>Allocates a struct of the given size and initializes the initial
part as a <link linkend="GClosure"><type>GClosure</type></link>. This function is mainly useful when
implementing new types of closures.</para>
<informalexample><programlisting role="example"><![CDATA[
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;
}
]]></programlisting></informalexample>
<para></para>
<refsect3 id="g-closure-new-simple.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>sizeof_closure</para></entry>
<entry role="parameter_description"><para>the size of the structure to allocate, must be at least
<literal>sizeof (GClosure)</literal></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>data</para></entry>
<entry role="parameter_description"><para>data to store in the <parameter>data</parameter>
field of the newly allocated <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="g-closure-new-simple.returns" role="returns">
<title>Returns</title>
<para>a floating reference to a new <link linkend="GClosure"><type>GClosure</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="g-closure-set-marshal" role="function">
<title>g_closure_set_marshal&#160;()</title>
<indexterm zone="g-closure-set-marshal"><primary sortas="closure_set_marshal">g_closure_set_marshal</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_set_marshal (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                       <parameter><link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> marshal</parameter>);</programlisting>
<para>Sets the marshaller of <parameter>closure</parameter>
. The <literal>marshal_data</literal>
of <parameter>marshal</parameter>
 provides a way for a meta marshaller to provide additional
information to the marshaller. (See <link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>.) For
GObject's C predefined marshallers (the g_cclosure_marshal_*()
functions), what it provides is a callback function to use instead of
<parameter>closure->callback</parameter>
.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-closure-set-marshal.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-add-marshal-guards" role="function">
<title>g_closure_add_marshal_guards&#160;()</title>
<indexterm zone="g-closure-add-marshal-guards"><primary sortas="closure_add_marshal_guards">g_closure_add_marshal_guards</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_add_marshal_guards (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                              <parameter><link linkend="gpointer"><type>gpointer</type></link> pre_marshal_data</parameter>,
                              <parameter><link linkend="GClosureNotify"><type>GClosureNotify</type></link> pre_marshal_notify</parameter>,
                              <parameter><link linkend="gpointer"><type>gpointer</type></link> post_marshal_data</parameter>,
                              <parameter><link linkend="GClosureNotify"><type>GClosureNotify</type></link> post_marshal_notify</parameter>);</programlisting>
<para>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
<link linkend="g-object-watch-closure"><function>g_object_watch_closure()</function></link> for an example of marshal guards.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-closure-add-marshal-guards.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>pre_marshal_data</para></entry>
<entry role="parameter_description"><para>data to pass
to <parameter>pre_marshal_notify</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym> pre_marshal_notify]</emphasis></entry></row>
<row><entry role="parameter_name"><para>pre_marshal_notify</para></entry>
<entry role="parameter_description"><para>a function to call before the closure callback</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>post_marshal_data</para></entry>
<entry role="parameter_description"><para>data to pass
to <parameter>post_marshal_notify</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym> post_marshal_notify]</emphasis></entry></row>
<row><entry role="parameter_name"><para>post_marshal_notify</para></entry>
<entry role="parameter_description"><para>a function to call after the closure callback</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-closure-set-meta-marshal" role="function">
<title>g_closure_set_meta_marshal&#160;()</title>
<indexterm zone="g-closure-set-meta-marshal"><primary sortas="closure_set_meta_marshal">g_closure_set_meta_marshal</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_closure_set_meta_marshal (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                            <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                            <parameter><link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> meta_marshal</parameter>);</programlisting>
<para>Sets the meta marshaller of <parameter>closure</parameter>
.  A meta marshaller wraps
<parameter>closure->marshal</parameter>
 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 <link linkend="glib-genmarshal">glib-genmarshal</link>),
are used everywhere, but the way that we get the callback function
differs. In most cases we want to use <parameter>closure->callback</parameter>
, but in
other cases we want to use some different technique to retrieve the
callback function.</para>
<para>For example, class closures for signals (see
<link linkend="g-signal-type-cclosure-new"><function>g_signal_type_cclosure_new()</function></link>) 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
<parameter>marshal_data</parameter>
 argument.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="g-closure-set-meta-marshal.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>context-dependent data to pass
to <parameter>meta_marshal</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym> meta_marshal]</emphasis></entry></row>
<row><entry role="parameter_name"><para>meta_marshal</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-source-set-closure" role="function">
<title>g_source_set_closure&#160;()</title>
<indexterm zone="g-source-set-closure"><primary sortas="source_set_closure">g_source_set_closure</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_source_set_closure (<parameter><link linkend="GSource"><type>GSource</type></link> *source</parameter>,
                      <parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>);</programlisting>
<para>Set the callback for a source as a <link linkend="GClosure"><type>GClosure</type></link>.</para>
<para>If the source is not one of the standard GLib types, the <parameter>closure_callback</parameter>

and <parameter>closure_marshal</parameter>
 fields of the <link linkend="GSourceFuncs"><type>GSourceFuncs</type></link> structure must have been
filled in with pointers to appropriate functions.</para>
<refsect3 id="g-source-set-closure.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>source</para></entry>
<entry role="parameter_description"><para>the source</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>a <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-source-set-dummy-callback" role="function">
<title>g_source_set_dummy_callback&#160;()</title>
<indexterm zone="g-source-set-dummy-callback"><primary sortas="source_set_dummy_callback">g_source_set_dummy_callback</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_source_set_dummy_callback (<parameter><link linkend="GSource"><type>GSource</type></link> *source</parameter>);</programlisting>
<para>Sets a dummy callback for <parameter>source</parameter>
. The callback will do nothing, and
if the source expects a <link linkend="gboolean"><type>gboolean</type></link> return value, it will return <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>.
(If the source expects any other type of return value, it will return
a 0/<link linkend="NULL:CAPS"><literal>NULL</literal></link> value; whatever <link linkend="g-value-init"><function>g_value_init()</function></link> initializes a <link linkend="GValue"><type>GValue</type></link> to for
that type.)</para>
<para>If the source is not one of the standard GLib types, the
<parameter>closure_callback</parameter>
 and <parameter>closure_marshal</parameter>
 fields of the <link linkend="GSourceFuncs"><type>GSourceFuncs</type></link>
structure must have been filled in with pointers to appropriate
functions.</para>
<refsect3 id="g-source-set-dummy-callback.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>source</para></entry>
<entry role="parameter_description"><para>the source</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--VOID" role="function">
<title>g_cclosure_marshal_VOID__VOID&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--VOID"><primary sortas="cclosure_marshal_VOID__VOID">g_cclosure_marshal_VOID__VOID</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__VOID (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                               <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                               <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                               <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with no arguments.</para>
<refsect3 id="g-cclosure-marshal-VOID--VOID.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--BOOLEAN" role="function">
<title>g_cclosure_marshal_VOID__BOOLEAN&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--BOOLEAN"><primary sortas="cclosure_marshal_VOID__BOOLEAN">g_cclosure_marshal_VOID__BOOLEAN</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__BOOLEAN (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                  <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                  <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                  <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
boolean argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--BOOLEAN.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--CHAR" role="function">
<title>g_cclosure_marshal_VOID__CHAR&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--CHAR"><primary sortas="cclosure_marshal_VOID__CHAR">g_cclosure_marshal_VOID__CHAR</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__CHAR (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                               <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                               <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                               <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
character argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--CHAR.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--UCHAR" role="function">
<title>g_cclosure_marshal_VOID__UCHAR&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--UCHAR"><primary sortas="cclosure_marshal_VOID__UCHAR">g_cclosure_marshal_VOID__UCHAR</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__UCHAR (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
unsigned character argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--UCHAR.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--INT" role="function">
<title>g_cclosure_marshal_VOID__INT&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--INT"><primary sortas="cclosure_marshal_VOID__INT">g_cclosure_marshal_VOID__INT</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__INT (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                              <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                              <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                              <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                              <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                              <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
integer argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--INT.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--UINT" role="function">
<title>g_cclosure_marshal_VOID__UINT&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--UINT"><primary sortas="cclosure_marshal_VOID__UINT">g_cclosure_marshal_VOID__UINT</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__UINT (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                               <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                               <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                               <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with with a single
unsigned integer argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--UINT.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--LONG" role="function">
<title>g_cclosure_marshal_VOID__LONG&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--LONG"><primary sortas="cclosure_marshal_VOID__LONG">g_cclosure_marshal_VOID__LONG</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__LONG (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                               <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                               <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                               <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with with a single
long integer argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--LONG.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--ULONG" role="function">
<title>g_cclosure_marshal_VOID__ULONG&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--ULONG"><primary sortas="cclosure_marshal_VOID__ULONG">g_cclosure_marshal_VOID__ULONG</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__ULONG (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
unsigned long integer argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--ULONG.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--ENUM" role="function">
<title>g_cclosure_marshal_VOID__ENUM&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--ENUM"><primary sortas="cclosure_marshal_VOID__ENUM">g_cclosure_marshal_VOID__ENUM</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__ENUM (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                               <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                               <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                               <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
argument with an enumerated type.</para>
<refsect3 id="g-cclosure-marshal-VOID--ENUM.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--FLAGS" role="function">
<title>g_cclosure_marshal_VOID__FLAGS&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--FLAGS"><primary sortas="cclosure_marshal_VOID__FLAGS">g_cclosure_marshal_VOID__FLAGS</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__FLAGS (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
argument with a flags types.</para>
<refsect3 id="g-cclosure-marshal-VOID--FLAGS.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--FLOAT" role="function">
<title>g_cclosure_marshal_VOID__FLOAT&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--FLOAT"><primary sortas="cclosure_marshal_VOID__FLOAT">g_cclosure_marshal_VOID__FLOAT</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__FLOAT (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with one
single-precision floating point argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--FLOAT.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--DOUBLE" role="function">
<title>g_cclosure_marshal_VOID__DOUBLE&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--DOUBLE"><primary sortas="cclosure_marshal_VOID__DOUBLE">g_cclosure_marshal_VOID__DOUBLE</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__DOUBLE (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                 <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                 <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with one
double-precision floating point argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--DOUBLE.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--STRING" role="function">
<title>g_cclosure_marshal_VOID__STRING&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--STRING"><primary sortas="cclosure_marshal_VOID__STRING">g_cclosure_marshal_VOID__STRING</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__STRING (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                 <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                 <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single string
argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--STRING.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--PARAM" role="function">
<title>g_cclosure_marshal_VOID__PARAM&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--PARAM"><primary sortas="cclosure_marshal_VOID__PARAM">g_cclosure_marshal_VOID__PARAM</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__PARAM (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
argument of type <link linkend="GParamSpec"><type>GParamSpec</type></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--PARAM.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--BOXED" role="function">
<title>g_cclosure_marshal_VOID__BOXED&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--BOXED"><primary sortas="cclosure_marshal_VOID__BOXED">g_cclosure_marshal_VOID__BOXED</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__BOXED (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
argument which is any boxed pointer type.</para>
<refsect3 id="g-cclosure-marshal-VOID--BOXED.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--POINTER" role="function">
<title>g_cclosure_marshal_VOID__POINTER&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--POINTER"><primary sortas="cclosure_marshal_VOID__POINTER">g_cclosure_marshal_VOID__POINTER</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__POINTER (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                  <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                  <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                  <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single raw
pointer argument type.</para>
<para>If it is possible, it is better to use one of the more specific
functions such as <link linkend="g-cclosure-marshal-VOID--OBJECT"><function>g_cclosure_marshal_VOID__OBJECT()</function></link> or
<link linkend="g-cclosure-marshal-VOID--OBJECT"><function>g_cclosure_marshal_VOID__OBJECT()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--POINTER.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--OBJECT" role="function">
<title>g_cclosure_marshal_VOID__OBJECT&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--OBJECT"><primary sortas="cclosure_marshal_VOID__OBJECT">g_cclosure_marshal_VOID__OBJECT</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__OBJECT (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                 <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                 <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
<link linkend="GObject"><type>GObject</type></link> argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--OBJECT.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--VARIANT" role="function" condition="since:2.26">
<title>g_cclosure_marshal_VOID__VARIANT&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--VARIANT" role="2.26"><primary sortas="cclosure_marshal_VOID__VARIANT">g_cclosure_marshal_VOID__VARIANT</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__VARIANT (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                  <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                  <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                  <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with a single
<link linkend="GVariant"><type>GVariant</type></link> argument.</para>
<refsect3 id="g-cclosure-marshal-VOID--VARIANT.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-2.26">2.26</link></para></refsect2>
<refsect2 id="g-cclosure-marshal-STRING--OBJECT-POINTER" role="function">
<title>g_cclosure_marshal_STRING__OBJECT_POINTER&#160;()</title>
<indexterm zone="g-cclosure-marshal-STRING--OBJECT-POINTER"><primary sortas="cclosure_marshal_STRING__OBJECT_POINTER">g_cclosure_marshal_STRING__OBJECT_POINTER</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_STRING__OBJECT_POINTER
                               (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with handlers that
take a <link linkend="GObject"><type>GObject</type></link> and a pointer and produce a string.  It is highly
unlikely that your signal handler fits this description.</para>
<refsect3 id="g-cclosure-marshal-STRING--OBJECT-POINTER.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--UINT-POINTER" role="function">
<title>g_cclosure_marshal_VOID__UINT_POINTER&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--UINT-POINTER"><primary sortas="cclosure_marshal_VOID__UINT_POINTER">g_cclosure_marshal_VOID__UINT_POINTER</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__UINT_POINTER (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                       <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                       <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                       <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                       <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                       <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> function for use with signals with an unsigned int
and a pointer as arguments.</para>
<refsect3 id="g-cclosure-marshal-VOID--UINT-POINTER.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-BOOLEAN--FLAGS" role="function">
<title>g_cclosure_marshal_BOOLEAN__FLAGS&#160;()</title>
<indexterm zone="g-cclosure-marshal-BOOLEAN--FLAGS"><primary sortas="cclosure_marshal_BOOLEAN__FLAGS">g_cclosure_marshal_BOOLEAN__FLAGS</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_BOOLEAN__FLAGS (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                   <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                   <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                   <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                   <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                   <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> 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 <link linkend="g-signal-accumulator-true-handled"><function>g_signal_accumulator_true_handled()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-BOOLEAN--FLAGS.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-BOOLEAN--BOXED-BOXED" role="function">
<title>g_cclosure_marshal_BOOLEAN__BOXED_BOXED&#160;()</title>
<indexterm zone="g-cclosure-marshal-BOOLEAN--BOXED-BOXED"><primary sortas="cclosure_marshal_BOOLEAN__BOXED_BOXED">g_cclosure_marshal_BOOLEAN__BOXED_BOXED</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_BOOLEAN__BOXED_BOXED
                               (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> n_param_values</parameter>,
                                <parameter>const <link linkend="GValue"><type>GValue</type></link> *param_values</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> invocation_hint</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>);</programlisting>
<para>A <link linkend="GClosureMarshal"><type>GClosureMarshal</type></link> 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 <link linkend="g-signal-accumulator-true-handled"><function>g_signal_accumulator_true_handled()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-BOOLEAN--BOXED-BOXED.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-generic-va" role="function" condition="since:2.30">
<title>g_cclosure_marshal_generic_va&#160;()</title>
<indexterm zone="g-cclosure-marshal-generic-va" role="2.30"><primary sortas="cclosure_marshal_generic_va">g_cclosure_marshal_generic_va</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_generic_va (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                               <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                               <parameter><link linkend="va-list"><type>va_list</type></link> args_list</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                               <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                               <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>A generic <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> function implemented via
<ulink url="http://sourceware.org/libffi/">libffi</ulink>.</para>
<refsect3 id="g-cclosure-marshal-generic-va.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is
invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args_list</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args_list</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-2.30">2.30</link></para></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--VOIDv" role="function">
<title>g_cclosure_marshal_VOID__VOIDv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--VOIDv"><primary sortas="cclosure_marshal_VOID__VOIDv">g_cclosure_marshal_VOID__VOIDv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__VOIDv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--VOID"><function>g_cclosure_marshal_VOID__VOID()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--VOIDv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--BOOLEANv" role="function">
<title>g_cclosure_marshal_VOID__BOOLEANv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--BOOLEANv"><primary sortas="cclosure_marshal_VOID__BOOLEANv">g_cclosure_marshal_VOID__BOOLEANv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__BOOLEANv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                   <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                   <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                   <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                   <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                   <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                   <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--BOOLEAN"><function>g_cclosure_marshal_VOID__BOOLEAN()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--BOOLEANv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--CHARv" role="function">
<title>g_cclosure_marshal_VOID__CHARv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--CHARv"><primary sortas="cclosure_marshal_VOID__CHARv">g_cclosure_marshal_VOID__CHARv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__CHARv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--CHAR"><function>g_cclosure_marshal_VOID__CHAR()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--CHARv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--UCHARv" role="function">
<title>g_cclosure_marshal_VOID__UCHARv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--UCHARv"><primary sortas="cclosure_marshal_VOID__UCHARv">g_cclosure_marshal_VOID__UCHARv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__UCHARv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                 <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                 <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                 <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--UCHAR"><function>g_cclosure_marshal_VOID__UCHAR()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--UCHARv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--INTv" role="function">
<title>g_cclosure_marshal_VOID__INTv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--INTv"><primary sortas="cclosure_marshal_VOID__INTv">g_cclosure_marshal_VOID__INTv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__INTv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                               <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                               <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                               <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                               <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--INT"><function>g_cclosure_marshal_VOID__INT()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--INTv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--UINTv" role="function">
<title>g_cclosure_marshal_VOID__UINTv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--UINTv"><primary sortas="cclosure_marshal_VOID__UINTv">g_cclosure_marshal_VOID__UINTv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__UINTv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--UINT"><function>g_cclosure_marshal_VOID__UINT()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--UINTv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--LONGv" role="function">
<title>g_cclosure_marshal_VOID__LONGv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--LONGv"><primary sortas="cclosure_marshal_VOID__LONGv">g_cclosure_marshal_VOID__LONGv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__LONGv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--LONG"><function>g_cclosure_marshal_VOID__LONG()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--LONGv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--ULONGv" role="function">
<title>g_cclosure_marshal_VOID__ULONGv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--ULONGv"><primary sortas="cclosure_marshal_VOID__ULONGv">g_cclosure_marshal_VOID__ULONGv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__ULONGv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                 <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                 <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                 <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--ULONG"><function>g_cclosure_marshal_VOID__ULONG()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--ULONGv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--ENUMv" role="function">
<title>g_cclosure_marshal_VOID__ENUMv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--ENUMv"><primary sortas="cclosure_marshal_VOID__ENUMv">g_cclosure_marshal_VOID__ENUMv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__ENUMv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--ENUM"><function>g_cclosure_marshal_VOID__ENUM()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--ENUMv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--FLAGSv" role="function">
<title>g_cclosure_marshal_VOID__FLAGSv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--FLAGSv"><primary sortas="cclosure_marshal_VOID__FLAGSv">g_cclosure_marshal_VOID__FLAGSv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__FLAGSv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                 <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                 <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                 <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--FLAGS"><function>g_cclosure_marshal_VOID__FLAGS()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--FLAGSv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--FLOATv" role="function">
<title>g_cclosure_marshal_VOID__FLOATv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--FLOATv"><primary sortas="cclosure_marshal_VOID__FLOATv">g_cclosure_marshal_VOID__FLOATv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__FLOATv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                 <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                 <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                 <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--FLOAT"><function>g_cclosure_marshal_VOID__FLOAT()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--FLOATv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--DOUBLEv" role="function">
<title>g_cclosure_marshal_VOID__DOUBLEv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--DOUBLEv"><primary sortas="cclosure_marshal_VOID__DOUBLEv">g_cclosure_marshal_VOID__DOUBLEv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__DOUBLEv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                  <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                  <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                  <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                  <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--DOUBLE"><function>g_cclosure_marshal_VOID__DOUBLE()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--DOUBLEv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--STRINGv" role="function">
<title>g_cclosure_marshal_VOID__STRINGv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--STRINGv"><primary sortas="cclosure_marshal_VOID__STRINGv">g_cclosure_marshal_VOID__STRINGv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__STRINGv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                  <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                  <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                  <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                  <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--STRING"><function>g_cclosure_marshal_VOID__STRING()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--STRINGv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--PARAMv" role="function">
<title>g_cclosure_marshal_VOID__PARAMv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--PARAMv"><primary sortas="cclosure_marshal_VOID__PARAMv">g_cclosure_marshal_VOID__PARAMv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__PARAMv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                 <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                 <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                 <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--PARAM"><function>g_cclosure_marshal_VOID__PARAM()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--PARAMv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--BOXEDv" role="function">
<title>g_cclosure_marshal_VOID__BOXEDv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--BOXEDv"><primary sortas="cclosure_marshal_VOID__BOXEDv">g_cclosure_marshal_VOID__BOXEDv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__BOXEDv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                 <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                 <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                 <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                 <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                 <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--BOXED"><function>g_cclosure_marshal_VOID__BOXED()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--BOXEDv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--POINTERv" role="function">
<title>g_cclosure_marshal_VOID__POINTERv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--POINTERv"><primary sortas="cclosure_marshal_VOID__POINTERv">g_cclosure_marshal_VOID__POINTERv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__POINTERv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                   <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                   <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                   <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                   <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                   <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                   <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--POINTER"><function>g_cclosure_marshal_VOID__POINTER()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--POINTERv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--OBJECTv" role="function">
<title>g_cclosure_marshal_VOID__OBJECTv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--OBJECTv"><primary sortas="cclosure_marshal_VOID__OBJECTv">g_cclosure_marshal_VOID__OBJECTv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__OBJECTv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                  <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                  <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                  <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                  <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                  <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--OBJECT"><function>g_cclosure_marshal_VOID__OBJECT()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--OBJECTv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--VARIANTv" role="function">
<title>g_cclosure_marshal_VOID__VARIANTv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--VARIANTv"><primary sortas="cclosure_marshal_VOID__VARIANTv">g_cclosure_marshal_VOID__VARIANTv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__VARIANTv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                   <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                   <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                   <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                   <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                   <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                   <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--VARIANT"><function>g_cclosure_marshal_VOID__VARIANT()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--VARIANTv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-STRING--OBJECT-POINTERv" role="function">
<title>g_cclosure_marshal_STRING__OBJECT_POINTERv&#160;()</title>
<indexterm zone="g-cclosure-marshal-STRING--OBJECT-POINTERv"><primary sortas="cclosure_marshal_STRING__OBJECT_POINTERv">g_cclosure_marshal_STRING__OBJECT_POINTERv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_STRING__OBJECT_POINTERv
                               (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-STRING--OBJECT-POINTER"><function>g_cclosure_marshal_STRING__OBJECT_POINTER()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-STRING--OBJECT-POINTERv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-VOID--UINT-POINTERv" role="function">
<title>g_cclosure_marshal_VOID__UINT_POINTERv&#160;()</title>
<indexterm zone="g-cclosure-marshal-VOID--UINT-POINTERv"><primary sortas="cclosure_marshal_VOID__UINT_POINTERv">g_cclosure_marshal_VOID__UINT_POINTERv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_VOID__UINT_POINTERv
                               (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-VOID--UINT-POINTER"><function>g_cclosure_marshal_VOID__UINT_POINTER()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-VOID--UINT-POINTERv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-BOOLEAN--FLAGSv" role="function">
<title>g_cclosure_marshal_BOOLEAN__FLAGSv&#160;()</title>
<indexterm zone="g-cclosure-marshal-BOOLEAN--FLAGSv"><primary sortas="cclosure_marshal_BOOLEAN__FLAGSv">g_cclosure_marshal_BOOLEAN__FLAGSv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_BOOLEAN__FLAGSv (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                    <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                    <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                    <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                    <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                    <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                    <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-BOOLEAN--FLAGS"><function>g_cclosure_marshal_BOOLEAN__FLAGS()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-BOOLEAN--FLAGSv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-BOOLEAN--BOXED-BOXEDv" role="function">
<title>g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv&#160;()</title>
<indexterm zone="g-cclosure-marshal-BOOLEAN--BOXED-BOXEDv"><primary sortas="cclosure_marshal_BOOLEAN__BOXED_BOXEDv">g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv
                               (<parameter><link linkend="GClosure"><type>GClosure</type></link> *closure</parameter>,
                                <parameter><link linkend="GValue"><type>GValue</type></link> *return_value</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> instance</parameter>,
                                <parameter><link linkend="va-list"><type>va_list</type></link> args</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> marshal_data</parameter>,
                                <parameter><link linkend="int"><type>int</type></link> n_params</parameter>,
                                <parameter><link linkend="GType"><type>GType</type></link> *param_types</parameter>);</programlisting>
<para>The <link linkend="GVaClosureMarshal"><type>GVaClosureMarshal</type></link> equivalent to <link linkend="g-cclosure-marshal-BOOLEAN--BOXED-BOXED"><function>g_cclosure_marshal_BOOLEAN__BOXED_BOXED()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-BOOLEAN--BOXED-BOXEDv.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>the <link linkend="GClosure"><type>GClosure</type></link> to which the marshaller belongs</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>a <link linkend="GValue"><type>GValue</type></link> to store the return
value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the callback of <parameter>closure</parameter>
doesn't return a
value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>instance</para></entry>
<entry role="parameter_description"><para>the instance on which the closure is invoked. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject.TypeInstance]</emphasis></entry></row>
<row><entry role="parameter_name"><para>args</para></entry>
<entry role="parameter_description"><para>va_list of arguments to be passed to the closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>additional data specified when
registering the marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_params</para></entry>
<entry role="parameter_description"><para>the length of the <parameter>param_types</parameter>
array</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_types</para></entry>
<entry role="parameter_description"><para>the <link linkend="GType"><type>GType</type></link> of each argument from
<parameter>args</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_params]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>
<refsect1 id="gobject-Closures.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GClosure-struct" role="struct">
<title>struct GClosure</title>
<indexterm zone="GClosure-struct"><primary sortas="Closure">GClosure</primary></indexterm>
<programlisting language="C">struct GClosure {
  volatile       	guint	 in_marshal : 1;
  volatile       	guint	 is_invalid : 1;
};
</programlisting>
<para>A <link linkend="GClosure"><type>GClosure</type></link> represents a callback supplied by the programmer.</para>
<refsect3 id="GClosure.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para>volatile&#160;&#160;&#160;&#160;&#160;&#160;&#160;	<link linkend="guint"><type>guint</type></link>&#160;<structfield id="GClosure-struct.in-marshal">in_marshal</structfield>&#160;:&#160;1;</para></entry>
<entry role="struct_member_description"><para>Indicates whether the closure is currently being invoked with
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link></para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para>volatile&#160;&#160;&#160;&#160;&#160;&#160;&#160;	<link linkend="guint"><type>guint</type></link>&#160;<structfield id="GClosure-struct.is-invalid">is_invalid</structfield>&#160;:&#160;1;</para></entry>
<entry role="struct_member_description"><para>Indicates whether the closure has been invalidated by
<link linkend="g-closure-invalidate"><function>g_closure_invalidate()</function></link></para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>
<refsect2 id="G-TYPE-CLOSURE:CAPS" role="macro">
<title>G_TYPE_CLOSURE</title>
<indexterm zone="G-TYPE-CLOSURE:CAPS"><primary sortas="TYPE_CLOSURE">G_TYPE_CLOSURE</primary></indexterm>
<programlisting language="C">#define G_TYPE_CLOSURE (g_closure_get_type ())
</programlisting>
<para>The <link linkend="GType"><type>GType</type></link> for <link linkend="GClosure"><type>GClosure</type></link>.</para>
</refsect2>
<refsect2 id="GCClosure" role="struct">
<title>struct GCClosure</title>
<indexterm zone="GCClosure"><primary sortas="CClosure">GCClosure</primary></indexterm>
<programlisting language="C">struct GCClosure {
  GClosure&#160;closure;
  gpointer&#160;callback;
};
</programlisting>
<para>A <link linkend="GCClosure"><type>GCClosure</type></link> is a specialization of <link linkend="GClosure"><type>GClosure</type></link> for C function callbacks.</para>
<refsect3 id="GCClosure.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><link linkend="GClosure"><type>GClosure</type></link>&#160;<structfield id="GCClosure.closure">closure</structfield>;</para></entry>
<entry role="struct_member_description"><para>the <link linkend="GClosure"><type>GClosure</type></link></para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="gpointer"><type>gpointer</type></link>&#160;<structfield id="GCClosure.callback">callback</structfield>;</para></entry>
<entry role="struct_member_description"><para>the callback function</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>
<refsect2 id="g-cclosure-marshal-BOOL--FLAGS" role="macro">
<title>g_cclosure_marshal_BOOL__FLAGS</title>
<indexterm zone="g-cclosure-marshal-BOOL--FLAGS"><primary sortas="cclosure_marshal_BOOL__FLAGS">g_cclosure_marshal_BOOL__FLAGS</primary></indexterm>
<programlisting language="C">#define             g_cclosure_marshal_BOOL__FLAGS</programlisting>
<para>An old alias for <link linkend="g-cclosure-marshal-BOOLEAN--FLAGS"><function>g_cclosure_marshal_BOOLEAN__FLAGS()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-BOOL--FLAGS.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="g-cclosure-marshal-BOOL--BOXED-BOXED" role="macro">
<title>g_cclosure_marshal_BOOL__BOXED_BOXED</title>
<indexterm zone="g-cclosure-marshal-BOOL--BOXED-BOXED"><primary sortas="cclosure_marshal_BOOL__BOXED_BOXED">g_cclosure_marshal_BOOL__BOXED_BOXED</primary></indexterm>
<programlisting language="C">#define             g_cclosure_marshal_BOOL__BOXED_BOXED</programlisting>
<para>An old alias for <link linkend="g-cclosure-marshal-BOOLEAN--BOXED-BOXED"><function>g_cclosure_marshal_BOOLEAN__BOXED_BOXED()</function></link>.</para>
<refsect3 id="g-cclosure-marshal-BOOL--BOXED-BOXED.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>closure</para></entry>
<entry role="parameter_description"><para>A <link linkend="GClosure"><type>GClosure</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>return_value</para></entry>
<entry role="parameter_description"><para>A <link linkend="GValue"><type>GValue</type></link> to store the return value. May be <link linkend="NULL:CAPS"><literal>NULL</literal></link>
if the callback of closure doesn't return a value.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_param_values</para></entry>
<entry role="parameter_description"><para>The length of the <parameter>param_values</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>param_values</para></entry>
<entry role="parameter_description"><para>An array of <link linkend="GValues"><type>GValues</type></link> holding the arguments
on which to invoke the callback of closure.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>invocation_hint</para></entry>
<entry role="parameter_description"><para>The invocation hint given as the last argument to
<link linkend="g-closure-invoke"><function>g_closure_invoke()</function></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>marshal_data</para></entry>
<entry role="parameter_description"><para>Additional data specified when registering the
marshaller, see <link linkend="g-closure-set-marshal"><function>g_closure_set_marshal()</function></link> and
<link linkend="g-closure-set-meta-marshal"><function>g_closure_set_meta_marshal()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>

</refentry>
