7be73a9adcc4ca8c5cfc323bcfa423133829e071
[platform/upstream/gobject-introspection.git] / docs / reference / html / gi-GIFieldInfo.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GObject Introspection Reference Manual: GIFieldInfo</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-GIConstantInfo.html" title="GIConstantInfo">
10 <link rel="next" href="gi-GIPropertyInfo.html" title="GIPropertyInfo">
11 <meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
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>
18                    | 
19                   <a href="#gi-GIFieldInfo.description" class="shortcut">Description</a>
20 </td>
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-GIConstantInfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
24 <td><a accesskey="n" href="gi-GIPropertyInfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
25 </tr></table>
26 <div class="refentry">
27 <a name="gi-GIFieldInfo"></a><div class="titlepage"></div>
28 <div class="refnamediv"><table width="100%"><tr>
29 <td valign="top">
30 <h2><span class="refentrytitle"><a name="gi-GIFieldInfo.top_of_page"></a>GIFieldInfo</span></h2>
31 <p>GIFieldInfo — Struct representing a struct or union field</p>
32 </td>
33 <td valign="top" align="right"></td>
34 </tr></table></div>
35 <div class="refsynopsisdiv">
36 <a name="gi-GIFieldInfo.synopsis"></a><h2>Synopsis</h2>
37 <pre class="synopsis">#define             <a class="link" href="gi-GIFieldInfo.html#GI-IS-FIELD-INFO:CAPS" title="GI_IS_FIELD_INFO()">GI_IS_FIELD_INFO</a>                    (info)
38 typedef             <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo">GIFieldInfo</a>;
39 enum                <a class="link" href="gi-GIFieldInfo.html#GIFieldInfoFlags" title="enum GIFieldInfoFlags">GIFieldInfoFlags</a>;
40 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gi-GIFieldInfo.html#g-field-info-get-field" title="g_field_info_get_field ()">g_field_info_get_field</a>              (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *field_info</code></em>,
41                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> mem</code></em>,
42                                                          <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);
43 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gi-GIFieldInfo.html#g-field-info-set-field" title="g_field_info_set_field ()">g_field_info_set_field</a>              (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *field_info</code></em>,
44                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> mem</code></em>,
45                                                          <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);
46 <a class="link" href="gi-GIFieldInfo.html#GIFieldInfoFlags" title="enum GIFieldInfoFlags"><span class="returnvalue">GIFieldInfoFlags</span></a>    <a class="link" href="gi-GIFieldInfo.html#g-field-info-get-flags" title="g_field_info_get_flags ()">g_field_info_get_flags</a>              (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *info</code></em>);
47 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gi-GIFieldInfo.html#g-field-info-get-offset" title="g_field_info_get_offset ()">g_field_info_get_offset</a>             (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *info</code></em>);
48 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gi-GIFieldInfo.html#g-field-info-get-size" title="g_field_info_get_size ()">g_field_info_get_size</a>               (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *info</code></em>);
49 <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="returnvalue">GITypeInfo</span></a> *        <a class="link" href="gi-GIFieldInfo.html#g-field-info-get-type" title="g_field_info_get_type ()">g_field_info_get_type</a>               (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *info</code></em>);
50 </pre>
51 </div>
52 <div class="refsect1">
53 <a name="gi-GIFieldInfo.description"></a><h2>Description</h2>
54 <p>
55 A GIFieldInfo struct represents a field of a struct (see <a class="link" href="gi-GIStructInfo.html#GIStructInfo" title="GIStructInfo"><span class="type">GIStructInfo</span></a>),
56 union (see <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>) or an object (see <a class="link" href="gi-GIObjectInfo.html#GIObjectInfo" title="GIObjectInfo"><span class="type">GIObjectInfo</span></a>). The GIFieldInfo
57 is fetched by calling <a class="link" href="gi-GIStructInfo.html#g-struct-info-get-field" title="g_struct_info_get_field ()"><code class="function">g_struct_info_get_field()</code></a>, <a class="link" href="gi-GIUnionInfo.html#g-union-info-get-field" title="g_union_info_get_field ()"><code class="function">g_union_info_get_field()</code></a>
58 or <a class="link" href="gi-GIObjectInfo.html#g-object-info-get-field" title="g_object_info_get_field ()"><code class="function">g_object_info_get_field()</code></a>.
59 A field has a size, type and a struct offset asssociated and a set of flags,
60 which is currently <a class="link" href="gi-GIFieldInfo.html#GI-FIELD-IS-READABLE:CAPS"><span class="type">GI_FIELD_IS_READABLE</span></a> or <a class="link" href="gi-GIFieldInfo.html#GI-FIELD-IS-WRITABLE:CAPS"><span class="type">GI_FIELD_IS_WRITABLE</span></a>.
61 </p>
62 <p>
63 </p>
64 <div class="refsect1">
65 <a name="gi-gifieldinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
66 <pre class="synopsis">
67   <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
68    +----GIFieldInfo
69 </pre>
70 </div>
71 <p>
72 </p>
73 </div>
74 <div class="refsect1">
75 <a name="gi-GIFieldInfo.details"></a><h2>Details</h2>
76 <div class="refsect2">
77 <a name="GI-IS-FIELD-INFO:CAPS"></a><h3>GI_IS_FIELD_INFO()</h3>
78 <pre class="programlisting">#define             GI_IS_FIELD_INFO(info)</pre>
79 <p>
80 Checks if <em class="parameter"><code>info</code></em> is a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>.
81 </p>
82 <div class="variablelist"><table border="0" class="variablelist">
83 <colgroup>
84 <col align="left" valign="top">
85 <col>
86 </colgroup>
87 <tbody><tr>
88 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
89 <td>an info structure</td>
90 </tr></tbody>
91 </table></div>
92 </div>
93 <hr>
94 <div class="refsect2">
95 <a name="GIFieldInfo"></a><h3>GIFieldInfo</h3>
96 <pre class="programlisting">typedef GIBaseInfo GIFieldInfo;
97 </pre>
98 <p>
99 Represents a field of a <a class="link" href="gi-GIStructInfo.html#GIStructInfo" title="GIStructInfo"><span class="type">GIStructInfo</span></a> or a <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>.
100 </p>
101 </div>
102 <hr>
103 <div class="refsect2">
104 <a name="GIFieldInfoFlags"></a><h3>enum GIFieldInfoFlags</h3>
105 <pre class="programlisting">typedef enum {
106   GI_FIELD_IS_READABLE = 1 &lt;&lt; 0,
107   GI_FIELD_IS_WRITABLE = 1 &lt;&lt; 1
108 } GIFieldInfoFlags;
109 </pre>
110 <p>
111 Flags for a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>.
112 </p>
113 <div class="variablelist"><table border="0" class="variablelist">
114 <colgroup>
115 <col align="left" valign="top">
116 <col>
117 </colgroup>
118 <tbody>
119 <tr>
120 <td><p><a name="GI-FIELD-IS-READABLE:CAPS"></a><span class="term"><code class="literal">GI_FIELD_IS_READABLE</code></span></p></td>
121 <td>field is readable.
122 </td>
123 </tr>
124 <tr>
125 <td><p><a name="GI-FIELD-IS-WRITABLE:CAPS"></a><span class="term"><code class="literal">GI_FIELD_IS_WRITABLE</code></span></p></td>
126 <td>field is writable.
127 </td>
128 </tr>
129 </tbody>
130 </table></div>
131 </div>
132 <hr>
133 <div class="refsect2">
134 <a name="g-field-info-get-field"></a><h3>g_field_info_get_field ()</h3>
135 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            g_field_info_get_field              (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *field_info</code></em>,
136                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> mem</code></em>,
137                                                          <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
138 <p>
139 Reads a field identified by a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> from a C structure or
140 union.  This only handles fields of simple C types. It will fail
141 for a field of a composite type like a nested structure or union
142 even if that is actually readable.
143 </p>
144 <div class="variablelist"><table border="0" class="variablelist">
145 <colgroup>
146 <col align="left" valign="top">
147 <col>
148 </colgroup>
149 <tbody>
150 <tr>
151 <td><p><span class="term"><em class="parameter"><code>field_info</code></em> :</span></p></td>
152 <td>a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>
153 </td>
154 </tr>
155 <tr>
156 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
157 <td>pointer to a block of memory representing a C structure or union</td>
158 </tr>
159 <tr>
160 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
161 <td>a <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> into which to store the value retrieved</td>
162 </tr>
163 <tr>
164 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
165 <td>
166 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if reading the field succeeded, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
167 </td>
168 </tr>
169 </tbody>
170 </table></div>
171 </div>
172 <hr>
173 <div class="refsect2">
174 <a name="g-field-info-set-field"></a><h3>g_field_info_set_field ()</h3>
175 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            g_field_info_set_field              (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *field_info</code></em>,
176                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> mem</code></em>,
177                                                          <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *value</code></em>);</pre>
178 <p>
179 Writes a field identified by a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> to a C structure or
180 union.  This only handles fields of simple C types. It will fail
181 for a field of a composite type like a nested structure or union
182 even if that is actually writable. Note also that that it will refuse
183 to write fields where memory management would by required. A field
184 with a type such as 'char *' must be set with a setter function.
185 </p>
186 <div class="variablelist"><table border="0" class="variablelist">
187 <colgroup>
188 <col align="left" valign="top">
189 <col>
190 </colgroup>
191 <tbody>
192 <tr>
193 <td><p><span class="term"><em class="parameter"><code>field_info</code></em> :</span></p></td>
194 <td>a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>
195 </td>
196 </tr>
197 <tr>
198 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
199 <td>pointer to a block of memory representing a C structure or union</td>
200 </tr>
201 <tr>
202 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
203 <td>a <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> holding the value to store</td>
204 </tr>
205 <tr>
206 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
207 <td>
208 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if writing the field succeeded, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
209 </td>
210 </tr>
211 </tbody>
212 </table></div>
213 </div>
214 <hr>
215 <div class="refsect2">
216 <a name="g-field-info-get-flags"></a><h3>g_field_info_get_flags ()</h3>
217 <pre class="programlisting"><a class="link" href="gi-GIFieldInfo.html#GIFieldInfoFlags" title="enum GIFieldInfoFlags"><span class="returnvalue">GIFieldInfoFlags</span></a>    g_field_info_get_flags              (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *info</code></em>);</pre>
218 <p>
219 Obtain the flags for this <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>. See <a class="link" href="gi-GIFieldInfo.html#GIFieldInfoFlags" title="enum GIFieldInfoFlags"><span class="type">GIFieldInfoFlags</span></a> for possible
220 flag values.
221 </p>
222 <div class="variablelist"><table border="0" class="variablelist">
223 <colgroup>
224 <col align="left" valign="top">
225 <col>
226 </colgroup>
227 <tbody>
228 <tr>
229 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
230 <td>a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>
231 </td>
232 </tr>
233 <tr>
234 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
235 <td>the flags</td>
236 </tr>
237 </tbody>
238 </table></div>
239 </div>
240 <hr>
241 <div class="refsect2">
242 <a name="g-field-info-get-offset"></a><h3>g_field_info_get_offset ()</h3>
243 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                g_field_info_get_offset             (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *info</code></em>);</pre>
244 <p>
245 Obtain the offset in bits of the field member, this is relative
246 to the beginning of the struct or union.
247 </p>
248 <div class="variablelist"><table border="0" class="variablelist">
249 <colgroup>
250 <col align="left" valign="top">
251 <col>
252 </colgroup>
253 <tbody>
254 <tr>
255 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
256 <td>a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>
257 </td>
258 </tr>
259 <tr>
260 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
261 <td>the field offset</td>
262 </tr>
263 </tbody>
264 </table></div>
265 </div>
266 <hr>
267 <div class="refsect2">
268 <a name="g-field-info-get-size"></a><h3>g_field_info_get_size ()</h3>
269 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                g_field_info_get_size               (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *info</code></em>);</pre>
270 <p>
271 Obtain the size in bits of the field member, this is how
272 much space you need to allocate to store the field.
273 </p>
274 <div class="variablelist"><table border="0" class="variablelist">
275 <colgroup>
276 <col align="left" valign="top">
277 <col>
278 </colgroup>
279 <tbody>
280 <tr>
281 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
282 <td>a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>
283 </td>
284 </tr>
285 <tr>
286 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
287 <td>the field size</td>
288 </tr>
289 </tbody>
290 </table></div>
291 </div>
292 <hr>
293 <div class="refsect2">
294 <a name="g-field-info-get-type"></a><h3>g_field_info_get_type ()</h3>
295 <pre class="programlisting"><a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="returnvalue">GITypeInfo</span></a> *        g_field_info_get_type               (<em class="parameter"><code><a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a> *info</code></em>);</pre>
296 <p>
297 Obtain the type of a field as a <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>.
298 </p>
299 <div class="variablelist"><table border="0" class="variablelist">
300 <colgroup>
301 <col align="left" valign="top">
302 <col>
303 </colgroup>
304 <tbody>
305 <tr>
306 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
307 <td>a <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>
308 </td>
309 </tr>
310 <tr>
311 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
312 <td>the <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>. Free the struct by calling
313 <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> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
314 </td>
315 </tr>
316 </tbody>
317 </table></div>
318 </div>
319 </div>
320 </div>
321 <div class="footer">
322 <hr>
323           Generated by GTK-Doc V1.19.1</div>
324 </body>
325 </html>