1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GObject Introspection Reference Manual: GIUnionInfo</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7 <link rel="home" href="index.html" title="GObject Introspection Reference Manual">
8 <link rel="up" href="ch01.html" title="GIRepository">
9 <link rel="prev" href="gi-GIStructInfo.html" title="GIStructInfo">
10 <link rel="next" href="gi-GIObjectInfo.html" title="GIObjectInfo">
11 <meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
16 <td width="100%" align="left">
17 <a href="#" class="shortcut">Top</a>
19 <a href="#gi-GIUnionInfo.description" class="shortcut">Description</a>
21 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
22 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
23 <td><a accesskey="p" href="gi-GIStructInfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
24 <td><a accesskey="n" href="gi-GIObjectInfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
26 <div class="refentry">
27 <a name="gi-GIUnionInfo"></a><div class="titlepage"></div>
28 <div class="refnamediv"><table width="100%"><tr>
30 <h2><span class="refentrytitle"><a name="gi-GIUnionInfo.top_of_page"></a>GIUnionInfo</span></h2>
31 <p>GIUnionInfo — Struct representing a union.</p>
33 <td valign="top" align="right"></td>
35 <div class="refsynopsisdiv">
36 <a name="gi-GIUnionInfo.synopsis"></a><h2>Synopsis</h2>
37 <pre class="synopsis">typedef <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo">GIUnionInfo</a>;
38 <span class="returnvalue">gint</span> <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-n-fields" title="g_union_info_get_n_fields ()">g_union_info_get_n_fields</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);
39 <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="returnvalue">GIFieldInfo</span></a> * <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-field" title="g_union_info_get_field ()">g_union_info_get_field</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>,
40 <em class="parameter"><code><span class="type">gint</span> n</code></em>);
41 <span class="returnvalue">gint</span> <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-n-methods" title="g_union_info_get_n_methods ()">g_union_info_get_n_methods</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);
42 <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="returnvalue">GIFunctionInfo</span></a> * <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-method" title="g_union_info_get_method ()">g_union_info_get_method</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>,
43 <em class="parameter"><code><span class="type">gint</span> n</code></em>);
44 <span class="returnvalue">gboolean</span> <a class="link" href="gi-GIUnionInfo.html#g-union-info-is-discriminated" title="g_union_info_is_discriminated ()">g_union_info_is_discriminated</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);
45 <span class="returnvalue">gint</span> <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-discriminator-offset" title="g_union_info_get_discriminator_offset ()">g_union_info_get_discriminator_offset</a>
46 (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);
47 <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="returnvalue">GITypeInfo</span></a> * <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-discriminator-type" title="g_union_info_get_discriminator_type ()">g_union_info_get_discriminator_type</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);
48 <a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="returnvalue">GIConstantInfo</span></a> * <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-discriminator" title="g_union_info_get_discriminator ()">g_union_info_get_discriminator</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>,
49 <em class="parameter"><code><span class="type">gint</span> n</code></em>);
50 <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="returnvalue">GIFunctionInfo</span></a> * <a class="link" href="gi-GIUnionInfo.html#g-union-info-find-method" title="g_union_info_find_method ()">g_union_info_find_method</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>,
51 <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
52 <span class="returnvalue">gsize</span> <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-size" title="g_union_info_get_size ()">g_union_info_get_size</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);
53 <span class="returnvalue">gsize</span> <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-alignment" title="g_union_info_get_alignment ()">g_union_info_get_alignment</a> (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);
56 <div class="refsect1">
57 <a name="gi-GIUnionInfo.description"></a><h2>Description</h2>
59 GIUnionInfo represents a union type.
62 A union has methods and fields. Unions can optionally have a
63 discriminator, which is a field deciding what type of real union
64 fields is valid for specified instance.
68 <div class="refsect1">
69 <a name="gi-giobjectinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
70 <pre class="synopsis">
71 <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
72 +----<a class="link" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">GIRegisteredTypeInfo</a>
79 <div class="refsect1">
80 <a name="gi-GIUnionInfo.details"></a><h2>Details</h2>
81 <div class="refsect2">
82 <a name="GIUnionInfo"></a><h3>GIUnionInfo</h3>
83 <pre class="programlisting">typedef GIBaseInfo GIUnionInfo;
90 <div class="refsect2">
91 <a name="g-union-info-get-n-fields"></a><h3>g_union_info_get_n_fields ()</h3>
92 <pre class="programlisting"><span class="returnvalue">gint</span> g_union_info_get_n_fields (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);</pre>
94 Obtain the number of fields this union has.
96 <div class="variablelist"><table border="0" class="variablelist">
98 <col align="left" valign="top">
103 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
104 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
108 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
109 <td>number of fields</td>
115 <div class="refsect2">
116 <a name="g-union-info-get-field"></a><h3>g_union_info_get_field ()</h3>
117 <pre class="programlisting"><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="returnvalue">GIFieldInfo</span></a> * g_union_info_get_field (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>,
118 <em class="parameter"><code><span class="type">gint</span> n</code></em>);</pre>
120 Obtain the type information for field with specified index.
122 <div class="variablelist"><table border="0" class="variablelist">
124 <col align="left" valign="top">
129 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
130 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
134 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
135 <td>a field index</td>
138 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
139 <td>the <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
140 when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
147 <div class="refsect2">
148 <a name="g-union-info-get-n-methods"></a><h3>g_union_info_get_n_methods ()</h3>
149 <pre class="programlisting"><span class="returnvalue">gint</span> g_union_info_get_n_methods (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);</pre>
151 Obtain the number of methods this union has.
153 <div class="variablelist"><table border="0" class="variablelist">
155 <col align="left" valign="top">
160 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
161 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
165 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
166 <td>number of methods</td>
172 <div class="refsect2">
173 <a name="g-union-info-get-method"></a><h3>g_union_info_get_method ()</h3>
174 <pre class="programlisting"><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="returnvalue">GIFunctionInfo</span></a> * g_union_info_get_method (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>,
175 <em class="parameter"><code><span class="type">gint</span> n</code></em>);</pre>
177 Obtain the type information for method with specified index.
179 <div class="variablelist"><table border="0" class="variablelist">
181 <col align="left" valign="top">
186 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
187 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
191 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
192 <td>a method index</td>
195 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
196 <td>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
197 when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
204 <div class="refsect2">
205 <a name="g-union-info-is-discriminated"></a><h3>g_union_info_is_discriminated ()</h3>
206 <pre class="programlisting"><span class="returnvalue">gboolean</span> g_union_info_is_discriminated (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);</pre>
208 Return true if this union contains discriminator field.
210 <div class="variablelist"><table border="0" class="variablelist">
212 <col align="left" valign="top">
217 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
218 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
222 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
224 <code class="literal">TRUE</code> if this is a discriminated union, <code class="literal">FALSE</code> otherwise</td>
230 <div class="refsect2">
231 <a name="g-union-info-get-discriminator-offset"></a><h3>g_union_info_get_discriminator_offset ()</h3>
232 <pre class="programlisting"><span class="returnvalue">gint</span> g_union_info_get_discriminator_offset
233 (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);</pre>
235 Returns offset of the discriminator field in the structure.
237 <div class="variablelist"><table border="0" class="variablelist">
239 <col align="left" valign="top">
244 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
245 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
249 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
250 <td>offset in bytes of the discriminator. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
257 <div class="refsect2">
258 <a name="g-union-info-get-discriminator-type"></a><h3>g_union_info_get_discriminator_type ()</h3>
259 <pre class="programlisting"><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="returnvalue">GITypeInfo</span></a> * g_union_info_get_discriminator_type (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);</pre>
261 Obtain the type information of the union discriminator.
263 <div class="variablelist"><table border="0" class="variablelist">
265 <col align="left" valign="top">
270 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
271 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
275 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
276 <td>the <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
277 when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
284 <div class="refsect2">
285 <a name="g-union-info-get-discriminator"></a><h3>g_union_info_get_discriminator ()</h3>
286 <pre class="programlisting"><a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="returnvalue">GIConstantInfo</span></a> * g_union_info_get_discriminator (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>,
287 <em class="parameter"><code><span class="type">gint</span> n</code></em>);</pre>
289 Obtain discriminator value assigned for n-th union field, i.e. n-th
290 union field is the active one if discriminator contains this
293 <div class="variablelist"><table border="0" class="variablelist">
295 <col align="left" valign="top">
300 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
301 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
305 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
306 <td>a union field index</td>
309 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
310 <td>the <a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="type">GIConstantInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
311 when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
318 <div class="refsect2">
319 <a name="g-union-info-find-method"></a><h3>g_union_info_find_method ()</h3>
320 <pre class="programlisting"><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="returnvalue">GIFunctionInfo</span></a> * g_union_info_find_method (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>,
321 <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
323 Obtain the type information for method named <em class="parameter"><code>name</code></em>.
325 <div class="variablelist"><table border="0" class="variablelist">
327 <col align="left" valign="top">
332 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
333 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
337 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
338 <td>a method name</td>
341 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
342 <td>the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>, free it with <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a>
343 when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
350 <div class="refsect2">
351 <a name="g-union-info-get-size"></a><h3>g_union_info_get_size ()</h3>
352 <pre class="programlisting"><span class="returnvalue">gsize</span> g_union_info_get_size (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);</pre>
354 Obtain the total size of the union.
356 <div class="variablelist"><table border="0" class="variablelist">
358 <col align="left" valign="top">
363 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
364 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
368 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
369 <td>size of the union in bytes</td>
375 <div class="refsect2">
376 <a name="g-union-info-get-alignment"></a><h3>g_union_info_get_alignment ()</h3>
377 <pre class="programlisting"><span class="returnvalue">gsize</span> g_union_info_get_alignment (<em class="parameter"><code><a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a> *info</code></em>);</pre>
379 Obtain the required alignment of the union.
381 <div class="variablelist"><table border="0" class="variablelist">
383 <col align="left" valign="top">
388 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
389 <td>a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
393 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
394 <td>required alignment in bytes</td>
403 Generated by GTK-Doc V1.19.1</div>