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>GITypelib: GObject Introspection Reference Manual</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="gi-typelib.html" title="GITypelib">
9 <link rel="prev" href="gi-gitypelib.html" title="gitypelib">
10 <link rel="next" href="ch03.html" title="TODO">
11 <meta name="generator" content="GTK-Doc V1.24.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="5"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts">
17 <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
18 <a href="#gi-GITypelib.description" class="shortcut">Description</a></span>
20 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
21 <td><a accesskey="u" href="gi-typelib.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22 <td><a accesskey="p" href="gi-gitypelib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23 <td><a accesskey="n" href="ch03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
25 <div class="refentry">
26 <a name="gi-GITypelib"></a><div class="titlepage"></div>
27 <div class="refnamediv"><table width="100%"><tr>
29 <h2><span class="refentrytitle"><a name="gi-GITypelib.top_of_page"></a>GITypelib</span></h2>
30 <p>GITypelib — Layout and accessors for typelib</p>
32 <td class="gallery_image" valign="top" align="right"></td>
34 <div class="refsect1">
35 <a name="gi-GITypelib.stability-level"></a><h2>Stability Level</h2>
36 <acronym title="The intention of a Stable interface is to enable arbitrary third parties to
37 develop applications to these interfaces, release them, and have confidence that
38 they will run on all minor releases of the product (after the one in which the
39 interface was introduced, and within the same major release). Even at a major
40 release, incompatible changes are expected to be rare, and to have strong
42 "><span class="acronym">Stable</span></acronym>, unless otherwise indicated
44 <div class="refsect1">
45 <a name="gi-GITypelib.functions"></a><h2>Functions</h2>
46 <div class="informaltable"><table width="100%" border="0">
48 <col width="150px" class="functions_return">
49 <col class="functions_name">
53 <td class="function_type">
54 <a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
56 <td class="function_name">
57 <a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry" title="g_typelib_get_dir_entry ()">g_typelib_get_dir_entry</a> <span class="c_punctuation">()</span>
61 <td class="function_type">
62 <a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
64 <td class="function_name">
65 <a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry-by-name" title="g_typelib_get_dir_entry_by_name ()">g_typelib_get_dir_entry_by_name</a> <span class="c_punctuation">()</span>
69 <td class="function_type">
70 <a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
72 <td class="function_name">
73 <a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry-by-gtype-name" title="g_typelib_get_dir_entry_by_gtype_name ()">g_typelib_get_dir_entry_by_gtype_name</a> <span class="c_punctuation">()</span>
77 <td class="function_type">
78 <a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
80 <td class="function_name">
81 <a class="link" href="gi-GITypelib.html#g-typelib-get-dir-entry-by-error-domain" title="g_typelib_get_dir_entry_by_error_domain ()">g_typelib_get_dir_entry_by_error_domain</a> <span class="c_punctuation">()</span>
85 <td class="function_type">
86 <span class="returnvalue">gboolean</span>
88 <td class="function_name">
89 <a class="link" href="gi-GITypelib.html#g-typelib-matches-gtype-name-prefix" title="g_typelib_matches_gtype_name_prefix ()">g_typelib_matches_gtype_name_prefix</a> <span class="c_punctuation">()</span>
93 <td class="function_type">
94 <span class="returnvalue">void</span>
96 <td class="function_name">
97 <a class="link" href="gi-GITypelib.html#g-typelib-check-sanity" title="g_typelib_check_sanity ()">g_typelib_check_sanity</a> <span class="c_punctuation">()</span>
101 <td class="define_keyword">#define</td>
102 <td class="function_name">
103 <a class="link" href="gi-GITypelib.html#g-typelib-get-string" title="g_typelib_get_string()">g_typelib_get_string</a><span class="c_punctuation">()</span>
107 <td class="define_keyword">#define</td>
108 <td class="function_name"><a class="link" href="gi-GITypelib.html#G-TYPELIB-ERROR:CAPS" title="G_TYPELIB_ERROR">G_TYPELIB_ERROR</a></td>
111 <td class="function_type">
112 <span class="returnvalue">GQuark</span>
114 <td class="function_name">
115 <a class="link" href="gi-GITypelib.html#g-typelib-error-quark" title="g_typelib_error_quark ()">g_typelib_error_quark</a> <span class="c_punctuation">()</span>
119 <td class="function_type">
120 <span class="returnvalue">gboolean</span>
122 <td class="function_name">
123 <a class="link" href="gi-GITypelib.html#g-typelib-validate" title="g_typelib_validate ()">g_typelib_validate</a> <span class="c_punctuation">()</span>
129 <div class="refsect1">
130 <a name="gi-GITypelib.other"></a><h2>Types and Values</h2>
131 <div class="informaltable"><table width="100%" border="0">
133 <col width="150px" class="name">
134 <col class="description">
138 <td class="define_keyword">#define</td>
139 <td class="function_name"><a class="link" href="gi-GITypelib.html#G-IR-MAGIC:CAPS" title="G_IR_MAGIC">G_IR_MAGIC</a></td>
142 <td class="datatype_keyword">enum</td>
143 <td class="function_name"><a class="link" href="gi-GITypelib.html#GTypelibBlobType" title="enum GTypelibBlobType">GTypelibBlobType</a></td>
146 <td class="datatype_keyword"> </td>
147 <td class="function_name"><a class="link" href="gi-GITypelib.html#Header" title="Header">Header</a></td>
150 <td class="datatype_keyword">enum</td>
151 <td class="function_name"><a class="link" href="gi-GITypelib.html#SectionType" title="enum SectionType">SectionType</a></td>
154 <td class="datatype_keyword"> </td>
155 <td class="function_name"><a class="link" href="gi-GITypelib.html#Section" title="Section">Section</a></td>
158 <td class="datatype_keyword"> </td>
159 <td class="function_name"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry">DirEntry</a></td>
162 <td class="datatype_keyword"> </td>
163 <td class="function_name"><a class="link" href="gi-GITypelib.html#SimpleTypeBlobFlags" title="SimpleTypeBlobFlags">SimpleTypeBlobFlags</a></td>
166 <td class="datatype_keyword"> </td>
167 <td class="function_name"><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob">SimpleTypeBlob</a></td>
170 <td class="datatype_keyword"> </td>
171 <td class="function_name"><a class="link" href="gi-GITypelib.html#ArgBlob" title="ArgBlob">ArgBlob</a></td>
174 <td class="datatype_keyword"> </td>
175 <td class="function_name"><a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob">SignatureBlob</a></td>
178 <td class="datatype_keyword"> </td>
179 <td class="function_name"><a class="link" href="gi-GITypelib.html#CommonBlob" title="CommonBlob">CommonBlob</a></td>
182 <td class="datatype_keyword"> </td>
183 <td class="function_name"><a class="link" href="gi-GITypelib.html#FunctionBlob" title="FunctionBlob">FunctionBlob</a></td>
186 <td class="datatype_keyword"> </td>
187 <td class="function_name"><a class="link" href="gi-GITypelib.html#CallbackBlob" title="CallbackBlob">CallbackBlob</a></td>
190 <td class="datatype_keyword"> </td>
191 <td class="function_name"><a class="link" href="gi-GITypelib.html#InterfaceTypeBlob" title="InterfaceTypeBlob">InterfaceTypeBlob</a></td>
194 <td class="datatype_keyword"> </td>
195 <td class="function_name"><a class="link" href="gi-GITypelib.html#ArrayTypeDimension" title="ArrayTypeDimension">ArrayTypeDimension</a></td>
198 <td class="datatype_keyword"> </td>
199 <td class="function_name"><a class="link" href="gi-GITypelib.html#ArrayTypeBlob" title="ArrayTypeBlob">ArrayTypeBlob</a></td>
202 <td class="datatype_keyword"> </td>
203 <td class="function_name"><a class="link" href="gi-GITypelib.html#ParamTypeBlob" title="ParamTypeBlob">ParamTypeBlob</a></td>
206 <td class="datatype_keyword"> </td>
207 <td class="function_name"><a class="link" href="gi-GITypelib.html#ErrorTypeBlob" title="ErrorTypeBlob">ErrorTypeBlob</a></td>
210 <td class="datatype_keyword"> </td>
211 <td class="function_name"><a class="link" href="gi-GITypelib.html#ValueBlob" title="ValueBlob">ValueBlob</a></td>
214 <td class="datatype_keyword"> </td>
215 <td class="function_name"><a class="link" href="gi-GITypelib.html#FieldBlob" title="FieldBlob">FieldBlob</a></td>
218 <td class="datatype_keyword"> </td>
219 <td class="function_name"><a class="link" href="gi-GITypelib.html#RegisteredTypeBlob" title="RegisteredTypeBlob">RegisteredTypeBlob</a></td>
222 <td class="datatype_keyword"> </td>
223 <td class="function_name"><a class="link" href="gi-GITypelib.html#StructBlob" title="StructBlob">StructBlob</a></td>
226 <td class="datatype_keyword"> </td>
227 <td class="function_name"><a class="link" href="gi-GITypelib.html#UnionBlob" title="UnionBlob">UnionBlob</a></td>
230 <td class="datatype_keyword"> </td>
231 <td class="function_name"><a class="link" href="gi-GITypelib.html#EnumBlob" title="EnumBlob">EnumBlob</a></td>
234 <td class="datatype_keyword"> </td>
235 <td class="function_name"><a class="link" href="gi-GITypelib.html#PropertyBlob" title="PropertyBlob">PropertyBlob</a></td>
238 <td class="datatype_keyword"> </td>
239 <td class="function_name"><a class="link" href="gi-GITypelib.html#SignalBlob" title="SignalBlob">SignalBlob</a></td>
242 <td class="datatype_keyword"> </td>
243 <td class="function_name"><a class="link" href="gi-GITypelib.html#VFuncBlob" title="VFuncBlob">VFuncBlob</a></td>
246 <td class="datatype_keyword"> </td>
247 <td class="function_name"><a class="link" href="gi-GITypelib.html#ObjectBlob" title="ObjectBlob">ObjectBlob</a></td>
250 <td class="datatype_keyword"> </td>
251 <td class="function_name"><a class="link" href="gi-GITypelib.html#InterfaceBlob" title="InterfaceBlob">InterfaceBlob</a></td>
254 <td class="datatype_keyword"> </td>
255 <td class="function_name"><a class="link" href="gi-GITypelib.html#ConstantBlob" title="ConstantBlob">ConstantBlob</a></td>
258 <td class="datatype_keyword"> </td>
259 <td class="function_name"><a class="link" href="gi-GITypelib.html#AttributeBlob" title="AttributeBlob">AttributeBlob</a></td>
262 <td class="datatype_keyword">enum</td>
263 <td class="function_name"><a class="link" href="gi-GITypelib.html#GITypelibError" title="enum GITypelibError">GITypelibError</a></td>
266 <td class="datatype_keyword"> </td>
267 <td class="function_name"><a class="link" href="gi-GITypelib.html#GITypelibHashBuilder" title="GITypelibHashBuilder">GITypelibHashBuilder</a></td>
272 <div class="refsect1">
273 <a name="gi-GITypelib.description"></a><h2>Description</h2>
274 <p>The "typelib" is a binary, readonly, memory-mappable database
275 containing reflective information about a GObject library.</p>
276 <p>The format of GObject typelib is strongly influenced by the Mozilla XPCOM
278 <p>Some of the differences to XPCOM include:</p>
279 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
280 <li class="listitem"><p>Type information is stored not quite as compactly (XPCOM stores it inline
281 in function descriptions in variable-sized blobs of 1 to n bytes. We store
282 16 bits of type information for each parameter, which is enough to encode
283 simple types inline. Complex (e.g. recursive) types are stored out of line
284 in a separate list of types.</p></li>
285 <li class="listitem"><p>String and complex type data is stored outside of typelib entry blobs,
286 references are stored as offsets relative to the start of the typelib.
287 One possibility is to store the strings and types in a pools at the end
288 of the typelib.</p></li>
290 <p>The typelib has the following general format:</p>
291 <p> typelib ::= header, section-index, directory, blobs, attributes, attributedata</p>
292 <p> directory ::= list of entries</p>
293 <p> entry ::= blob type, name, namespace, offset
294 blob ::= function|callback|struct|boxed|enum|flags|object|interface|constant|union
295 attribute ::= offset, key, value
296 attributedata ::= string data for attributes</p>
298 <p>We describe the fragments that make up the typelib in the form of C structs
299 (although some fall short of being valid C structs since they contain
300 multiple flexible arrays).</p>
302 <div class="refsect1">
303 <a name="gi-GITypelib.functions_details"></a><h2>Functions</h2>
304 <div class="refsect2">
305 <a name="g-typelib-get-dir-entry"></a><h3>g_typelib_get_dir_entry ()</h3>
306 <pre class="programlisting"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
307 g_typelib_get_dir_entry (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
308 <em class="parameter"><code><span class="type">guint16</span> index</code></em>);</pre>
310 <div class="refsect3">
311 <a name="id-1.4.3.3.7.2.5"></a><h4>Parameters</h4>
312 <div class="informaltable"><table width="100%" border="0">
314 <col width="150px" class="parameters_name">
315 <col class="parameters_description">
316 <col width="200px" class="parameters_annotations">
320 <td class="parameter_name"><p>typelib</p></td>
321 <td class="parameter_description"><p>TODO</p></td>
322 <td class="parameter_annotations"> </td>
325 <td class="parameter_name"><p>index</p></td>
326 <td class="parameter_description"><p>TODO</p></td>
327 <td class="parameter_annotations"> </td>
332 <div class="refsect3">
333 <a name="id-1.4.3.3.7.2.6"></a><h4>Returns</h4>
338 <div class="refsect2">
339 <a name="g-typelib-get-dir-entry-by-name"></a><h3>g_typelib_get_dir_entry_by_name ()</h3>
340 <pre class="programlisting"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
341 g_typelib_get_dir_entry_by_name (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
342 <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
344 <div class="refsect3">
345 <a name="id-1.4.3.3.7.3.5"></a><h4>Parameters</h4>
346 <div class="informaltable"><table width="100%" border="0">
348 <col width="150px" class="parameters_name">
349 <col class="parameters_description">
350 <col width="200px" class="parameters_annotations">
354 <td class="parameter_name"><p>typelib</p></td>
355 <td class="parameter_description"><p>TODO</p></td>
356 <td class="parameter_annotations"> </td>
359 <td class="parameter_name"><p>name</p></td>
360 <td class="parameter_description"><p>TODO</p></td>
361 <td class="parameter_annotations"> </td>
366 <div class="refsect3">
367 <a name="id-1.4.3.3.7.3.6"></a><h4>Returns</h4>
372 <div class="refsect2">
373 <a name="g-typelib-get-dir-entry-by-gtype-name"></a><h3>g_typelib_get_dir_entry_by_gtype_name ()</h3>
374 <pre class="programlisting"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
375 g_typelib_get_dir_entry_by_gtype_name (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
376 <em class="parameter"><code>const <span class="type">gchar</span> *gtype_name</code></em>);</pre>
378 <div class="refsect3">
379 <a name="id-1.4.3.3.7.4.5"></a><h4>Parameters</h4>
380 <div class="informaltable"><table width="100%" border="0">
382 <col width="150px" class="parameters_name">
383 <col class="parameters_description">
384 <col width="200px" class="parameters_annotations">
388 <td class="parameter_name"><p>typelib</p></td>
389 <td class="parameter_description"><p>TODO</p></td>
390 <td class="parameter_annotations"> </td>
393 <td class="parameter_name"><p>gtype_name</p></td>
394 <td class="parameter_description"><p>TODO</p></td>
395 <td class="parameter_annotations"> </td>
400 <div class="refsect3">
401 <a name="id-1.4.3.3.7.4.6"></a><h4>Returns</h4>
406 <div class="refsect2">
407 <a name="g-typelib-get-dir-entry-by-error-domain"></a><h3>g_typelib_get_dir_entry_by_error_domain ()</h3>
408 <pre class="programlisting"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry"><span class="returnvalue">DirEntry</span></a> *
409 g_typelib_get_dir_entry_by_error_domain
410 (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
411 <em class="parameter"><code><span class="type">GQuark</span> error_domain</code></em>);</pre>
413 <div class="refsect3">
414 <a name="id-1.4.3.3.7.5.5"></a><h4>Parameters</h4>
415 <div class="informaltable"><table width="100%" border="0">
417 <col width="150px" class="parameters_name">
418 <col class="parameters_description">
419 <col width="200px" class="parameters_annotations">
423 <td class="parameter_name"><p>typelib</p></td>
424 <td class="parameter_description"><p>TODO</p></td>
425 <td class="parameter_annotations"> </td>
428 <td class="parameter_name"><p>error_domain</p></td>
429 <td class="parameter_description"><p>TODO</p></td>
430 <td class="parameter_annotations"> </td>
435 <div class="refsect3">
436 <a name="id-1.4.3.3.7.5.6"></a><h4>Returns</h4>
441 <div class="refsect2">
442 <a name="g-typelib-matches-gtype-name-prefix"></a><h3>g_typelib_matches_gtype_name_prefix ()</h3>
443 <pre class="programlisting"><span class="returnvalue">gboolean</span>
444 g_typelib_matches_gtype_name_prefix (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
445 <em class="parameter"><code>const <span class="type">gchar</span> *gtype_name</code></em>);</pre>
447 <div class="refsect3">
448 <a name="id-1.4.3.3.7.6.5"></a><h4>Parameters</h4>
449 <div class="informaltable"><table width="100%" border="0">
451 <col width="150px" class="parameters_name">
452 <col class="parameters_description">
453 <col width="200px" class="parameters_annotations">
457 <td class="parameter_name"><p>typelib</p></td>
458 <td class="parameter_description"><p>TODO</p></td>
459 <td class="parameter_annotations"> </td>
462 <td class="parameter_name"><p>gtype_name</p></td>
463 <td class="parameter_description"><p>TODO</p></td>
464 <td class="parameter_annotations"> </td>
469 <div class="refsect3">
470 <a name="id-1.4.3.3.7.6.6"></a><h4>Returns</h4>
475 <div class="refsect2">
476 <a name="g-typelib-check-sanity"></a><h3>g_typelib_check_sanity ()</h3>
477 <pre class="programlisting"><span class="returnvalue">void</span>
478 g_typelib_check_sanity (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
482 <div class="refsect2">
483 <a name="g-typelib-get-string"></a><h3>g_typelib_get_string()</h3>
484 <pre class="programlisting">#define g_typelib_get_string(typelib,offset)</pre>
486 <div class="refsect3">
487 <a name="id-1.4.3.3.7.8.5"></a><h4>Parameters</h4>
488 <div class="informaltable"><table width="100%" border="0">
490 <col width="150px" class="parameters_name">
491 <col class="parameters_description">
492 <col width="200px" class="parameters_annotations">
496 <td class="parameter_name"><p>typelib</p></td>
497 <td class="parameter_description"><p>TODO</p></td>
498 <td class="parameter_annotations"> </td>
501 <td class="parameter_name"><p>offset</p></td>
502 <td class="parameter_description"><p>TODO</p></td>
503 <td class="parameter_annotations"> </td>
508 <div class="refsect3">
509 <a name="id-1.4.3.3.7.8.6"></a><h4>Returns</h4>
514 <div class="refsect2">
515 <a name="G-TYPELIB-ERROR:CAPS"></a><h3>G_TYPELIB_ERROR</h3>
516 <pre class="programlisting">#define G_TYPELIB_ERROR (g_typelib_error_quark ())
521 <div class="refsect2">
522 <a name="g-typelib-error-quark"></a><h3>g_typelib_error_quark ()</h3>
523 <pre class="programlisting"><span class="returnvalue">GQuark</span>
524 g_typelib_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
526 <div class="refsect3">
527 <a name="id-1.4.3.3.7.10.5"></a><h4>Returns</h4>
532 <div class="refsect2">
533 <a name="g-typelib-validate"></a><h3>g_typelib_validate ()</h3>
534 <pre class="programlisting"><span class="returnvalue">gboolean</span>
535 g_typelib_validate (<em class="parameter"><code><a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a> *typelib</code></em>,
536 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
538 <div class="refsect3">
539 <a name="id-1.4.3.3.7.11.5"></a><h4>Parameters</h4>
540 <div class="informaltable"><table width="100%" border="0">
542 <col width="150px" class="parameters_name">
543 <col class="parameters_description">
544 <col width="200px" class="parameters_annotations">
548 <td class="parameter_name"><p>typelib</p></td>
549 <td class="parameter_description"><p>TODO</p></td>
550 <td class="parameter_annotations"> </td>
553 <td class="parameter_name"><p>error</p></td>
554 <td class="parameter_description"><p>TODO</p></td>
555 <td class="parameter_annotations"> </td>
560 <div class="refsect3">
561 <a name="id-1.4.3.3.7.11.6"></a><h4>Returns</h4>
566 <div class="refsect1">
567 <a name="gi-GITypelib.other_details"></a><h2>Types and Values</h2>
568 <div class="refsect2">
569 <a name="G-IR-MAGIC:CAPS"></a><h3>G_IR_MAGIC</h3>
570 <pre class="programlisting">#define G_IR_MAGIC "GOBJ\nMETADATA\r\n\032"
572 <p>Identifying prefix for the typelib. This was inspired by XPCOM,
573 which in turn borrowed from PNG.</p>
576 <div class="refsect2">
577 <a name="GTypelibBlobType"></a><h3>enum GTypelibBlobType</h3>
578 <p>The integral value of this enumeration appears in each "Blob" component of
579 a typelib to identify its type.</p>
580 <div class="refsect3">
581 <a name="id-1.4.3.3.8.3.4"></a><h4>Members</h4>
582 <div class="informaltable"><table width="100%" border="0">
584 <col width="300px" class="enum_members_name">
585 <col class="enum_members_description">
586 <col width="200px" class="enum_members_annotations">
590 <td class="enum_member_name"><p><a name="BLOB-TYPE-INVALID:CAPS"></a>BLOB_TYPE_INVALID</p></td>
591 <td class="enum_member_description">
592 <p>Should not appear in code</p>
594 <td class="enum_member_annotations"> </td>
597 <td class="enum_member_name"><p><a name="BLOB-TYPE-FUNCTION:CAPS"></a>BLOB_TYPE_FUNCTION</p></td>
598 <td class="enum_member_description">
599 <p>A <a class="link" href="gi-GITypelib.html#FunctionBlob" title="FunctionBlob"><span class="type">FunctionBlob</span></a></p>
601 <td class="enum_member_annotations"> </td>
604 <td class="enum_member_name"><p><a name="BLOB-TYPE-CALLBACK:CAPS"></a>BLOB_TYPE_CALLBACK</p></td>
605 <td class="enum_member_description">
606 <p>A <a class="link" href="gi-GITypelib.html#CallbackBlob" title="CallbackBlob"><span class="type">CallbackBlob</span></a></p>
608 <td class="enum_member_annotations"> </td>
611 <td class="enum_member_name"><p><a name="BLOB-TYPE-STRUCT:CAPS"></a>BLOB_TYPE_STRUCT</p></td>
612 <td class="enum_member_description">
613 <p>A <a class="link" href="gi-GITypelib.html#StructBlob" title="StructBlob"><span class="type">StructBlob</span></a></p>
615 <td class="enum_member_annotations"> </td>
618 <td class="enum_member_name"><p><a name="BLOB-TYPE-BOXED:CAPS"></a>BLOB_TYPE_BOXED</p></td>
619 <td class="enum_member_description">
620 <p>Can be either a <a class="link" href="gi-GITypelib.html#StructBlob" title="StructBlob"><span class="type">StructBlob</span></a> or <a class="link" href="gi-GITypelib.html#UnionBlob" title="UnionBlob"><span class="type">UnionBlob</span></a></p>
622 <td class="enum_member_annotations"> </td>
625 <td class="enum_member_name"><p><a name="BLOB-TYPE-ENUM:CAPS"></a>BLOB_TYPE_ENUM</p></td>
626 <td class="enum_member_description">
627 <p>An <a class="link" href="gi-GITypelib.html#EnumBlob" title="EnumBlob"><span class="type">EnumBlob</span></a></p>
629 <td class="enum_member_annotations"> </td>
632 <td class="enum_member_name"><p><a name="BLOB-TYPE-FLAGS:CAPS"></a>BLOB_TYPE_FLAGS</p></td>
633 <td class="enum_member_description">
634 <p>An <a class="link" href="gi-GITypelib.html#EnumBlob" title="EnumBlob"><span class="type">EnumBlob</span></a></p>
636 <td class="enum_member_annotations"> </td>
639 <td class="enum_member_name"><p><a name="BLOB-TYPE-OBJECT:CAPS"></a>BLOB_TYPE_OBJECT</p></td>
640 <td class="enum_member_description">
641 <p>An <a class="link" href="gi-GITypelib.html#ObjectBlob" title="ObjectBlob"><span class="type">ObjectBlob</span></a></p>
643 <td class="enum_member_annotations"> </td>
646 <td class="enum_member_name"><p><a name="BLOB-TYPE-INTERFACE:CAPS"></a>BLOB_TYPE_INTERFACE</p></td>
647 <td class="enum_member_description">
648 <p>An <a class="link" href="gi-GITypelib.html#InterfaceBlob" title="InterfaceBlob"><span class="type">InterfaceBlob</span></a></p>
650 <td class="enum_member_annotations"> </td>
653 <td class="enum_member_name"><p><a name="BLOB-TYPE-CONSTANT:CAPS"></a>BLOB_TYPE_CONSTANT</p></td>
654 <td class="enum_member_description">
655 <p>A <a class="link" href="gi-GITypelib.html#ConstantBlob" title="ConstantBlob"><span class="type">ConstantBlob</span></a></p>
657 <td class="enum_member_annotations"> </td>
660 <td class="enum_member_name"><p><a name="BLOB-TYPE-INVALID-0:CAPS"></a>BLOB_TYPE_INVALID_0</p></td>
661 <td class="enum_member_description">
662 <p>Deleted, used to be ErrorDomain.</p>
664 <td class="enum_member_annotations"> </td>
667 <td class="enum_member_name"><p><a name="BLOB-TYPE-UNION:CAPS"></a>BLOB_TYPE_UNION</p></td>
668 <td class="enum_member_description">
669 <p>A <a class="link" href="gi-GITypelib.html#UnionBlob" title="UnionBlob"><span class="type">UnionBlob</span></a></p>
671 <td class="enum_member_annotations"> </td>
678 <div class="refsect2">
679 <a name="Header"></a><h3>Header</h3>
680 <pre class="programlisting">typedef struct {
682 guint8 major_version;
683 guint8 minor_version;
686 guint16 n_local_entries;
688 guint32 n_attributes;
691 guint32 dependencies;
696 guint32 shared_library;
699 guint16 entry_blob_size;
700 guint16 function_blob_size;
701 guint16 callback_blob_size;
702 guint16 signal_blob_size;
703 guint16 vfunc_blob_size;
704 guint16 arg_blob_size;
705 guint16 property_blob_size;
706 guint16 field_blob_size;
707 guint16 value_blob_size;
708 guint16 attribute_blob_size;
709 guint16 constant_blob_size;
710 guint16 error_domain_blob_size;
712 guint16 signature_blob_size;
713 guint16 enum_blob_size;
714 guint16 struct_blob_size;
715 guint16 object_blob_size;
716 guint16 interface_blob_size;
717 guint16 union_blob_size;
724 <p>The header structure appears exactly once at the beginning of a typelib. It is a
725 collection of meta-information, such as the number of entries and dependencies.</p>
726 <div class="refsect3">
727 <a name="id-1.4.3.3.8.4.5"></a><h4>Members</h4>
728 <div class="informaltable"><table width="100%" border="0">
730 <col width="300px" class="struct_members_name">
731 <col class="struct_members_description">
732 <col width="200px" class="struct_members_annotations">
736 <td class="struct_member_name"><p><span class="type">gchar</span> <em class="structfield"><code><a name="Header.magic"></a>magic</code></em>[16];</p></td>
737 <td class="struct_member_description"><p>See <a class="link" href="gi-GITypelib.html#G-IR-MAGIC:CAPS" title="G_IR_MAGIC"><span class="type">G_IR_MAGIC</span></a>.</p></td>
738 <td class="struct_member_annotations"> </td>
741 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="Header.major-version"></a>major_version</code></em>;</p></td>
742 <td class="struct_member_description"><p>The major version number of the typelib format. Major version
743 number changes indicate incompatible changes to the tyeplib format.</p></td>
744 <td class="struct_member_annotations"> </td>
747 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="Header.minor-version"></a>minor_version</code></em>;</p></td>
748 <td class="struct_member_description"><p>The minor version number of the typelib format. Minor version
749 number changes indicate compatible changes and should still allow the
750 typelib to be parsed by a parser designed for the same <em class="parameter"><code>major_version</code></em>
752 <td class="struct_member_annotations"> </td>
755 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.reserved"></a>reserved</code></em>;</p></td>
756 <td class="struct_member_description"><p>Reserved for future use.</p></td>
757 <td class="struct_member_annotations"> </td>
760 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.n-entries"></a>n_entries</code></em>;</p></td>
761 <td class="struct_member_description"><p>The number of entries in the directory.</p></td>
762 <td class="struct_member_annotations"> </td>
765 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.n-local-entries"></a>n_local_entries</code></em>;</p></td>
766 <td class="struct_member_description"><p>The number of entries referring to blobs in this typelib.
767 The local entries must occur before the unresolved entries.</p></td>
768 <td class="struct_member_annotations"> </td>
771 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.directory"></a>directory</code></em>;</p></td>
772 <td class="struct_member_description"><p>Offset of the directory in the typelib.</p></td>
773 <td class="struct_member_annotations"> </td>
776 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.n-attributes"></a>n_attributes</code></em>;</p></td>
777 <td class="struct_member_description"><p>Number of attribute blocks</p></td>
778 <td class="struct_member_annotations"> </td>
781 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.attributes"></a>attributes</code></em>;</p></td>
782 <td class="struct_member_description"><p>Offset of the list of attributes in the typelib.</p></td>
783 <td class="struct_member_annotations"> </td>
786 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.dependencies"></a>dependencies</code></em>;</p></td>
787 <td class="struct_member_description"><p>Offset of a single string, which is the list of immediate
788 dependencies, separated by the '|' character. The dependencies are
789 required in order to avoid having programs consuming a typelib check for
790 an "Unresolved" type return from every API call.</p></td>
791 <td class="struct_member_annotations"> </td>
794 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.size"></a>size</code></em>;</p></td>
795 <td class="struct_member_description"><p>The size in bytes of the typelib.</p></td>
796 <td class="struct_member_annotations"> </td>
799 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.namespace"></a>namespace</code></em>;</p></td>
800 <td class="struct_member_description"><p>Offset of the namespace string in the typelib.</p></td>
801 <td class="struct_member_annotations"> </td>
804 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.nsversion"></a>nsversion</code></em>;</p></td>
805 <td class="struct_member_description"><p>Offset of the namespace version string in the typelib.</p></td>
806 <td class="struct_member_annotations"> </td>
809 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.shared-library"></a>shared_library</code></em>;</p></td>
810 <td class="struct_member_description"><p>This field is the set of shared libraries associated with
811 the typelib. The entries are separated by the '|' (pipe) character.</p></td>
812 <td class="struct_member_annotations"> </td>
815 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.c-prefix"></a>c_prefix</code></em>;</p></td>
816 <td class="struct_member_description"><p>The prefix for the function names of the library</p></td>
817 <td class="struct_member_annotations"> </td>
820 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.entry-blob-size"></a>entry_blob_size</code></em>;</p></td>
821 <td class="struct_member_description"><p>The sizes of fixed-size blobs. Recording this information
822 here allows to write parser which continue to work if the format is
823 extended by adding new fields to the end of the fixed-size blobs.</p></td>
824 <td class="struct_member_annotations"> </td>
827 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.function-blob-size"></a>function_blob_size</code></em>;</p></td>
828 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
830 <td class="struct_member_annotations"> </td>
833 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.callback-blob-size"></a>callback_blob_size</code></em>;</p></td>
834 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
836 <td class="struct_member_annotations"> </td>
839 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.signal-blob-size"></a>signal_blob_size</code></em>;</p></td>
840 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
842 <td class="struct_member_annotations"> </td>
845 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.vfunc-blob-size"></a>vfunc_blob_size</code></em>;</p></td>
846 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
848 <td class="struct_member_annotations"> </td>
851 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.arg-blob-size"></a>arg_blob_size</code></em>;</p></td>
852 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
854 <td class="struct_member_annotations"> </td>
857 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.property-blob-size"></a>property_blob_size</code></em>;</p></td>
858 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
860 <td class="struct_member_annotations"> </td>
863 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.field-blob-size"></a>field_blob_size</code></em>;</p></td>
864 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
866 <td class="struct_member_annotations"> </td>
869 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.value-blob-size"></a>value_blob_size</code></em>;</p></td>
870 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
872 <td class="struct_member_annotations"> </td>
875 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.attribute-blob-size"></a>attribute_blob_size</code></em>;</p></td>
876 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
878 <td class="struct_member_annotations"> </td>
881 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.constant-blob-size"></a>constant_blob_size</code></em>;</p></td>
882 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
884 <td class="struct_member_annotations"> </td>
887 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.error-domain-blob-size"></a>error_domain_blob_size</code></em>;</p></td>
888 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
890 <td class="struct_member_annotations"> </td>
893 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.signature-blob-size"></a>signature_blob_size</code></em>;</p></td>
894 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
896 <td class="struct_member_annotations"> </td>
899 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.enum-blob-size"></a>enum_blob_size</code></em>;</p></td>
900 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
902 <td class="struct_member_annotations"> </td>
905 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.struct-blob-size"></a>struct_blob_size</code></em>;</p></td>
906 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
908 <td class="struct_member_annotations"> </td>
911 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.object-blob-size"></a>object_blob_size</code></em>;</p></td>
912 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
914 <td class="struct_member_annotations"> </td>
917 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.interface-blob-size"></a>interface_blob_size</code></em>;</p></td>
918 <td class="struct_member_description"><p>For variable-size blobs, the size of the struct up to
919 the first flexible array member. Recording this information here allows
920 to write parser which continue to work if the format is extended by
921 adding new fields before the first flexible array member in
922 variable-size blobs.</p></td>
923 <td class="struct_member_annotations"> </td>
926 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.union-blob-size"></a>union_blob_size</code></em>;</p></td>
927 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
929 <td class="struct_member_annotations"> </td>
932 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Header.sections"></a>sections</code></em>;</p></td>
933 <td class="struct_member_description"><p>Offset of section blob array</p></td>
934 <td class="struct_member_annotations"> </td>
937 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="Header.padding"></a>padding</code></em>[6];</p></td>
938 <td class="struct_member_description"><p>TODO</p></td>
939 <td class="struct_member_annotations"> </td>
946 <div class="refsect2">
947 <a name="SectionType"></a><h3>enum SectionType</h3>
949 <div class="refsect3">
950 <a name="id-1.4.3.3.8.5.4"></a><h4>Members</h4>
951 <div class="informaltable"><table width="100%" border="0">
953 <col width="300px" class="enum_members_name">
954 <col class="enum_members_description">
955 <col width="200px" class="enum_members_annotations">
959 <td class="enum_member_name"><p><a name="GI-SECTION-END:CAPS"></a>GI_SECTION_END</p></td>
960 <td class="enum_member_description">
963 <td class="enum_member_annotations"> </td>
966 <td class="enum_member_name"><p><a name="GI-SECTION-DIRECTORY-INDEX:CAPS"></a>GI_SECTION_DIRECTORY_INDEX</p></td>
967 <td class="enum_member_description">
970 <td class="enum_member_annotations"> </td>
977 <div class="refsect2">
978 <a name="Section"></a><h3>Section</h3>
979 <pre class="programlisting">typedef struct {
984 <p>A section is a blob of data that's (at least theoretically) optional,
985 and may or may not be present in the typelib. Presently, just used
986 for the directory index. This allows a form of dynamic extensibility
987 with different tradeoffs from the format minor version.</p>
988 <div class="refsect3">
989 <a name="id-1.4.3.3.8.6.5"></a><h4>Members</h4>
990 <div class="informaltable"><table width="100%" border="0">
992 <col width="300px" class="struct_members_name">
993 <col class="struct_members_description">
994 <col width="200px" class="struct_members_annotations">
998 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Section.id"></a>id</code></em>;</p></td>
999 <td class="struct_member_description"><p>A <a class="link" href="gi-GITypelib.html#SectionType" title="enum SectionType"><span class="type">SectionType</span></a></p></td>
1000 <td class="struct_member_annotations"> </td>
1003 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="Section.offset"></a>offset</code></em>;</p></td>
1004 <td class="struct_member_description"><p>Integer offset for this section</p></td>
1005 <td class="struct_member_annotations"> </td>
1012 <div class="refsect2">
1013 <a name="DirEntry"></a><h3>DirEntry</h3>
1014 <pre class="programlisting">typedef struct {
1018 guint16 reserved :15;
1023 <p>References to directory entries are stored as 1-based 16-bit indexes.</p>
1024 <p>All blobs pointed to by a directory entry start with the same layout for
1025 the first 8 bytes (the reserved flags may be used by some blob types)</p>
1026 <div class="refsect3">
1027 <a name="id-1.4.3.3.8.7.6"></a><h4>Members</h4>
1028 <div class="informaltable"><table width="100%" border="0">
1030 <col width="300px" class="struct_members_name">
1031 <col class="struct_members_description">
1032 <col width="200px" class="struct_members_annotations">
1036 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="DirEntry.blob-type"></a>blob_type</code></em>;</p></td>
1037 <td class="struct_member_description"><p>A <a class="link" href="gi-GITypelib.html#GTypelibBlobType" title="enum GTypelibBlobType"><span class="type">GTypelibBlobType</span></a></p></td>
1038 <td class="struct_member_annotations"> </td>
1041 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="DirEntry.local"></a>local</code></em> : 1;</p></td>
1042 <td class="struct_member_description"><p>Whether this entry refers to a blob in this typelib.</p></td>
1043 <td class="struct_member_annotations"> </td>
1046 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="DirEntry.reserved"></a>reserved</code></em> :15;</p></td>
1047 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1048 <td class="struct_member_annotations"> </td>
1051 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="DirEntry.name"></a>name</code></em>;</p></td>
1052 <td class="struct_member_description"><p>The name of the entry.</p></td>
1053 <td class="struct_member_annotations"> </td>
1056 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="DirEntry.offset"></a>offset</code></em>;</p></td>
1057 <td class="struct_member_description"><p>If is_local is set, this is the offset of the blob in the typelib.
1058 Otherwise, it is the offset of the namespace in which the blob has to be
1059 looked up by name.</p></td>
1060 <td class="struct_member_annotations"> </td>
1067 <div class="refsect2">
1068 <a name="SimpleTypeBlobFlags"></a><h3>SimpleTypeBlobFlags</h3>
1069 <pre class="programlisting">typedef struct {
1071 guint reserved2 :16;
1073 guint reserved3 : 2;
1075 } SimpleTypeBlobFlags;
1078 <div class="refsect3">
1079 <a name="id-1.4.3.3.8.8.5"></a><h4>Members</h4>
1080 <div class="informaltable"><table width="100%" border="0">
1082 <col width="300px" class="struct_members_name">
1083 <col class="struct_members_description">
1084 <col width="200px" class="struct_members_annotations">
1088 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="SimpleTypeBlobFlags.reserved"></a>reserved</code></em> : 8;</p></td>
1089 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1090 <td class="struct_member_annotations"> </td>
1093 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="SimpleTypeBlobFlags.reserved2"></a>reserved2</code></em> :16;</p></td>
1094 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1095 <td class="struct_member_annotations"> </td>
1098 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="SimpleTypeBlobFlags.pointer"></a>pointer</code></em> : 1;</p></td>
1099 <td class="struct_member_description"><p>TODO</p></td>
1100 <td class="struct_member_annotations"> </td>
1103 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="SimpleTypeBlobFlags.reserved3"></a>reserved3</code></em> : 2;</p></td>
1104 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1105 <td class="struct_member_annotations"> </td>
1108 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="SimpleTypeBlobFlags.tag"></a>tag</code></em> : 5;</p></td>
1109 <td class="struct_member_description"><p>A <a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a></p></td>
1110 <td class="struct_member_annotations"> </td>
1117 <div class="refsect2">
1118 <a name="SimpleTypeBlob"></a><h3>SimpleTypeBlob</h3>
1119 <p>The SimpleTypeBlob is the general purpose "reference to a type" construct,
1120 used in method parameters, returns, callback definitions, fields, constants,
1121 etc. It's actually just a 32 bit integer which you can see from the union
1122 definition. This is for efficiency reasons, since there are so many
1123 references to types.</p>
1124 <p>SimpleTypeBlob is divided into two cases; first, if "reserved" and
1125 "reserved2", the type tag for a basic type is embedded in the "tag" bits.
1126 This allows e.g. GI_TYPE_TAG_UTF8, GI_TYPE_TAG_INT and the like to be
1127 embedded directly without taking up extra space.</p>
1128 <p>References to "interfaces" (objects, interfaces) are more complicated;
1129 In this case, the integer is actually an offset into the directory (see
1130 above). Because the header is larger than 2^8=256 bits, all offsets will
1131 have one of the upper 24 bits set.</p>
1132 <div class="refsect3">
1133 <a name="id-1.4.3.3.8.9.6"></a><h4>Members</h4>
1134 <div class="informaltable"><table width="100%" border="0">
1136 <col width="300px" class="union_members_name">
1137 <col class="union_members_description">
1138 <col width="200px" class="union_members_annotations">
1142 <td class="union_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlobFlags" title="SimpleTypeBlobFlags"><span class="type">SimpleTypeBlobFlags</span></a> <em class="structfield"><code><a name="SimpleTypeBlob.flags"></a>flags</code></em>;</p></td>
1143 <td class="union_member_description"><p>TODO</p></td>
1144 <td class="union_member_annotations"> </td>
1147 <td class="union_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="SimpleTypeBlob.offset"></a>offset</code></em>;</p></td>
1148 <td class="union_member_description"><p>Offset relative to header->types that points to a TypeBlob.
1149 Unlike other offsets, this is in words (ie 32bit units) rather
1150 than bytes.</p></td>
1151 <td class="union_member_annotations"> </td>
1158 <div class="refsect2">
1159 <a name="ArgBlob"></a><h3>ArgBlob</h3>
1160 <pre class="programlisting">typedef struct {
1165 guint caller_allocates : 1;
1168 guint transfer_ownership : 1;
1169 guint transfer_container_ownership : 1;
1170 guint return_value : 1;
1179 SimpleTypeBlob arg_type;
1182 <p>Types are specified by four bytes. If the three high bytes are zero,
1183 the low byte describes a basic type, otherwise the 32bit number is an
1184 offset which points to a TypeBlob.</p>
1185 <div class="refsect3">
1186 <a name="id-1.4.3.3.8.10.5"></a><h4>Members</h4>
1187 <div class="informaltable"><table width="100%" border="0">
1189 <col width="300px" class="struct_members_name">
1190 <col class="struct_members_description">
1191 <col width="200px" class="struct_members_annotations">
1195 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ArgBlob.name"></a>name</code></em>;</p></td>
1196 <td class="struct_member_description"><p>A suggested name for the parameter.</p></td>
1197 <td class="struct_member_annotations"> </td>
1200 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.in"></a>in</code></em> : 1;</p></td>
1201 <td class="struct_member_description"><p>The parameter is an input to the function</p></td>
1202 <td class="struct_member_annotations"> </td>
1205 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.out"></a>out</code></em> : 1;</p></td>
1206 <td class="struct_member_description"><p>The parameter is used to return an output of the function. Parameters
1207 can be both in and out. Out parameters implicitly add another level of
1208 indirection to the parameter type. Ie if the type is uint32 in an out
1209 parameter, the function actually takes an uint32*.</p></td>
1210 <td class="struct_member_annotations"> </td>
1213 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.caller-allocates"></a>caller_allocates</code></em> : 1;</p></td>
1214 <td class="struct_member_description"><p>The parameter is a pointer to a struct or object that
1215 will receive an output of the function.</p></td>
1216 <td class="struct_member_annotations"> </td>
1219 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.nullable"></a>nullable</code></em> : 1;</p></td>
1220 <td class="struct_member_description"><p>Only meaningful for types which are passed as pointers. For an
1221 in parameter, indicates if it is ok to pass NULL in. Gor an out
1222 parameter, indicates whether it may return NULL. Note that NULL is a
1223 valid GList and GSList value, thus allow_none will normally be set
1224 for parameters of these types.</p></td>
1225 <td class="struct_member_annotations"> </td>
1228 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.optional"></a>optional</code></em> : 1;</p></td>
1229 <td class="struct_member_description"><p>For an out parameter, indicates that NULL may be passed in
1230 if the value is not needed.</p></td>
1231 <td class="struct_member_annotations"> </td>
1234 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.transfer-ownership"></a>transfer_ownership</code></em> : 1;</p></td>
1235 <td class="struct_member_description"><p>For an in parameter, indicates that the function takes
1236 over ownership of the parameter value. For an out parameter, it indicates
1237 that the caller is responsible for freeing the return value.</p></td>
1238 <td class="struct_member_annotations"> </td>
1241 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.transfer-container-ownership"></a>transfer_container_ownership</code></em> : 1;</p></td>
1242 <td class="struct_member_description"><p>For container types, indicates that the
1243 ownership of the container, but not of its contents is transferred.
1244 This is typically the case for out parameters returning lists of
1245 statically allocated things.</p></td>
1246 <td class="struct_member_annotations"> </td>
1249 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.return-value"></a>return_value</code></em> : 1;</p></td>
1250 <td class="struct_member_description"><p>The parameter should be considered the return value of the
1251 function. Only out parameters can be marked as return value, and there
1252 can be at most one per function call. If an out parameter is marked as
1253 return value, the actual return value of the function should be either
1254 void or a boolean indicating the success of the call.</p></td>
1255 <td class="struct_member_annotations"> </td>
1258 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.scope"></a>scope</code></em> : 3;</p></td>
1259 <td class="struct_member_description"><p>A <a class="link" href="gi-GIArgInfo.html#GIScopeType" title="enum GIScopeType"><span class="type">GIScopeType</span></a>. If the parameter is of a callback type, this denotes
1260 the scope of the user_data and the callback function pointer itself
1261 (for languages that emit code at run-time).</p></td>
1262 <td class="struct_member_annotations"> </td>
1265 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.skip"></a>skip</code></em> : 1;</p></td>
1266 <td class="struct_member_description"><p>Indicates that the parameter is only useful in C and should be skipped.</p></td>
1267 <td class="struct_member_annotations"> </td>
1270 <td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="ArgBlob.reserved"></a>reserved</code></em> :20;</p></td>
1271 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1272 <td class="struct_member_annotations"> </td>
1275 <td class="struct_member_name"><p><span class="type">gint8</span> <em class="structfield"><code><a name="ArgBlob.closure"></a>closure</code></em>;</p></td>
1276 <td class="struct_member_description"><p>Index of the closure (user_data) parameter associated with the
1277 callback, or -1.</p></td>
1278 <td class="struct_member_annotations"> </td>
1281 <td class="struct_member_name"><p><span class="type">gint8</span> <em class="structfield"><code><a name="ArgBlob.destroy"></a>destroy</code></em>;</p></td>
1282 <td class="struct_member_description"><p>Index of the destroy notfication callback parameter associated
1283 with the callback, or -1.</p></td>
1284 <td class="struct_member_annotations"> </td>
1287 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArgBlob.padding"></a>padding</code></em>;</p></td>
1288 <td class="struct_member_description"><p>TODO</p></td>
1289 <td class="struct_member_annotations"> </td>
1292 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ArgBlob.arg-type"></a>arg_type</code></em>;</p></td>
1293 <td class="struct_member_description"><p>Describes the type of the parameter. See details below.</p></td>
1294 <td class="struct_member_annotations"> </td>
1301 <div class="refsect2">
1302 <a name="SignatureBlob"></a><h3>SignatureBlob</h3>
1303 <pre class="programlisting">typedef struct {
1304 SimpleTypeBlob return_type;
1306 guint16 may_return_null : 1;
1307 guint16 caller_owns_return_value : 1;
1308 guint16 caller_owns_return_container : 1;
1309 guint16 skip_return : 1;
1310 guint16 instance_transfer_ownership : 1;
1312 guint16 reserved :10;
1314 guint16 n_arguments;
1316 ArgBlob arguments[];
1320 <div class="refsect3">
1321 <a name="id-1.4.3.3.8.11.5"></a><h4>Members</h4>
1322 <div class="informaltable"><table width="100%" border="0">
1324 <col width="300px" class="struct_members_name">
1325 <col class="struct_members_description">
1326 <col width="200px" class="struct_members_annotations">
1330 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="SignatureBlob.return-type"></a>return_type</code></em>;</p></td>
1331 <td class="struct_member_description"><p>Describes the type of the return value. See details below.</p></td>
1332 <td class="struct_member_annotations"> </td>
1335 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignatureBlob.may-return-null"></a>may_return_null</code></em> : 1;</p></td>
1336 <td class="struct_member_description"><p>Only relevant for pointer types. Indicates whether the
1337 caller must expect NULL as a return value.</p></td>
1338 <td class="struct_member_annotations"> </td>
1341 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignatureBlob.caller-owns-return-value"></a>caller_owns_return_value</code></em> : 1;</p></td>
1342 <td class="struct_member_description"><p>If set, the caller is responsible for freeing
1343 the return value if it is no longer needed.</p></td>
1344 <td class="struct_member_annotations"> </td>
1347 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignatureBlob.caller-owns-return-container"></a>caller_owns_return_container</code></em> : 1;</p></td>
1348 <td class="struct_member_description"><p>This flag is only relevant if the return type
1349 is a container type. If the flag is set, the caller is resonsible for
1350 freeing the container, but not its contents.</p></td>
1351 <td class="struct_member_annotations"> </td>
1354 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignatureBlob.skip-return"></a>skip_return</code></em> : 1;</p></td>
1355 <td class="struct_member_description"><p>Indicates that the return value is only useful in C and should
1356 be skipped.</p></td>
1357 <td class="struct_member_annotations"> </td>
1360 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignatureBlob.instance-transfer-ownership"></a>instance_transfer_ownership</code></em> : 1;</p></td>
1361 <td class="struct_member_description"><p>When calling, the function assumes ownership of
1362 the instance parameter.</p></td>
1363 <td class="struct_member_annotations"> </td>
1366 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignatureBlob.throws"></a>throws</code></em> : 1;</p></td>
1367 <td class="struct_member_description"><p>Denotes the signature takes an additional <span class="type">GError</span> argument beyond
1368 the annotated arguments.</p></td>
1369 <td class="struct_member_annotations"> </td>
1372 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignatureBlob.reserved"></a>reserved</code></em> :10;</p></td>
1373 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1374 <td class="struct_member_annotations"> </td>
1377 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignatureBlob.n-arguments"></a>n_arguments</code></em>;</p></td>
1378 <td class="struct_member_description"><p>The number of arguments that this function expects, also the
1379 length of the array of ArgBlobs.</p></td>
1380 <td class="struct_member_annotations"> </td>
1383 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#ArgBlob" title="ArgBlob"><span class="type">ArgBlob</span></a> <em class="structfield"><code><a name="SignatureBlob.arguments"></a>arguments</code></em>[];</p></td>
1384 <td class="struct_member_description"><p>An array of ArgBlob for the arguments of the function.</p></td>
1385 <td class="struct_member_annotations"> </td>
1392 <div class="refsect2">
1393 <a name="CommonBlob"></a><h3>CommonBlob</h3>
1394 <pre class="programlisting">typedef struct {
1395 guint16 blob_type; /* 1 */
1397 guint16 deprecated : 1;
1398 guint16 reserved :15;
1402 <p>The <a class="link" href="gi-GITypelib.html#CommonBlob" title="CommonBlob"><span class="type">CommonBlob</span></a> is shared between <a class="link" href="gi-GITypelib.html#FunctionBlob" title="FunctionBlob"><span class="type">FunctionBlob</span></a>,
1403 <a class="link" href="gi-GITypelib.html#CallbackBlob" title="CallbackBlob"><span class="type">CallbackBlob</span></a>, <a class="link" href="gi-GITypelib.html#SignalBlob" title="SignalBlob"><span class="type">SignalBlob</span></a>.</p>
1405 <div class="refsect3">
1406 <a name="id-1.4.3.3.8.12.6"></a><h4>Members</h4>
1407 <div class="informaltable"><table width="100%" border="0">
1409 <col width="300px" class="struct_members_name">
1410 <col class="struct_members_description">
1411 <col width="200px" class="struct_members_annotations">
1415 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="CommonBlob.blob-type"></a>blob_type</code></em>;</p></td>
1416 <td class="struct_member_description"><p>A <a class="link" href="gi-GITypelib.html#GTypelibBlobType" title="enum GTypelibBlobType"><span class="type">GTypelibBlobType</span></a></p></td>
1417 <td class="struct_member_annotations"> </td>
1420 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="CommonBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
1421 <td class="struct_member_description"><p>Whether the blob is deprecated.</p></td>
1422 <td class="struct_member_annotations"> </td>
1425 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="CommonBlob.reserved"></a>reserved</code></em> :15;</p></td>
1426 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1427 <td class="struct_member_annotations"> </td>
1430 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="CommonBlob.name"></a>name</code></em>;</p></td>
1431 <td class="struct_member_description"><p>The name of the blob.</p></td>
1432 <td class="struct_member_annotations"> </td>
1439 <div class="refsect2">
1440 <a name="FunctionBlob"></a><h3>FunctionBlob</h3>
1441 <pre class="programlisting">typedef struct {
1442 guint16 blob_type; /* 1 */
1444 guint16 deprecated : 1;
1447 guint16 constructor : 1;
1448 guint16 wraps_vfunc : 1;
1451 /* Note the bits above need to match CommonBlob
1452 * and are thus exhausted, extend things using
1453 * the reserved block below. */
1459 guint16 is_static : 1;
1460 guint16 reserved : 15;
1461 guint16 reserved2 : 16;
1465 <div class="refsect3">
1466 <a name="id-1.4.3.3.8.13.5"></a><h4>Members</h4>
1467 <div class="informaltable"><table width="100%" border="0">
1469 <col width="300px" class="struct_members_name">
1470 <col class="struct_members_description">
1471 <col width="200px" class="struct_members_annotations">
1475 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.blob-type"></a>blob_type</code></em>;</p></td>
1476 <td class="struct_member_description"><p><a class="link" href="gi-GITypelib.html#BLOB-TYPE-FUNCTION:CAPS"><span class="type">BLOB_TYPE_FUNCTION</span></a></p></td>
1477 <td class="struct_member_annotations"> </td>
1480 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
1481 <td class="struct_member_description"><p>The function is deprecated.</p></td>
1482 <td class="struct_member_annotations"> </td>
1485 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.setter"></a>setter</code></em> : 1;</p></td>
1486 <td class="struct_member_description"><p>The function is a setter for a property. Language bindings may
1487 prefer to not bind individual setters and rely on the generic
1488 <code class="function">g_object_set()</code>.</p></td>
1489 <td class="struct_member_annotations"> </td>
1492 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.getter"></a>getter</code></em> : 1;</p></td>
1493 <td class="struct_member_description"><p>The function is a getter for a property. Language bindings may
1494 prefer to not bind individual getters and rely on the generic
1495 <code class="function">g_object_get()</code>.</p></td>
1496 <td class="struct_member_annotations"> </td>
1499 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.constructor"></a>constructor</code></em> : 1;</p></td>
1500 <td class="struct_member_description"><p>The function acts as a constructor for the object it is
1501 contained in.</p></td>
1502 <td class="struct_member_annotations"> </td>
1505 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.wraps-vfunc"></a>wraps_vfunc</code></em> : 1;</p></td>
1506 <td class="struct_member_description"><p>The function is a simple wrapper for a virtual function.</p></td>
1507 <td class="struct_member_annotations"> </td>
1510 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.throws"></a>throws</code></em> : 1;</p></td>
1511 <td class="struct_member_description"><p> This is now additionally stored in the <a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob"><span class="type">SignatureBlob</span></a>. </p></td>
1512 <td class="struct_member_annotations"><span class="annotation">[deprecated]</span></td>
1515 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.index"></a>index</code></em> :10;</p></td>
1516 <td class="struct_member_description"><p>Index of the property that this function is a setter or getter of
1517 in the array of properties of the containing interface, or index
1518 of the virtual function that this function wraps.</p></td>
1519 <td class="struct_member_annotations"> </td>
1522 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="FunctionBlob.name"></a>name</code></em>;</p></td>
1523 <td class="struct_member_description"><p>TODO</p></td>
1524 <td class="struct_member_annotations"> </td>
1527 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="FunctionBlob.symbol"></a>symbol</code></em>;</p></td>
1528 <td class="struct_member_description"><p>The symbol which can be used to obtain the function pointer with
1529 <code class="function">dlsym()</code>.</p></td>
1530 <td class="struct_member_annotations"> </td>
1533 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="FunctionBlob.signature"></a>signature</code></em>;</p></td>
1534 <td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types and the
1535 return value type.</p></td>
1536 <td class="struct_member_annotations"> </td>
1539 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.is-static"></a>is_static</code></em> : 1;</p></td>
1540 <td class="struct_member_description"><p>The function is a "static method"; in other words it's a pure
1541 function whose name is conceptually scoped to the object.</p></td>
1542 <td class="struct_member_annotations"> </td>
1545 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.reserved"></a>reserved</code></em> : 15;</p></td>
1546 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1547 <td class="struct_member_annotations"> </td>
1550 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FunctionBlob.reserved2"></a>reserved2</code></em> : 16;</p></td>
1551 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1552 <td class="struct_member_annotations"> </td>
1559 <div class="refsect2">
1560 <a name="CallbackBlob"></a><h3>CallbackBlob</h3>
1561 <pre class="programlisting">typedef struct {
1562 guint16 blob_type; /* 2 */
1564 guint16 deprecated : 1;
1565 guint16 reserved :15;
1571 <div class="refsect3">
1572 <a name="id-1.4.3.3.8.14.5"></a><h4>Members</h4>
1573 <div class="informaltable"><table width="100%" border="0">
1575 <col width="300px" class="struct_members_name">
1576 <col class="struct_members_description">
1577 <col width="200px" class="struct_members_annotations">
1581 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="CallbackBlob.blob-type"></a>blob_type</code></em>;</p></td>
1582 <td class="struct_member_description"><p>TODO</p></td>
1583 <td class="struct_member_annotations"> </td>
1586 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="CallbackBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
1587 <td class="struct_member_description"><p>TODO</p></td>
1588 <td class="struct_member_annotations"> </td>
1591 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="CallbackBlob.reserved"></a>reserved</code></em> :15;</p></td>
1592 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1593 <td class="struct_member_annotations"> </td>
1596 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="CallbackBlob.name"></a>name</code></em>;</p></td>
1597 <td class="struct_member_description"><p>TODO</p></td>
1598 <td class="struct_member_annotations"> </td>
1601 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="CallbackBlob.signature"></a>signature</code></em>;</p></td>
1602 <td class="struct_member_description"><p>Offset of the <a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob"><span class="type">SignatureBlob</span></a> describing the parameter types and
1603 the return value type.</p></td>
1604 <td class="struct_member_annotations"> </td>
1611 <div class="refsect2">
1612 <a name="InterfaceTypeBlob"></a><h3>InterfaceTypeBlob</h3>
1613 <pre class="programlisting">typedef struct {
1619 } InterfaceTypeBlob;
1621 <p>If the interface is an enum of flags type, is_pointer is 0, otherwise it is 1.</p>
1622 <div class="refsect3">
1623 <a name="id-1.4.3.3.8.15.5"></a><h4>Members</h4>
1624 <div class="informaltable"><table width="100%" border="0">
1626 <col width="300px" class="struct_members_name">
1627 <col class="struct_members_description">
1628 <col width="200px" class="struct_members_annotations">
1632 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="InterfaceTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
1633 <td class="struct_member_description"><p>Whether this type represents an indirection</p></td>
1634 <td class="struct_member_annotations"> </td>
1637 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="InterfaceTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
1638 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1639 <td class="struct_member_annotations"> </td>
1642 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="InterfaceTypeBlob.tag"></a>tag</code></em> :5;</p></td>
1643 <td class="struct_member_description"><p>A <a class="link" href="gi-common-types.html#GITypeTag" title="enum GITypeTag"><span class="type">GITypeTag</span></a></p></td>
1644 <td class="struct_member_annotations"> </td>
1647 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="InterfaceTypeBlob.reserved2"></a>reserved2</code></em>;</p></td>
1648 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1649 <td class="struct_member_annotations"> </td>
1652 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceTypeBlob.interface"></a>interface</code></em>;</p></td>
1653 <td class="struct_member_description"><p>Index of the directory entry for the interface.</p></td>
1654 <td class="struct_member_annotations"> </td>
1661 <div class="refsect2">
1662 <a name="ArrayTypeDimension"></a><h3>ArrayTypeDimension</h3>
1664 <div class="refsect3">
1665 <a name="id-1.4.3.3.8.16.4"></a><h4>Members</h4>
1666 <div class="informaltable"><table width="100%" border="0">
1668 <col width="300px" class="union_members_name">
1669 <col class="union_members_description">
1670 <col width="200px" class="union_members_annotations">
1674 <td class="union_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeDimension.length"></a>length</code></em>;</p></td>
1675 <td class="union_member_description"><p>TODO</p></td>
1676 <td class="union_member_annotations"> </td>
1679 <td class="union_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeDimension.size"></a>size</code></em>;</p></td>
1680 <td class="union_member_description"><p>TODO</p></td>
1681 <td class="union_member_annotations"> </td>
1688 <div class="refsect2">
1689 <a name="ArrayTypeBlob"></a><h3>ArrayTypeBlob</h3>
1690 <pre class="programlisting">typedef struct {
1692 guint16 reserved :2;
1695 guint16 zero_terminated :1;
1696 guint16 has_length :1;
1697 guint16 has_size :1;
1698 guint16 array_type :2;
1699 guint16 reserved2 :3;
1701 ArrayTypeDimension dimensions;
1703 SimpleTypeBlob type;
1707 <div class="refsect3">
1708 <a name="id-1.4.3.3.8.17.5"></a><h4>Members</h4>
1709 <div class="informaltable"><table width="100%" border="0">
1711 <col width="300px" class="struct_members_name">
1712 <col class="struct_members_description">
1713 <col width="200px" class="struct_members_annotations">
1717 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
1718 <td class="struct_member_description"><p>TODO</p></td>
1719 <td class="struct_member_annotations"> </td>
1722 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
1723 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1724 <td class="struct_member_annotations"> </td>
1727 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeBlob.tag"></a>tag</code></em> :5;</p></td>
1728 <td class="struct_member_description"><p>TODO</p></td>
1729 <td class="struct_member_annotations"> </td>
1732 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeBlob.zero-terminated"></a>zero_terminated</code></em> :1;</p></td>
1733 <td class="struct_member_description"><p>Indicates that the array must be terminated by a suitable
1734 <span class="type">NULL</span> value.</p></td>
1735 <td class="struct_member_annotations"> </td>
1738 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeBlob.has-length"></a>has_length</code></em> :1;</p></td>
1739 <td class="struct_member_description"><p>Indicates that length points to a parameter specifying the
1740 length of the array. If both has_length and zero_terminated are set, the
1741 convention is to pass -1 for the length if the array is zero-terminated.</p></td>
1742 <td class="struct_member_annotations"> </td>
1745 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeBlob.has-size"></a>has_size</code></em> :1;</p></td>
1746 <td class="struct_member_description"><p>Indicates that size is the fixed size of the array.</p></td>
1747 <td class="struct_member_annotations"> </td>
1750 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeBlob.array-type"></a>array_type</code></em> :2;</p></td>
1751 <td class="struct_member_description"><p>Indicates whether this is a C array, GArray, GPtrArray, or
1752 GByteArray. If something other than a C array, the length and element
1753 size are implicit in the structure.</p></td>
1754 <td class="struct_member_annotations"> </td>
1757 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ArrayTypeBlob.reserved2"></a>reserved2</code></em> :3;</p></td>
1758 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1759 <td class="struct_member_annotations"> </td>
1762 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#ArrayTypeDimension" title="ArrayTypeDimension"><span class="type">ArrayTypeDimension</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.dimensions"></a>dimensions</code></em>;</p></td>
1763 <td class="struct_member_description"><p>TODO</p></td>
1764 <td class="struct_member_annotations"> </td>
1767 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ArrayTypeBlob.type"></a>type</code></em>;</p></td>
1768 <td class="struct_member_description"><p>TODO</p></td>
1769 <td class="struct_member_annotations"> </td>
1776 <div class="refsect2">
1777 <a name="ParamTypeBlob"></a><h3>ParamTypeBlob</h3>
1778 <pre class="programlisting">typedef struct {
1786 SimpleTypeBlob type[];
1790 <div class="refsect3">
1791 <a name="id-1.4.3.3.8.18.5"></a><h4>Members</h4>
1792 <div class="informaltable"><table width="100%" border="0">
1794 <col width="300px" class="struct_members_name">
1795 <col class="struct_members_description">
1796 <col width="200px" class="struct_members_annotations">
1800 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="ParamTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
1801 <td class="struct_member_description"><p>TODO</p></td>
1802 <td class="struct_member_annotations"> </td>
1805 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="ParamTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
1806 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1807 <td class="struct_member_annotations"> </td>
1810 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="ParamTypeBlob.tag"></a>tag</code></em> :5;</p></td>
1811 <td class="struct_member_description"><p>TODO</p></td>
1812 <td class="struct_member_annotations"> </td>
1815 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="ParamTypeBlob.reserved2"></a>reserved2</code></em>;</p></td>
1816 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1817 <td class="struct_member_annotations"> </td>
1820 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ParamTypeBlob.n-types"></a>n_types</code></em>;</p></td>
1821 <td class="struct_member_description"><p>The number of parameter types to follow.</p></td>
1822 <td class="struct_member_annotations"> </td>
1825 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ParamTypeBlob.type"></a>type</code></em>[];</p></td>
1826 <td class="struct_member_description"><p>Describes the type of the list elements.</p></td>
1827 <td class="struct_member_annotations"> </td>
1834 <div class="refsect2">
1835 <a name="ErrorTypeBlob"></a><h3>ErrorTypeBlob</h3>
1836 <pre class="programlisting">typedef struct {
1843 guint16 n_domains; /* Must be 0 */
1848 <div class="refsect3">
1849 <a name="id-1.4.3.3.8.19.5"></a><h4>Members</h4>
1850 <div class="informaltable"><table width="100%" border="0">
1852 <col width="300px" class="struct_members_name">
1853 <col class="struct_members_description">
1854 <col width="200px" class="struct_members_annotations">
1858 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="ErrorTypeBlob.pointer"></a>pointer</code></em> :1;</p></td>
1859 <td class="struct_member_description"><p>TODO</p></td>
1860 <td class="struct_member_annotations"> </td>
1863 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="ErrorTypeBlob.reserved"></a>reserved</code></em> :2;</p></td>
1864 <td class="struct_member_description"><p>TODO</p></td>
1865 <td class="struct_member_annotations"> </td>
1868 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="ErrorTypeBlob.tag"></a>tag</code></em> :5;</p></td>
1869 <td class="struct_member_description"><p>TODO</p></td>
1870 <td class="struct_member_annotations"> </td>
1873 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="ErrorTypeBlob.reserved2"></a>reserved2</code></em>;</p></td>
1874 <td class="struct_member_description"><p>TODO</p></td>
1875 <td class="struct_member_annotations"> </td>
1878 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ErrorTypeBlob.n-domains"></a>n_domains</code></em>;</p></td>
1879 <td class="struct_member_description"><p>TODO: must be 0</p></td>
1880 <td class="struct_member_annotations"> </td>
1883 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ErrorTypeBlob.domains"></a>domains</code></em>[];</p></td>
1884 <td class="struct_member_description"><p>TODO</p></td>
1885 <td class="struct_member_annotations"> </td>
1892 <div class="refsect2">
1893 <a name="ValueBlob"></a><h3>ValueBlob</h3>
1894 <pre class="programlisting">typedef struct {
1895 guint32 deprecated : 1;
1896 guint32 unsigned_value : 1;
1897 guint32 reserved :30;
1902 <p>Values commonly occur in enums and flags.</p>
1903 <div class="refsect3">
1904 <a name="id-1.4.3.3.8.20.5"></a><h4>Members</h4>
1905 <div class="informaltable"><table width="100%" border="0">
1907 <col width="300px" class="struct_members_name">
1908 <col class="struct_members_description">
1909 <col width="200px" class="struct_members_annotations">
1913 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ValueBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
1914 <td class="struct_member_description"><p>Whether this value is deprecated</p></td>
1915 <td class="struct_member_annotations"> </td>
1918 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ValueBlob.unsigned-value"></a>unsigned_value</code></em> : 1;</p></td>
1919 <td class="struct_member_description"><p>if set, value is a 32-bit unsigned integer cast to gint32</p></td>
1920 <td class="struct_member_annotations"> </td>
1923 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ValueBlob.reserved"></a>reserved</code></em> :30;</p></td>
1924 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1925 <td class="struct_member_annotations"> </td>
1928 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ValueBlob.name"></a>name</code></em>;</p></td>
1929 <td class="struct_member_description"><p>Name of blob</p></td>
1930 <td class="struct_member_annotations"> </td>
1933 <td class="struct_member_name"><p><span class="type">gint32</span> <em class="structfield"><code><a name="ValueBlob.value"></a>value</code></em>;</p></td>
1934 <td class="struct_member_description"><p>The numerical value</p></td>
1935 <td class="struct_member_annotations"> </td>
1942 <div class="refsect2">
1943 <a name="FieldBlob"></a><h3>FieldBlob</h3>
1944 <pre class="programlisting">typedef struct {
1949 guint8 has_embedded_type :1;
1953 guint16 struct_offset;
1957 SimpleTypeBlob type;
1961 <div class="refsect3">
1962 <a name="id-1.4.3.3.8.21.5"></a><h4>Members</h4>
1963 <div class="informaltable"><table width="100%" border="0">
1965 <col width="300px" class="struct_members_name">
1966 <col class="struct_members_description">
1967 <col width="200px" class="struct_members_annotations">
1971 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="FieldBlob.name"></a>name</code></em>;</p></td>
1972 <td class="struct_member_description"><p>The name of the field.</p></td>
1973 <td class="struct_member_annotations"> </td>
1976 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="FieldBlob.readable"></a>readable</code></em> :1;</p></td>
1977 <td class="struct_member_description"><p>TODO</p></td>
1978 <td class="struct_member_annotations"> </td>
1981 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="FieldBlob.writable"></a>writable</code></em> :1;</p></td>
1982 <td class="struct_member_description"><p>How the field may be accessed.</p></td>
1983 <td class="struct_member_annotations"> </td>
1986 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="FieldBlob.has-embedded-type"></a>has_embedded_type</code></em> :1;</p></td>
1987 <td class="struct_member_description"><p>An anonymous type follows the FieldBlob.</p></td>
1988 <td class="struct_member_annotations"> </td>
1991 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="FieldBlob.reserved"></a>reserved</code></em> :5;</p></td>
1992 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1993 <td class="struct_member_annotations"> </td>
1996 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="FieldBlob.bits"></a>bits</code></em>;</p></td>
1997 <td class="struct_member_description"><p>If this field is part of a bitfield, the number of bits which it
1998 uses, otherwise 0.</p></td>
1999 <td class="struct_member_annotations"> </td>
2002 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="FieldBlob.struct-offset"></a>struct_offset</code></em>;</p></td>
2003 <td class="struct_member_description"><p>The offset of the field in the struct. The value 0xFFFF
2004 indicates that the struct offset is unknown.</p></td>
2005 <td class="struct_member_annotations"> </td>
2008 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="FieldBlob.reserved2"></a>reserved2</code></em>;</p></td>
2009 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2010 <td class="struct_member_annotations"> </td>
2013 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="FieldBlob.type"></a>type</code></em>;</p></td>
2014 <td class="struct_member_description"><p>The type of the field.</p></td>
2015 <td class="struct_member_annotations"> </td>
2022 <div class="refsect2">
2023 <a name="RegisteredTypeBlob"></a><h3>RegisteredTypeBlob</h3>
2024 <pre class="programlisting">typedef struct {
2026 guint16 deprecated : 1;
2027 guint16 unregistered : 1;
2028 guint16 reserved :14;
2033 } RegisteredTypeBlob;
2036 <div class="refsect3">
2037 <a name="id-1.4.3.3.8.22.5"></a><h4>Members</h4>
2038 <div class="informaltable"><table width="100%" border="0">
2040 <col width="300px" class="struct_members_name">
2041 <col class="struct_members_description">
2042 <col width="200px" class="struct_members_annotations">
2046 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="RegisteredTypeBlob.blob-type"></a>blob_type</code></em>;</p></td>
2047 <td class="struct_member_description"><p>TODO</p></td>
2048 <td class="struct_member_annotations"> </td>
2051 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="RegisteredTypeBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
2052 <td class="struct_member_description"><p>TODO</p></td>
2053 <td class="struct_member_annotations"> </td>
2056 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="RegisteredTypeBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
2057 <td class="struct_member_description"><p>TODO</p></td>
2058 <td class="struct_member_annotations"> </td>
2061 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="RegisteredTypeBlob.reserved"></a>reserved</code></em> :14;</p></td>
2062 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2063 <td class="struct_member_annotations"> </td>
2066 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="RegisteredTypeBlob.name"></a>name</code></em>;</p></td>
2067 <td class="struct_member_description"><p>TODO</p></td>
2068 <td class="struct_member_annotations"> </td>
2071 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="RegisteredTypeBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
2072 <td class="struct_member_description"><p>The name under which the type is registered with GType.</p></td>
2073 <td class="struct_member_annotations"> </td>
2076 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="RegisteredTypeBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
2077 <td class="struct_member_description"><p>The symbol name of the get_type() function which registers the
2079 <td class="struct_member_annotations"> </td>
2086 <div class="refsect2">
2087 <a name="StructBlob"></a><h3>StructBlob</h3>
2088 <pre class="programlisting">typedef struct {
2091 guint16 deprecated : 1;
2092 guint16 unregistered : 1;
2093 guint16 is_gtype_struct : 1;
2094 guint16 alignment : 6;
2095 guint16 foreign : 1;
2096 guint16 reserved : 6;
2113 <div class="refsect3">
2114 <a name="id-1.4.3.3.8.23.5"></a><h4>Members</h4>
2115 <div class="informaltable"><table width="100%" border="0">
2117 <col width="300px" class="struct_members_name">
2118 <col class="struct_members_description">
2119 <col width="200px" class="struct_members_annotations">
2123 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="StructBlob.blob-type"></a>blob_type</code></em>;</p></td>
2124 <td class="struct_member_description"><p><a class="link" href="gi-GITypelib.html#BLOB-TYPE-STRUCT:CAPS"><span class="type">BLOB_TYPE_STRUCT</span></a></p></td>
2125 <td class="struct_member_annotations"> </td>
2128 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="StructBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
2129 <td class="struct_member_description"><p>Whether this structure is deprecated</p></td>
2130 <td class="struct_member_annotations"> </td>
2133 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="StructBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
2134 <td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
2135 <td class="struct_member_annotations"> </td>
2138 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="StructBlob.is-gtype-struct"></a>is_gtype_struct</code></em> : 1;</p></td>
2139 <td class="struct_member_description"><p>Whether this structure is the class or interface layout
2140 for a GObject</p></td>
2141 <td class="struct_member_annotations"> </td>
2144 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="StructBlob.alignment"></a>alignment</code></em> : 6;</p></td>
2145 <td class="struct_member_description"><p>The byte boundary that the struct is aligned to in memory</p></td>
2146 <td class="struct_member_annotations"> </td>
2149 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="StructBlob.foreign"></a>foreign</code></em> : 1;</p></td>
2150 <td class="struct_member_description"><p>If the type is foreign, eg if it's expected to be overridden by
2151 a native language binding instead of relying of introspected bindings.</p></td>
2152 <td class="struct_member_annotations"> </td>
2155 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="StructBlob.reserved"></a>reserved</code></em> : 6;</p></td>
2156 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2157 <td class="struct_member_annotations"> </td>
2160 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="StructBlob.name"></a>name</code></em>;</p></td>
2161 <td class="struct_member_description"><p>TODO</p></td>
2162 <td class="struct_member_annotations"> </td>
2165 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="StructBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
2166 <td class="struct_member_description"><p>String name of the associated <span class="type">GType</span></p></td>
2167 <td class="struct_member_annotations"> </td>
2170 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="StructBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
2171 <td class="struct_member_description"><p>String naming the symbol which gets the runtime <span class="type">GType</span></p></td>
2172 <td class="struct_member_annotations"> </td>
2175 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="StructBlob.size"></a>size</code></em>;</p></td>
2176 <td class="struct_member_description"><p>The size of the struct in bytes.</p></td>
2177 <td class="struct_member_annotations"> </td>
2180 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="StructBlob.n-fields"></a>n_fields</code></em>;</p></td>
2181 <td class="struct_member_description"><p>TODO</p></td>
2182 <td class="struct_member_annotations"> </td>
2185 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="StructBlob.n-methods"></a>n_methods</code></em>;</p></td>
2186 <td class="struct_member_description"><p>TODO</p></td>
2187 <td class="struct_member_annotations"> </td>
2190 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="StructBlob.reserved2"></a>reserved2</code></em>;</p></td>
2191 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2192 <td class="struct_member_annotations"> </td>
2195 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="StructBlob.reserved3"></a>reserved3</code></em>;</p></td>
2196 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2197 <td class="struct_member_annotations"> </td>
2204 <div class="refsect2">
2205 <a name="UnionBlob"></a><h3>UnionBlob</h3>
2206 <pre class="programlisting">typedef struct {
2208 guint16 deprecated : 1;
2209 guint16 unregistered : 1;
2210 guint16 discriminated : 1;
2211 guint16 alignment : 6;
2212 guint16 reserved : 7;
2221 guint16 n_functions;
2226 gint32 discriminator_offset;
2227 SimpleTypeBlob discriminator_type;
2231 <div class="refsect3">
2232 <a name="id-1.4.3.3.8.24.5"></a><h4>Members</h4>
2233 <div class="informaltable"><table width="100%" border="0">
2235 <col width="300px" class="struct_members_name">
2236 <col class="struct_members_description">
2237 <col width="200px" class="struct_members_annotations">
2241 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="UnionBlob.blob-type"></a>blob_type</code></em>;</p></td>
2242 <td class="struct_member_description"><p>TODO</p></td>
2243 <td class="struct_member_annotations"> </td>
2246 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="UnionBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
2247 <td class="struct_member_description"><p>TODO</p></td>
2248 <td class="struct_member_annotations"> </td>
2251 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="UnionBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
2252 <td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
2253 <td class="struct_member_annotations"> </td>
2256 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="UnionBlob.discriminated"></a>discriminated</code></em> : 1;</p></td>
2257 <td class="struct_member_description"><p>Is set if the union is discriminated</p></td>
2258 <td class="struct_member_annotations"> </td>
2261 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="UnionBlob.alignment"></a>alignment</code></em> : 6;</p></td>
2262 <td class="struct_member_description"><p>The byte boundary that the union is aligned to in memory</p></td>
2263 <td class="struct_member_annotations"> </td>
2266 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="UnionBlob.reserved"></a>reserved</code></em> : 7;</p></td>
2267 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2268 <td class="struct_member_annotations"> </td>
2271 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="UnionBlob.name"></a>name</code></em>;</p></td>
2272 <td class="struct_member_description"><p>TODO</p></td>
2273 <td class="struct_member_annotations"> </td>
2276 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="UnionBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
2277 <td class="struct_member_description"><p>String name of the associated <span class="type">GType</span></p></td>
2278 <td class="struct_member_annotations"> </td>
2281 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="UnionBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
2282 <td class="struct_member_description"><p>String naming the symbol which gets the runtime <span class="type">GType</span></p></td>
2283 <td class="struct_member_annotations"> </td>
2286 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="UnionBlob.size"></a>size</code></em>;</p></td>
2287 <td class="struct_member_description"><p>TODO</p></td>
2288 <td class="struct_member_annotations"> </td>
2291 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="UnionBlob.n-fields"></a>n_fields</code></em>;</p></td>
2292 <td class="struct_member_description"><p>Length of the arrays</p></td>
2293 <td class="struct_member_annotations"> </td>
2296 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="UnionBlob.n-functions"></a>n_functions</code></em>;</p></td>
2297 <td class="struct_member_description"><p>TODO</p></td>
2298 <td class="struct_member_annotations"> </td>
2301 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="UnionBlob.reserved2"></a>reserved2</code></em>;</p></td>
2302 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2303 <td class="struct_member_annotations"> </td>
2306 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="UnionBlob.reserved3"></a>reserved3</code></em>;</p></td>
2307 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2308 <td class="struct_member_annotations"> </td>
2311 <td class="struct_member_name"><p><span class="type">gint32</span> <em class="structfield"><code><a name="UnionBlob.discriminator-offset"></a>discriminator_offset</code></em>;</p></td>
2312 <td class="struct_member_description"><p>Offset from the beginning of the union where the
2313 discriminator of a discriminated union is located. The value 0xFFFF
2314 indicates that the discriminator offset is unknown.</p></td>
2315 <td class="struct_member_annotations"> </td>
2318 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="UnionBlob.discriminator-type"></a>discriminator_type</code></em>;</p></td>
2319 <td class="struct_member_description"><p>Type of the discriminator</p></td>
2320 <td class="struct_member_annotations"> </td>
2327 <div class="refsect2">
2328 <a name="EnumBlob"></a><h3>EnumBlob</h3>
2329 <pre class="programlisting">typedef struct {
2332 guint16 deprecated : 1;
2333 guint16 unregistered : 1;
2334 guint16 storage_type : 5;
2335 guint16 reserved : 9;
2345 guint32 error_domain;
2351 <div class="refsect3">
2352 <a name="id-1.4.3.3.8.25.5"></a><h4>Members</h4>
2353 <div class="informaltable"><table width="100%" border="0">
2355 <col width="300px" class="struct_members_name">
2356 <col class="struct_members_description">
2357 <col width="200px" class="struct_members_annotations">
2361 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="EnumBlob.blob-type"></a>blob_type</code></em>;</p></td>
2362 <td class="struct_member_description"><p>TODO</p></td>
2363 <td class="struct_member_annotations"> </td>
2366 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="EnumBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
2367 <td class="struct_member_description"><p>TODO</p></td>
2368 <td class="struct_member_annotations"> </td>
2371 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="EnumBlob.unregistered"></a>unregistered</code></em> : 1;</p></td>
2372 <td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
2373 <td class="struct_member_annotations"> </td>
2376 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="EnumBlob.storage-type"></a>storage_type</code></em> : 5;</p></td>
2377 <td class="struct_member_description"><p>The tag of the type used for the enum in the C ABI
2378 (will be a signed or unsigned integral type)</p></td>
2379 <td class="struct_member_annotations"> </td>
2382 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="EnumBlob.reserved"></a>reserved</code></em> : 9;</p></td>
2383 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2384 <td class="struct_member_annotations"> </td>
2387 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="EnumBlob.name"></a>name</code></em>;</p></td>
2388 <td class="struct_member_description"><p>TODO</p></td>
2389 <td class="struct_member_annotations"> </td>
2392 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="EnumBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
2393 <td class="struct_member_description"><p>String name of the associated <span class="type">GType</span></p></td>
2394 <td class="struct_member_annotations"> </td>
2397 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="EnumBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
2398 <td class="struct_member_description"><p>String naming the symbol which gets the runtime <span class="type">GType</span></p></td>
2399 <td class="struct_member_annotations"> </td>
2402 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="EnumBlob.n-values"></a>n_values</code></em>;</p></td>
2403 <td class="struct_member_description"><p>The length of the values array.</p></td>
2404 <td class="struct_member_annotations"> </td>
2407 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="EnumBlob.n-methods"></a>n_methods</code></em>;</p></td>
2408 <td class="struct_member_description"><p>The length of the methods array.</p></td>
2409 <td class="struct_member_annotations"> </td>
2412 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="EnumBlob.error-domain"></a>error_domain</code></em>;</p></td>
2413 <td class="struct_member_description"><p>String naming the <span class="type">GError</span> domain this enum is associated with</p></td>
2414 <td class="struct_member_annotations"> </td>
2417 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#ValueBlob" title="ValueBlob"><span class="type">ValueBlob</span></a> <em class="structfield"><code><a name="EnumBlob.values"></a>values</code></em>[];</p></td>
2418 <td class="struct_member_description"><p>TODO</p></td>
2419 <td class="struct_member_annotations"> </td>
2426 <div class="refsect2">
2427 <a name="PropertyBlob"></a><h3>PropertyBlob</h3>
2428 <pre class="programlisting">typedef struct {
2431 guint32 deprecated : 1;
2432 guint32 readable : 1;
2433 guint32 writable : 1;
2434 guint32 construct : 1;
2435 guint32 construct_only : 1;
2436 guint32 transfer_ownership : 1;
2437 guint32 transfer_container_ownership : 1;
2438 guint32 reserved :25;
2442 SimpleTypeBlob type;
2446 <div class="refsect3">
2447 <a name="id-1.4.3.3.8.26.5"></a><h4>Members</h4>
2448 <div class="informaltable"><table width="100%" border="0">
2450 <col width="300px" class="struct_members_name">
2451 <col class="struct_members_description">
2452 <col width="200px" class="struct_members_annotations">
2456 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.name"></a>name</code></em>;</p></td>
2457 <td class="struct_member_description"><p>The name of the property.</p></td>
2458 <td class="struct_member_annotations"> </td>
2461 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
2462 <td class="struct_member_description"><p>TODO</p></td>
2463 <td class="struct_member_annotations"> </td>
2466 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.readable"></a>readable</code></em> : 1;</p></td>
2467 <td class="struct_member_description"><p>TODO</p></td>
2468 <td class="struct_member_annotations"> </td>
2471 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.writable"></a>writable</code></em> : 1;</p></td>
2472 <td class="struct_member_description"><p>TODO</p></td>
2473 <td class="struct_member_annotations"> </td>
2476 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.construct"></a>construct</code></em> : 1;</p></td>
2477 <td class="struct_member_description"><p>TODO</p></td>
2478 <td class="struct_member_annotations"> </td>
2481 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.construct-only"></a>construct_only</code></em> : 1;</p></td>
2482 <td class="struct_member_description"><p>The ParamFlags used when registering the property.</p></td>
2483 <td class="struct_member_annotations"> </td>
2486 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.transfer-ownership"></a>transfer_ownership</code></em> : 1;</p></td>
2487 <td class="struct_member_description"><p>When writing, the type containing the property takes
2488 ownership of the value. When reading, the returned value needs to be
2489 released by the caller.</p></td>
2490 <td class="struct_member_annotations"> </td>
2493 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.transfer-container-ownership"></a>transfer_container_ownership</code></em> : 1;</p></td>
2494 <td class="struct_member_description"><p>For container types indicates that the
2495 ownership of the container, but not of its contents, is transferred.
2496 This is typically the case when reading lists of statically allocated
2498 <td class="struct_member_annotations"> </td>
2501 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.reserved"></a>reserved</code></em> :25;</p></td>
2502 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2503 <td class="struct_member_annotations"> </td>
2506 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="PropertyBlob.reserved2"></a>reserved2</code></em>;</p></td>
2507 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2508 <td class="struct_member_annotations"> </td>
2511 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="PropertyBlob.type"></a>type</code></em>;</p></td>
2512 <td class="struct_member_description"><p>Describes the type of the property.</p></td>
2513 <td class="struct_member_annotations"> </td>
2520 <div class="refsect2">
2521 <a name="SignalBlob"></a><h3>SignalBlob</h3>
2522 <pre class="programlisting">typedef struct {
2523 guint16 deprecated : 1;
2524 guint16 run_first : 1;
2525 guint16 run_last : 1;
2526 guint16 run_cleanup : 1;
2527 guint16 no_recurse : 1;
2528 guint16 detailed : 1;
2530 guint16 no_hooks : 1;
2531 guint16 has_class_closure : 1;
2532 guint16 true_stops_emit : 1;
2533 guint16 reserved : 6;
2535 guint16 class_closure;
2545 <div class="refsect3">
2546 <a name="id-1.4.3.3.8.27.5"></a><h4>Members</h4>
2547 <div class="informaltable"><table width="100%" border="0">
2549 <col width="300px" class="struct_members_name">
2550 <col class="struct_members_description">
2551 <col width="200px" class="struct_members_annotations">
2555 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
2556 <td class="struct_member_description"><p>TODO</p></td>
2557 <td class="struct_member_annotations"> </td>
2560 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.run-first"></a>run_first</code></em> : 1;</p></td>
2561 <td class="struct_member_description"><p>TODO</p></td>
2562 <td class="struct_member_annotations"> </td>
2565 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.run-last"></a>run_last</code></em> : 1;</p></td>
2566 <td class="struct_member_description"><p>TODO</p></td>
2567 <td class="struct_member_annotations"> </td>
2570 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.run-cleanup"></a>run_cleanup</code></em> : 1;</p></td>
2571 <td class="struct_member_description"><p>TODO</p></td>
2572 <td class="struct_member_annotations"> </td>
2575 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.no-recurse"></a>no_recurse</code></em> : 1;</p></td>
2576 <td class="struct_member_description"><p>TODO</p></td>
2577 <td class="struct_member_annotations"> </td>
2580 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.detailed"></a>detailed</code></em> : 1;</p></td>
2581 <td class="struct_member_description"><p>TODO</p></td>
2582 <td class="struct_member_annotations"> </td>
2585 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.action"></a>action</code></em> : 1;</p></td>
2586 <td class="struct_member_description"><p>TODO</p></td>
2587 <td class="struct_member_annotations"> </td>
2590 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.no-hooks"></a>no_hooks</code></em> : 1;</p></td>
2591 <td class="struct_member_description"><p>The flags used when registering the signal.</p></td>
2592 <td class="struct_member_annotations"> </td>
2595 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.has-class-closure"></a>has_class_closure</code></em> : 1;</p></td>
2596 <td class="struct_member_description"><p>Set if the signal has a class closure.</p></td>
2597 <td class="struct_member_annotations"> </td>
2600 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.true-stops-emit"></a>true_stops_emit</code></em> : 1;</p></td>
2601 <td class="struct_member_description"><p>Whether the signal has true-stops-emit semantics</p></td>
2602 <td class="struct_member_annotations"> </td>
2605 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.reserved"></a>reserved</code></em> : 6;</p></td>
2606 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2607 <td class="struct_member_annotations"> </td>
2610 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="SignalBlob.class-closure"></a>class_closure</code></em>;</p></td>
2611 <td class="struct_member_description"><p>The index of the class closure in the list of virtual
2612 functions of the object or interface on which the signal is defined.</p></td>
2613 <td class="struct_member_annotations"> </td>
2616 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="SignalBlob.name"></a>name</code></em>;</p></td>
2617 <td class="struct_member_description"><p>The name of the signal.</p></td>
2618 <td class="struct_member_annotations"> </td>
2621 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="SignalBlob.reserved2"></a>reserved2</code></em>;</p></td>
2622 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2623 <td class="struct_member_annotations"> </td>
2626 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="SignalBlob.signature"></a>signature</code></em>;</p></td>
2627 <td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types
2628 and the return value type.</p></td>
2629 <td class="struct_member_annotations"> </td>
2636 <div class="refsect2">
2637 <a name="VFuncBlob"></a><h3>VFuncBlob</h3>
2638 <pre class="programlisting">typedef struct {
2641 guint16 must_chain_up : 1;
2642 guint16 must_be_implemented : 1;
2643 guint16 must_not_be_implemented : 1;
2644 guint16 class_closure : 1;
2646 guint16 reserved :11;
2649 guint16 struct_offset;
2650 guint16 invoker : 10; /* Number of bits matches @index in FunctionBlob */
2651 guint16 reserved2 : 6;
2658 <div class="refsect3">
2659 <a name="id-1.4.3.3.8.28.5"></a><h4>Members</h4>
2660 <div class="informaltable"><table width="100%" border="0">
2662 <col width="300px" class="struct_members_name">
2663 <col class="struct_members_description">
2664 <col width="200px" class="struct_members_annotations">
2668 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="VFuncBlob.name"></a>name</code></em>;</p></td>
2669 <td class="struct_member_description"><p>The name of the virtual function.</p></td>
2670 <td class="struct_member_annotations"> </td>
2673 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.must-chain-up"></a>must_chain_up</code></em> : 1;</p></td>
2674 <td class="struct_member_description"><p>If set, every implementation of this virtual function must
2675 chain up to the implementation of the parent class.</p></td>
2676 <td class="struct_member_annotations"> </td>
2679 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.must-be-implemented"></a>must_be_implemented</code></em> : 1;</p></td>
2680 <td class="struct_member_description"><p>If set, every derived class must override this virtual
2682 <td class="struct_member_annotations"> </td>
2685 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.must-not-be-implemented"></a>must_not_be_implemented</code></em> : 1;</p></td>
2686 <td class="struct_member_description"><p>If set, derived class must not override this
2687 virtual function.</p></td>
2688 <td class="struct_member_annotations"> </td>
2691 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.class-closure"></a>class_closure</code></em> : 1;</p></td>
2692 <td class="struct_member_description"><p>Set if this virtual function is the class closure of a
2694 <td class="struct_member_annotations"> </td>
2697 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.throws"></a>throws</code></em> : 1;</p></td>
2698 <td class="struct_member_description"><p> This is now additionally stored in the <a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob"><span class="type">SignatureBlob</span></a>. </p></td>
2699 <td class="struct_member_annotations"><span class="annotation">[deprecated]</span></td>
2702 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.reserved"></a>reserved</code></em> :11;</p></td>
2703 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2704 <td class="struct_member_annotations"> </td>
2707 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.signal"></a>signal</code></em>;</p></td>
2708 <td class="struct_member_description"><p>The index of the signal in the list of signals of the object or
2709 interface to which this virtual function belongs.</p></td>
2710 <td class="struct_member_annotations"> </td>
2713 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.struct-offset"></a>struct_offset</code></em>;</p></td>
2714 <td class="struct_member_description"><p>The offset of the function pointer in the class struct.
2715 The value 0xFFFF indicates that the struct offset is unknown.</p></td>
2716 <td class="struct_member_annotations"> </td>
2719 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.invoker"></a>invoker</code></em> : 10;</p></td>
2720 <td class="struct_member_description"><p>If a method invoker for this virtual exists, this is the offset
2721 in the class structure of the method. If no method is known, this value
2722 will be 0x3ff.</p></td>
2723 <td class="struct_member_annotations"> </td>
2726 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="VFuncBlob.reserved2"></a>reserved2</code></em> : 6;</p></td>
2727 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2728 <td class="struct_member_annotations"> </td>
2731 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="VFuncBlob.reserved3"></a>reserved3</code></em>;</p></td>
2732 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2733 <td class="struct_member_annotations"> </td>
2736 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="VFuncBlob.signature"></a>signature</code></em>;</p></td>
2737 <td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types and
2738 the return value type.</p></td>
2739 <td class="struct_member_annotations"> </td>
2746 <div class="refsect2">
2747 <a name="ObjectBlob"></a><h3>ObjectBlob</h3>
2748 <pre class="programlisting">typedef struct {
2749 guint16 blob_type; /* 7 */
2750 guint16 deprecated : 1;
2751 guint16 abstract : 1;
2752 guint16 fundamental : 1;
2753 guint16 reserved :13;
2760 guint16 gtype_struct;
2762 guint16 n_interfaces;
2764 guint16 n_properties;
2768 guint16 n_constants;
2773 guint32 set_value_func;
2774 guint32 get_value_func;
2779 guint16 interfaces[];
2783 <div class="refsect3">
2784 <a name="id-1.4.3.3.8.29.5"></a><h4>Members</h4>
2785 <div class="informaltable"><table width="100%" border="0">
2787 <col width="300px" class="struct_members_name">
2788 <col class="struct_members_description">
2789 <col width="200px" class="struct_members_annotations">
2793 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.blob-type"></a>blob_type</code></em>;</p></td>
2794 <td class="struct_member_description"><p><a class="link" href="gi-GITypelib.html#BLOB-TYPE-OBJECT:CAPS"><span class="type">BLOB_TYPE_OBJECT</span></a></p></td>
2795 <td class="struct_member_annotations"> </td>
2798 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
2799 <td class="struct_member_description"><p>TODO</p></td>
2800 <td class="struct_member_annotations"> </td>
2803 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.abstract"></a>abstract</code></em> : 1;</p></td>
2804 <td class="struct_member_description"><p>TODO</p></td>
2805 <td class="struct_member_annotations"> </td>
2808 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.fundamental"></a>fundamental</code></em> : 1;</p></td>
2809 <td class="struct_member_description"><p>this object is not a GObject derived type, instead it's
2810 an additional fundamental type.</p></td>
2811 <td class="struct_member_annotations"> </td>
2814 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.reserved"></a>reserved</code></em> :13;</p></td>
2815 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2816 <td class="struct_member_annotations"> </td>
2819 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ObjectBlob.name"></a>name</code></em>;</p></td>
2820 <td class="struct_member_description"><p>TODO</p></td>
2821 <td class="struct_member_annotations"> </td>
2824 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ObjectBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
2825 <td class="struct_member_description"><p>String name of the associated <span class="type">GType</span></p></td>
2826 <td class="struct_member_annotations"> </td>
2829 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ObjectBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
2830 <td class="struct_member_description"><p>String naming the symbol which gets the runtime <span class="type">GType</span></p></td>
2831 <td class="struct_member_annotations"> </td>
2834 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.parent"></a>parent</code></em>;</p></td>
2835 <td class="struct_member_description"><p>The directory index of the parent type. This is only set for
2836 objects. If an object does not have a parent, it is zero.</p></td>
2837 <td class="struct_member_annotations"> </td>
2840 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.gtype-struct"></a>gtype_struct</code></em>;</p></td>
2841 <td class="struct_member_description"><p>TODO</p></td>
2842 <td class="struct_member_annotations"> </td>
2845 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.n-interfaces"></a>n_interfaces</code></em>;</p></td>
2846 <td class="struct_member_description"><p>TODO</p></td>
2847 <td class="struct_member_annotations"> </td>
2850 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.n-fields"></a>n_fields</code></em>;</p></td>
2851 <td class="struct_member_description"><p>TODO</p></td>
2852 <td class="struct_member_annotations"> </td>
2855 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.n-properties"></a>n_properties</code></em>;</p></td>
2856 <td class="struct_member_description"><p>TODO</p></td>
2857 <td class="struct_member_annotations"> </td>
2860 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.n-methods"></a>n_methods</code></em>;</p></td>
2861 <td class="struct_member_description"><p>TODO</p></td>
2862 <td class="struct_member_annotations"> </td>
2865 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.n-signals"></a>n_signals</code></em>;</p></td>
2866 <td class="struct_member_description"><p>TODO</p></td>
2867 <td class="struct_member_annotations"> </td>
2870 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.n-vfuncs"></a>n_vfuncs</code></em>;</p></td>
2871 <td class="struct_member_description"><p>TODO</p></td>
2872 <td class="struct_member_annotations"> </td>
2875 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.n-constants"></a>n_constants</code></em>;</p></td>
2876 <td class="struct_member_description"><p>The lengths of the arrays.Up to 16bits of padding may be
2877 inserted between the arrays to ensure that they start on a 32bit
2879 <td class="struct_member_annotations"> </td>
2882 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.reserved2"></a>reserved2</code></em>;</p></td>
2883 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2884 <td class="struct_member_annotations"> </td>
2887 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ObjectBlob.ref-func"></a>ref_func</code></em>;</p></td>
2888 <td class="struct_member_description"><p>String pointing to a function which can be called to increase
2889 the reference count for an instance of this object type.</p></td>
2890 <td class="struct_member_annotations"> </td>
2893 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ObjectBlob.unref-func"></a>unref_func</code></em>;</p></td>
2894 <td class="struct_member_description"><p>String pointing to a function which can be called to decrease
2895 the reference count for an instance of this object type.</p></td>
2896 <td class="struct_member_annotations"> </td>
2899 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ObjectBlob.set-value-func"></a>set_value_func</code></em>;</p></td>
2900 <td class="struct_member_description"><p>String pointing to a function which can be called to
2901 convert a pointer of this object to a GValue</p></td>
2902 <td class="struct_member_annotations"> </td>
2905 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ObjectBlob.get-value-func"></a>get_value_func</code></em>;</p></td>
2906 <td class="struct_member_description"><p>String pointing to a function which can be called to
2907 convert extract a pointer to this object from a GValue</p></td>
2908 <td class="struct_member_annotations"> </td>
2911 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ObjectBlob.reserved3"></a>reserved3</code></em>;</p></td>
2912 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2913 <td class="struct_member_annotations"> </td>
2916 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ObjectBlob.reserved4"></a>reserved4</code></em>;</p></td>
2917 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2918 <td class="struct_member_annotations"> </td>
2921 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ObjectBlob.interfaces"></a>interfaces</code></em>[];</p></td>
2922 <td class="struct_member_description"><p>An array of indices of directory entries for the implemented
2923 interfaces.</p></td>
2924 <td class="struct_member_annotations"> </td>
2931 <div class="refsect2">
2932 <a name="InterfaceBlob"></a><h3>InterfaceBlob</h3>
2933 <pre class="programlisting">typedef struct {
2935 guint16 deprecated : 1;
2936 guint16 reserved :15;
2941 guint16 gtype_struct;
2943 guint16 n_prerequisites;
2944 guint16 n_properties;
2948 guint16 n_constants;
2955 guint16 prerequisites[];
2959 <div class="refsect3">
2960 <a name="id-1.4.3.3.8.30.5"></a><h4>Members</h4>
2961 <div class="informaltable"><table width="100%" border="0">
2963 <col width="300px" class="struct_members_name">
2964 <col class="struct_members_description">
2965 <col width="200px" class="struct_members_annotations">
2969 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.blob-type"></a>blob_type</code></em>;</p></td>
2970 <td class="struct_member_description"><p>TODO</p></td>
2971 <td class="struct_member_annotations"> </td>
2974 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
2975 <td class="struct_member_description"><p>TODO</p></td>
2976 <td class="struct_member_annotations"> </td>
2979 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.reserved"></a>reserved</code></em> :15;</p></td>
2980 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2981 <td class="struct_member_annotations"> </td>
2984 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="InterfaceBlob.name"></a>name</code></em>;</p></td>
2985 <td class="struct_member_description"><p>TODO</p></td>
2986 <td class="struct_member_annotations"> </td>
2989 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="InterfaceBlob.gtype-name"></a>gtype_name</code></em>;</p></td>
2990 <td class="struct_member_description"><p>TODO</p></td>
2991 <td class="struct_member_annotations"> </td>
2994 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="InterfaceBlob.gtype-init"></a>gtype_init</code></em>;</p></td>
2995 <td class="struct_member_description"><p>TODO</p></td>
2996 <td class="struct_member_annotations"> </td>
2999 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.gtype-struct"></a>gtype_struct</code></em>;</p></td>
3000 <td class="struct_member_description"><p>Name of the interface "class" C structure</p></td>
3001 <td class="struct_member_annotations"> </td>
3004 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.n-prerequisites"></a>n_prerequisites</code></em>;</p></td>
3005 <td class="struct_member_description"><p>Number of prerequisites</p></td>
3006 <td class="struct_member_annotations"> </td>
3009 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.n-properties"></a>n_properties</code></em>;</p></td>
3010 <td class="struct_member_description"><p>Number of properties</p></td>
3011 <td class="struct_member_annotations"> </td>
3014 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.n-methods"></a>n_methods</code></em>;</p></td>
3015 <td class="struct_member_description"><p>Number of methods</p></td>
3016 <td class="struct_member_annotations"> </td>
3019 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.n-signals"></a>n_signals</code></em>;</p></td>
3020 <td class="struct_member_description"><p>Number of signals</p></td>
3021 <td class="struct_member_annotations"> </td>
3024 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.n-vfuncs"></a>n_vfuncs</code></em>;</p></td>
3025 <td class="struct_member_description"><p>Number of virtual functions</p></td>
3026 <td class="struct_member_annotations"> </td>
3029 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.n-constants"></a>n_constants</code></em>;</p></td>
3030 <td class="struct_member_description"><p>The lengths of the arrays. Up to 16bits of padding may be
3031 inserted between the arrays to ensure that they start on a 32bit
3033 <td class="struct_member_annotations"> </td>
3036 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.padding"></a>padding</code></em>;</p></td>
3037 <td class="struct_member_description"><p>TODO</p></td>
3038 <td class="struct_member_annotations"> </td>
3041 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="InterfaceBlob.reserved2"></a>reserved2</code></em>;</p></td>
3042 <td class="struct_member_description"><p>Reserved for future use.</p></td>
3043 <td class="struct_member_annotations"> </td>
3046 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="InterfaceBlob.reserved3"></a>reserved3</code></em>;</p></td>
3047 <td class="struct_member_description"><p>Reserved for future use.</p></td>
3048 <td class="struct_member_annotations"> </td>
3051 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="InterfaceBlob.prerequisites"></a>prerequisites</code></em>[];</p></td>
3052 <td class="struct_member_description"><p>An array of indices of directory entries for required
3053 interfaces.</p></td>
3054 <td class="struct_member_annotations"> </td>
3061 <div class="refsect2">
3062 <a name="ConstantBlob"></a><h3>ConstantBlob</h3>
3063 <pre class="programlisting">typedef struct {
3065 guint16 deprecated : 1;
3066 guint16 reserved :15;
3069 SimpleTypeBlob type;
3078 <div class="refsect3">
3079 <a name="id-1.4.3.3.8.31.5"></a><h4>Members</h4>
3080 <div class="informaltable"><table width="100%" border="0">
3082 <col width="300px" class="struct_members_name">
3083 <col class="struct_members_description">
3084 <col width="200px" class="struct_members_annotations">
3088 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ConstantBlob.blob-type"></a>blob_type</code></em>;</p></td>
3089 <td class="struct_member_description"><p>TODO</p></td>
3090 <td class="struct_member_annotations"> </td>
3093 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ConstantBlob.deprecated"></a>deprecated</code></em> : 1;</p></td>
3094 <td class="struct_member_description"><p>TODO</p></td>
3095 <td class="struct_member_annotations"> </td>
3098 <td class="struct_member_name"><p><span class="type">guint16</span> <em class="structfield"><code><a name="ConstantBlob.reserved"></a>reserved</code></em> :15;</p></td>
3099 <td class="struct_member_description"><p>Reserved for future use.</p></td>
3100 <td class="struct_member_annotations"> </td>
3103 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ConstantBlob.name"></a>name</code></em>;</p></td>
3104 <td class="struct_member_description"><p>TODO</p></td>
3105 <td class="struct_member_annotations"> </td>
3108 <td class="struct_member_name"><p><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob"><span class="type">SimpleTypeBlob</span></a> <em class="structfield"><code><a name="ConstantBlob.type"></a>type</code></em>;</p></td>
3109 <td class="struct_member_description"><p>The type of the value. In most cases this should be a numeric type
3111 <td class="struct_member_annotations"> </td>
3114 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ConstantBlob.size"></a>size</code></em>;</p></td>
3115 <td class="struct_member_description"><p>The size of the value in bytes.</p></td>
3116 <td class="struct_member_annotations"> </td>
3119 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ConstantBlob.offset"></a>offset</code></em>;</p></td>
3120 <td class="struct_member_description"><p>The offset of the value in the typelib.</p></td>
3121 <td class="struct_member_annotations"> </td>
3124 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="ConstantBlob.reserved2"></a>reserved2</code></em>;</p></td>
3125 <td class="struct_member_description"><p>Reserved for future use.</p></td>
3126 <td class="struct_member_annotations"> </td>
3133 <div class="refsect2">
3134 <a name="AttributeBlob"></a><h3>AttributeBlob</h3>
3135 <pre class="programlisting">typedef struct {
3142 <div class="refsect3">
3143 <a name="id-1.4.3.3.8.32.5"></a><h4>Members</h4>
3144 <div class="informaltable"><table width="100%" border="0">
3146 <col width="300px" class="struct_members_name">
3147 <col class="struct_members_description">
3148 <col width="200px" class="struct_members_annotations">
3152 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="AttributeBlob.offset"></a>offset</code></em>;</p></td>
3153 <td class="struct_member_description"><p>The offset of the typelib entry to which this attribute refers.
3154 Attributes are kept sorted by offset, so that the attributes of an
3155 entry can be found by a binary search.</p></td>
3156 <td class="struct_member_annotations"> </td>
3159 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="AttributeBlob.name"></a>name</code></em>;</p></td>
3160 <td class="struct_member_description"><p>The name of the attribute, a string.</p></td>
3161 <td class="struct_member_annotations"> </td>
3164 <td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="AttributeBlob.value"></a>value</code></em>;</p></td>
3165 <td class="struct_member_description"><p>The value of the attribute (also a string)</p></td>
3166 <td class="struct_member_annotations"> </td>
3173 <div class="refsect2">
3174 <a name="GITypelibError"></a><h3>enum GITypelibError</h3>
3175 <p>A error set while validating the <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
3176 <div class="refsect3">
3177 <a name="id-1.4.3.3.8.33.4"></a><h4>Members</h4>
3178 <div class="informaltable"><table width="100%" border="0">
3180 <col width="300px" class="enum_members_name">
3181 <col class="enum_members_description">
3182 <col width="200px" class="enum_members_annotations">
3186 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID:CAPS"></a>G_TYPELIB_ERROR_INVALID</p></td>
3187 <td class="enum_member_description">
3188 <p>the typelib is invalid</p>
3190 <td class="enum_member_annotations"> </td>
3193 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-HEADER:CAPS"></a>G_TYPELIB_ERROR_INVALID_HEADER</p></td>
3194 <td class="enum_member_description">
3195 <p>the typelib header is invalid</p>
3197 <td class="enum_member_annotations"> </td>
3200 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-DIRECTORY:CAPS"></a>G_TYPELIB_ERROR_INVALID_DIRECTORY</p></td>
3201 <td class="enum_member_description">
3202 <p>the typelib directory is invalid</p>
3204 <td class="enum_member_annotations"> </td>
3207 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-ENTRY:CAPS"></a>G_TYPELIB_ERROR_INVALID_ENTRY</p></td>
3208 <td class="enum_member_description">
3209 <p>a typelib entry is invalid</p>
3211 <td class="enum_member_annotations"> </td>
3214 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-BLOB:CAPS"></a>G_TYPELIB_ERROR_INVALID_BLOB</p></td>
3215 <td class="enum_member_description">
3216 <p>a typelib blob is invalid</p>
3218 <td class="enum_member_annotations"> </td>
3225 <div class="refsect2">
3226 <a name="GITypelibHashBuilder"></a><h3>GITypelibHashBuilder</h3>
3227 <pre class="programlisting">typedef struct _GITypelibHashBuilder GITypelibHashBuilder;</pre>
3232 <div class="footer">
3233 <hr>Generated by GTK-Doc V1.24.1</div>