KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/22697/root/usr/share/gtk-doc/html/gobject/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/22697/root/usr/share/gtk-doc/html/gobject/glib-genmarshal.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>glib-genmarshal</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="index.html" title="GObject Reference Manual">
<link rel="up" href="rn02.html" title="Tools Reference">
<link rel="prev" href="glib-mkenums.html" title="glib-mkenums">
<link rel="next" href="gobject-query.html" title="gobject-query">
<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="preface" href="pr01.html" title="Introduction">
<link rel="part" href="pt01.html" title="Part&#160;I.&#160;Concepts">
<link rel="chapter" href="ch01.html" title="Background">
<link rel="chapter" href="ch02.html" title="The Glib Dynamic Type System">
<link rel="chapter" href="chapter-gobject.html" title="The GObject base class">
<link rel="chapter" href="chapter-signal.html" title="The GObject messaging system">
<link rel="reference" href="rn01.html" title="API Reference">
<link rel="reference" href="rn02.html" title="Tools Reference">
<link rel="part" href="pt02.html" title="Part&#160;IV.&#160;Tutorial">
<link rel="chapter" href="howto-gobject.html" title="How To define and implement a new GObject?">
<link rel="chapter" href="howto-interface.html" title="How To define and implement Interfaces?">
<link rel="chapter" href="howto-signals.html" title="Howto create and use signals">
<link rel="part" href="pt03.html" title="Part&#160;V.&#160;Related Tools">
<link rel="chapter" href="tools-gob.html" title="GObject builder">
<link rel="chapter" href="tools-ginspector.html" title="Graphical inspection of Gobjects">
<link rel="chapter" href="tools-refdb.html" title="Debugging reference count problems">
<link rel="chapter" href="tools-gtkdoc.html" title="Writing API docs">
<link rel="index" href="ix01.html" title="Index">
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
<link rel="index" href="ix07.html" title="Index of new symbols in 2.10">
<link rel="index" href="ix08.html" title="Index of new symbols in 2.12">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="glib-mkenums.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="rn02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GObject Reference Manual</th>
<td><a accesskey="n" href="gobject-query.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry" lang="en">
<a name="glib-genmarshal"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">glib-genmarshal</span></h2>
<p>glib-genmarshal &#8212; C code marshaller generation utility for GLib closures</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="cmdsynopsis"><p><code class="command">glib-genmarshal</code>  [options...] [files...]</p></div>
</div>
<div class="refsect1" lang="en">
<a name="id2802640"></a><h2>Description</h2>
<p><span><strong class="command">glib-genmarshal</strong></span> is a small utility that generates C code 
marshallers for callback functions of the GClosure mechanism in the GObject 
sublibrary of GLib. The marshaller functions have a standard signature, 
they get passed in the invoking closure, an array of value structures holding
the callback function parameters and a value structure for the return value 
of the callback. The marshaller is then responsible to call the respective C 
code function of the closure with all the parameters on the stack and to 
collect its return value.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2802662"></a><h2>Invocation</h2>
<p><span><strong class="command">glib-genmarshal</strong></span> takes a list of marshallers to generate as 
input. The marshaller list is either read from standard input or from files
passed as additional arguments on the command line.
</p>
<div class="refsect2" lang="en">
<a name="id2802678"></a><h3>Options</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><code class="option">--header</code></span></td>
<td><p>
Generate header file contents of the marshallers.
</p></td>
</tr>
<tr>
<td>
<span class="term"><code class="option">--body</code></span></td>
<td><p>
Generate C code file contents of the marshallers.
</p></td>
</tr>
<tr>
<td>
<span class="term"><code class="option">--prefix=string</code>, <code class="option">--prefix string</code></span></td>
<td><p>
Specify marshaller prefix. The default prefix is <code class="literal">`g_cclosure_marshal'</code>.
</p></td>
</tr>
<tr>
<td>
<span class="term"><code class="option">--skip-source</code></span></td>
<td><p>
Skip source location remarks in generated comments.
</p></td>
</tr>
<tr>
<td>
<span class="term"><code class="option">--nostdinc</code></span></td>
<td><p>
Do not use the standard marshallers of the GObject library, and skip 
<code class="filename">gmarshal.h</code> include directive in generated header files.
</p></td>
</tr>
<tr>
<td>
<span class="term"><code class="option">--g-fatal-warnings</code></span></td>
<td><p>
Make warnings fatal, that is, exit immediately once a warning occurs.
</p></td>
</tr>
<tr>
<td>
<span class="term"><code class="option">-h</code>, <code class="option">--help</code></span></td>
<td><p>
Print brief help and exit.
</p></td>
</tr>
<tr>
<td>
<span class="term"><code class="option">-v</code>, <code class="option">--version</code></span></td>
<td><p>
Print version and exit.
</p></td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2802813"></a><h3>Marshaller list format</h3>
<p>
The marshaller lists are processed line by line, a line can contain a
comment in the form of
</p>
<pre class="programlisting">
# this is a comment
</pre>
<p>
or a marshaller specification of the form
</p>
<pre class="programlisting">
<em class="replaceable"><code>RTYPE</code></em>:<em class="replaceable"><code>PTYPE</code></em>
<em class="replaceable"><code>RTYPE</code></em>:<em class="replaceable"><code>PTYPE</code></em>,<em class="replaceable"><code>PTYPE</code></em>
<em class="replaceable"><code>RTYPE</code></em>:<em class="replaceable"><code>PTYPE</code></em>,<em class="replaceable"><code>PTYPE</code></em>,<em class="replaceable"><code>PTYPE</code></em>
</pre>
<p>
(up to 16 <em class="replaceable"><code>PTYPE</code></em>s may be present).
</p>
<p>
The <em class="replaceable"><code>RTYPE</code></em> part specifies the callback's return 
type and the <em class="replaceable"><code>PTYPE</code></em>s right to the colon specify 
the callback's parameter list, except for the first and the last arguments 
which are always pointers.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2802886"></a><h3>Parameter types</h3>
<p>
Currently, the following types are supported:
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="replaceable"><code>VOID</code></em></span></td>
<td><p>
indicates no return type, or no extra parameters. 
If <em class="replaceable"><code>VOID</code></em> is used as the parameter list, no 
additional parameters may be present.
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>BOOLEAN</code></em></span></td>
<td><p>
for boolean types (gboolean)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>CHAR</code></em></span></td>
<td><p>
for signed char types (gchar)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>UCHAR</code></em></span></td>
<td><p>
for unsigned char types (guchar)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>INT</code></em></span></td>
<td><p>
for signed integer types (gint)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>UINT</code></em></span></td>
<td><p>
for unsigned integer types (guint)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>LONG</code></em></span></td>
<td><p>
for signed long integer types (glong)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>ULONG</code></em></span></td>
<td><p>
for unsigned long integer types (gulong)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>INT64</code></em></span></td>
<td><p>
for signed 64bit integer types (gint64)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>UINT64</code></em></span></td>
<td><p>
for unsigned 64bit integer types (guint64)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>ENUM</code></em></span></td>
<td><p>
for enumeration types (gint)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>FLAGS</code></em></span></td>
<td><p>
for flag enumeration types (guint)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>FLOAT</code></em></span></td>
<td><p>
for single-precision float types (gfloat)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>DOUBLE</code></em></span></td>
<td><p>
for double-precision float types (gdouble)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>STRING</code></em></span></td>
<td><p>
for string types (gchar*)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>BOXED</code></em></span></td>
<td><p>
for boxed (anonymous but reference counted) types (GBoxed*)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>PARAM</code></em></span></td>
<td><p>
for GParamSpec or derived types (GParamSpec*)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>POINTER</code></em></span></td>
<td><p>
for anonymous pointer types (gpointer)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>OBJECT</code></em></span></td>
<td><p>
for GObject or derived types (GObject*)
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>NONE</code></em></span></td>
<td><p>
deprecated alias for <em class="replaceable"><code>VOID</code></em>
</p></td>
</tr>
<tr>
<td>
<span class="term"><em class="replaceable"><code>BOOL</code></em></span></td>
<td><p>
deprecated alias for <em class="replaceable"><code>BOOLEAN</code></em>
</p></td>
</tr>
</tbody>
</table></div>
<p>
</p>
</div>
</div>
<div class="refsect1" lang="en">
<a name="id2803180"></a><h2>Example</h2>
<p>
To generate marshallers for the following callback functions:
</p>
<pre class="programlisting">
void   foo (gpointer data1,
            gpointer data2);
void   bar (gpointer data1,
            gint     param1,
            gpointer data2);
gfloat baz (gpointer data1,
            gboolean param1,
            guchar   param2,
            gpointer data2);
</pre>
<p>
The marshaller list has to look like this:
</p>
<pre class="programlisting">
VOID:VOID
VOID:INT
FLOAT:BOOLEAN,UCHAR
</pre>
<p>
The generated marshallers have the arguments encoded in their function name. 
For this particular list, they are
</p>
<pre class="programlisting">
g_cclosure_marshal_VOID__VOID(),
g_cclosure_marshal_VOID__INT(), 
g_cclosure_marshal_FLOAT__BOOLEAN_UCHAR().
</pre>
<p>
They can be used directly for GClosures or be passed in as the 
GSignalCMarshaller c_marshaller; argument upon creation of signals:
</p>
<pre class="programlisting">
GClosure *cc_foo, *cc_bar, *cc_baz;

cc_foo = g_cclosure_new (NULL, foo, NULL);
g_closure_set_marshal (cc_foo, g_cclosure_marshal_VOID__VOID);
cc_bar = g_cclosure_new (NULL, bar, NULL);
g_closure_set_marshal (cc_bar, g_cclosure_marshal_VOID__INT);
cc_baz = g_cclosure_new (NULL, baz, NULL);
g_closure_set_marshal (cc_baz, g_cclosure_marshal_FLOAT__BOOLEAN_UCHAR);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2803240"></a><h2>See also</h2>
<p>
<span><strong class="command">glib-mkenums</strong></span>(1)
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2803255"></a><h2>Bugs</h2>
<p>
None known yet.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2803265"></a><h2>Author</h2>
<p><span><strong class="command">glib-genmarshal</strong></span> has been written by Tim Janik 
<code class="email">&lt;<a href="mailto:timj@gtk.org">timj@gtk.org</a>&gt;</code>.
</p>
<p>
This manual page was provided by Tim Janik <code class="email">&lt;<a href="mailto:timj@gtk.org">timj@gtk.org</a>&gt;</code>.
</p>
</div>
</div>
</body>
</html>

Anon7 - 2021