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.79.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.25.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 class="informaltable" 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="function_type">
108 <span class="returnvalue">GQuark</span>
110 <td class="function_name">
111 <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>
115 <td class="function_type">
116 <span class="returnvalue">gboolean</span>
118 <td class="function_name">
119 <a class="link" href="gi-GITypelib.html#g-typelib-validate" title="g_typelib_validate ()">g_typelib_validate</a> <span class="c_punctuation">()</span>
125 <div class="refsect1">
126 <a name="gi-GITypelib.other"></a><h2>Types and Values</h2>
127 <div class="informaltable"><table class="informaltable" width="100%" border="0">
129 <col width="150px" class="name">
130 <col class="description">
134 <td class="define_keyword">#define</td>
135 <td class="function_name"><a class="link" href="gi-GITypelib.html#G-IR-MAGIC:CAPS" title="G_IR_MAGIC">G_IR_MAGIC</a></td>
138 <td class="datatype_keyword">enum</td>
139 <td class="function_name"><a class="link" href="gi-GITypelib.html#GTypelibBlobType" title="enum GTypelibBlobType">GTypelibBlobType</a></td>
142 <td class="datatype_keyword"> </td>
143 <td class="function_name"><a class="link" href="gi-GITypelib.html#Header" title="Header">Header</a></td>
146 <td class="datatype_keyword">enum</td>
147 <td class="function_name"><a class="link" href="gi-GITypelib.html#SectionType" title="enum SectionType">SectionType</a></td>
150 <td class="datatype_keyword"> </td>
151 <td class="function_name"><a class="link" href="gi-GITypelib.html#Section" title="Section">Section</a></td>
154 <td class="datatype_keyword"> </td>
155 <td class="function_name"><a class="link" href="gi-GITypelib.html#DirEntry" title="DirEntry">DirEntry</a></td>
158 <td class="datatype_keyword"> </td>
159 <td class="function_name"><a class="link" href="gi-GITypelib.html#SimpleTypeBlobFlags" title="SimpleTypeBlobFlags">SimpleTypeBlobFlags</a></td>
162 <td class="datatype_keyword"> </td>
163 <td class="function_name"><a class="link" href="gi-GITypelib.html#SimpleTypeBlob" title="SimpleTypeBlob">SimpleTypeBlob</a></td>
166 <td class="datatype_keyword"> </td>
167 <td class="function_name"><a class="link" href="gi-GITypelib.html#ArgBlob" title="ArgBlob">ArgBlob</a></td>
170 <td class="datatype_keyword"> </td>
171 <td class="function_name"><a class="link" href="gi-GITypelib.html#SignatureBlob" title="SignatureBlob">SignatureBlob</a></td>
174 <td class="datatype_keyword"> </td>
175 <td class="function_name"><a class="link" href="gi-GITypelib.html#CommonBlob" title="CommonBlob">CommonBlob</a></td>
178 <td class="datatype_keyword"> </td>
179 <td class="function_name"><a class="link" href="gi-GITypelib.html#FunctionBlob" title="FunctionBlob">FunctionBlob</a></td>
182 <td class="datatype_keyword"> </td>
183 <td class="function_name"><a class="link" href="gi-GITypelib.html#CallbackBlob" title="CallbackBlob">CallbackBlob</a></td>
186 <td class="datatype_keyword"> </td>
187 <td class="function_name"><a class="link" href="gi-GITypelib.html#InterfaceTypeBlob" title="InterfaceTypeBlob">InterfaceTypeBlob</a></td>
190 <td class="datatype_keyword"> </td>
191 <td class="function_name"><a class="link" href="gi-GITypelib.html#ArrayTypeDimension" title="ArrayTypeDimension">ArrayTypeDimension</a></td>
194 <td class="datatype_keyword"> </td>
195 <td class="function_name"><a class="link" href="gi-GITypelib.html#ArrayTypeBlob" title="ArrayTypeBlob">ArrayTypeBlob</a></td>
198 <td class="datatype_keyword"> </td>
199 <td class="function_name"><a class="link" href="gi-GITypelib.html#ParamTypeBlob" title="ParamTypeBlob">ParamTypeBlob</a></td>
202 <td class="datatype_keyword"> </td>
203 <td class="function_name"><a class="link" href="gi-GITypelib.html#ErrorTypeBlob" title="ErrorTypeBlob">ErrorTypeBlob</a></td>
206 <td class="datatype_keyword"> </td>
207 <td class="function_name"><a class="link" href="gi-GITypelib.html#ValueBlob" title="ValueBlob">ValueBlob</a></td>
210 <td class="datatype_keyword"> </td>
211 <td class="function_name"><a class="link" href="gi-GITypelib.html#FieldBlob" title="FieldBlob">FieldBlob</a></td>
214 <td class="datatype_keyword"> </td>
215 <td class="function_name"><a class="link" href="gi-GITypelib.html#RegisteredTypeBlob" title="RegisteredTypeBlob">RegisteredTypeBlob</a></td>
218 <td class="datatype_keyword"> </td>
219 <td class="function_name"><a class="link" href="gi-GITypelib.html#StructBlob" title="StructBlob">StructBlob</a></td>
222 <td class="datatype_keyword"> </td>
223 <td class="function_name"><a class="link" href="gi-GITypelib.html#UnionBlob" title="UnionBlob">UnionBlob</a></td>
226 <td class="datatype_keyword"> </td>
227 <td class="function_name"><a class="link" href="gi-GITypelib.html#EnumBlob" title="EnumBlob">EnumBlob</a></td>
230 <td class="datatype_keyword"> </td>
231 <td class="function_name"><a class="link" href="gi-GITypelib.html#PropertyBlob" title="PropertyBlob">PropertyBlob</a></td>
234 <td class="datatype_keyword"> </td>
235 <td class="function_name"><a class="link" href="gi-GITypelib.html#SignalBlob" title="SignalBlob">SignalBlob</a></td>
238 <td class="datatype_keyword"> </td>
239 <td class="function_name"><a class="link" href="gi-GITypelib.html#VFuncBlob" title="VFuncBlob">VFuncBlob</a></td>
242 <td class="datatype_keyword"> </td>
243 <td class="function_name"><a class="link" href="gi-GITypelib.html#ObjectBlob" title="ObjectBlob">ObjectBlob</a></td>
246 <td class="datatype_keyword"> </td>
247 <td class="function_name"><a class="link" href="gi-GITypelib.html#InterfaceBlob" title="InterfaceBlob">InterfaceBlob</a></td>
250 <td class="datatype_keyword"> </td>
251 <td class="function_name"><a class="link" href="gi-GITypelib.html#ConstantBlob" title="ConstantBlob">ConstantBlob</a></td>
254 <td class="datatype_keyword"> </td>
255 <td class="function_name"><a class="link" href="gi-GITypelib.html#AttributeBlob" title="AttributeBlob">AttributeBlob</a></td>
258 <td class="datatype_keyword">enum</td>
259 <td class="function_name"><a class="link" href="gi-GITypelib.html#GITypelibError" title="enum GITypelibError">GITypelibError</a></td>
262 <td class="define_keyword">#define</td>
263 <td class="function_name"><a class="link" href="gi-GITypelib.html#G-TYPELIB-ERROR:CAPS" title="G_TYPELIB_ERROR">G_TYPELIB_ERROR</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="g-typelib-get-dir-entry.parameters"></a><h4>Parameters</h4>
312 <div class="informaltable"><table class="informaltable" 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="g-typelib-get-dir-entry.returns"></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="g-typelib-get-dir-entry-by-name.parameters"></a><h4>Parameters</h4>
346 <div class="informaltable"><table class="informaltable" 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="g-typelib-get-dir-entry-by-name.returns"></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="g-typelib-get-dir-entry-by-gtype-name.parameters"></a><h4>Parameters</h4>
380 <div class="informaltable"><table class="informaltable" 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="g-typelib-get-dir-entry-by-gtype-name.returns"></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="g-typelib-get-dir-entry-by-error-domain.parameters"></a><h4>Parameters</h4>
415 <div class="informaltable"><table class="informaltable" 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="g-typelib-get-dir-entry-by-error-domain.returns"></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="g-typelib-matches-gtype-name-prefix.parameters"></a><h4>Parameters</h4>
449 <div class="informaltable"><table class="informaltable" 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="g-typelib-matches-gtype-name-prefix.returns"></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="g-typelib-get-string.parameters"></a><h4>Parameters</h4>
488 <div class="informaltable"><table class="informaltable" 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="g-typelib-get-string.returns"></a><h4>Returns</h4>
514 <div class="refsect2">
515 <a name="g-typelib-error-quark"></a><h3>g_typelib_error_quark ()</h3>
516 <pre class="programlisting"><span class="returnvalue">GQuark</span>
517 g_typelib_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
519 <div class="refsect3">
520 <a name="g-typelib-error-quark.returns"></a><h4>Returns</h4>
525 <div class="refsect2">
526 <a name="g-typelib-validate"></a><h3>g_typelib_validate ()</h3>
527 <pre class="programlisting"><span class="returnvalue">gboolean</span>
528 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>,
529 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
531 <div class="refsect3">
532 <a name="g-typelib-validate.parameters"></a><h4>Parameters</h4>
533 <div class="informaltable"><table class="informaltable" width="100%" border="0">
535 <col width="150px" class="parameters_name">
536 <col class="parameters_description">
537 <col width="200px" class="parameters_annotations">
541 <td class="parameter_name"><p>typelib</p></td>
542 <td class="parameter_description"><p>TODO</p></td>
543 <td class="parameter_annotations"> </td>
546 <td class="parameter_name"><p>error</p></td>
547 <td class="parameter_description"><p>TODO</p></td>
548 <td class="parameter_annotations"> </td>
553 <div class="refsect3">
554 <a name="g-typelib-validate.returns"></a><h4>Returns</h4>
559 <div class="refsect1">
560 <a name="gi-GITypelib.other_details"></a><h2>Types and Values</h2>
561 <div class="refsect2">
562 <a name="G-IR-MAGIC:CAPS"></a><h3>G_IR_MAGIC</h3>
563 <pre class="programlisting">#define G_IR_MAGIC "GOBJ\nMETADATA\r\n\032"
565 <p>Identifying prefix for the typelib. This was inspired by XPCOM,
566 which in turn borrowed from PNG.</p>
569 <div class="refsect2">
570 <a name="GTypelibBlobType"></a><h3>enum GTypelibBlobType</h3>
571 <p>The integral value of this enumeration appears in each "Blob" component of
572 a typelib to identify its type.</p>
573 <div class="refsect3">
574 <a name="GTypelibBlobType.members"></a><h4>Members</h4>
575 <div class="informaltable"><table class="informaltable" width="100%" border="0">
577 <col width="300px" class="enum_members_name">
578 <col class="enum_members_description">
579 <col width="200px" class="enum_members_annotations">
583 <td class="enum_member_name"><p><a name="BLOB-TYPE-INVALID:CAPS"></a>BLOB_TYPE_INVALID</p></td>
584 <td class="enum_member_description">
585 <p>Should not appear in code</p>
587 <td class="enum_member_annotations"> </td>
590 <td class="enum_member_name"><p><a name="BLOB-TYPE-FUNCTION:CAPS"></a>BLOB_TYPE_FUNCTION</p></td>
591 <td class="enum_member_description">
592 <p>A <a class="link" href="gi-GITypelib.html#FunctionBlob" title="FunctionBlob"><span class="type">FunctionBlob</span></a></p>
594 <td class="enum_member_annotations"> </td>
597 <td class="enum_member_name"><p><a name="BLOB-TYPE-CALLBACK:CAPS"></a>BLOB_TYPE_CALLBACK</p></td>
598 <td class="enum_member_description">
599 <p>A <a class="link" href="gi-GITypelib.html#CallbackBlob" title="CallbackBlob"><span class="type">CallbackBlob</span></a></p>
601 <td class="enum_member_annotations"> </td>
604 <td class="enum_member_name"><p><a name="BLOB-TYPE-STRUCT:CAPS"></a>BLOB_TYPE_STRUCT</p></td>
605 <td class="enum_member_description">
606 <p>A <a class="link" href="gi-GITypelib.html#StructBlob" title="StructBlob"><span class="type">StructBlob</span></a></p>
608 <td class="enum_member_annotations"> </td>
611 <td class="enum_member_name"><p><a name="BLOB-TYPE-BOXED:CAPS"></a>BLOB_TYPE_BOXED</p></td>
612 <td class="enum_member_description">
613 <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>
615 <td class="enum_member_annotations"> </td>
618 <td class="enum_member_name"><p><a name="BLOB-TYPE-ENUM:CAPS"></a>BLOB_TYPE_ENUM</p></td>
619 <td class="enum_member_description">
620 <p>An <a class="link" href="gi-GITypelib.html#EnumBlob" title="EnumBlob"><span class="type">EnumBlob</span></a></p>
622 <td class="enum_member_annotations"> </td>
625 <td class="enum_member_name"><p><a name="BLOB-TYPE-FLAGS:CAPS"></a>BLOB_TYPE_FLAGS</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-OBJECT:CAPS"></a>BLOB_TYPE_OBJECT</p></td>
633 <td class="enum_member_description">
634 <p>An <a class="link" href="gi-GITypelib.html#ObjectBlob" title="ObjectBlob"><span class="type">ObjectBlob</span></a></p>
636 <td class="enum_member_annotations"> </td>
639 <td class="enum_member_name"><p><a name="BLOB-TYPE-INTERFACE:CAPS"></a>BLOB_TYPE_INTERFACE</p></td>
640 <td class="enum_member_description">
641 <p>An <a class="link" href="gi-GITypelib.html#InterfaceBlob" title="InterfaceBlob"><span class="type">InterfaceBlob</span></a></p>
643 <td class="enum_member_annotations"> </td>
646 <td class="enum_member_name"><p><a name="BLOB-TYPE-CONSTANT:CAPS"></a>BLOB_TYPE_CONSTANT</p></td>
647 <td class="enum_member_description">
648 <p>A <a class="link" href="gi-GITypelib.html#ConstantBlob" title="ConstantBlob"><span class="type">ConstantBlob</span></a></p>
650 <td class="enum_member_annotations"> </td>
653 <td class="enum_member_name"><p><a name="BLOB-TYPE-INVALID-0:CAPS"></a>BLOB_TYPE_INVALID_0</p></td>
654 <td class="enum_member_description">
655 <p>Deleted, used to be ErrorDomain.</p>
657 <td class="enum_member_annotations"> </td>
660 <td class="enum_member_name"><p><a name="BLOB-TYPE-UNION:CAPS"></a>BLOB_TYPE_UNION</p></td>
661 <td class="enum_member_description">
662 <p>A <a class="link" href="gi-GITypelib.html#UnionBlob" title="UnionBlob"><span class="type">UnionBlob</span></a></p>
664 <td class="enum_member_annotations"> </td>
671 <div class="refsect2">
672 <a name="Header"></a><h3>Header</h3>
673 <pre class="programlisting">typedef struct {
675 guint8 major_version;
676 guint8 minor_version;
679 guint16 n_local_entries;
681 guint32 n_attributes;
684 guint32 dependencies;
689 guint32 shared_library;
692 guint16 entry_blob_size;
693 guint16 function_blob_size;
694 guint16 callback_blob_size;
695 guint16 signal_blob_size;
696 guint16 vfunc_blob_size;
697 guint16 arg_blob_size;
698 guint16 property_blob_size;
699 guint16 field_blob_size;
700 guint16 value_blob_size;
701 guint16 attribute_blob_size;
702 guint16 constant_blob_size;
703 guint16 error_domain_blob_size;
705 guint16 signature_blob_size;
706 guint16 enum_blob_size;
707 guint16 struct_blob_size;
708 guint16 object_blob_size;
709 guint16 interface_blob_size;
710 guint16 union_blob_size;
717 <p>The header structure appears exactly once at the beginning of a typelib. It is a
718 collection of meta-information, such as the number of entries and dependencies.</p>
719 <div class="refsect3">
720 <a name="Header.members"></a><h4>Members</h4>
721 <div class="informaltable"><table class="informaltable" width="100%" border="0">
723 <col width="300px" class="struct_members_name">
724 <col class="struct_members_description">
725 <col width="200px" class="struct_members_annotations">
729 <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>
730 <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>
731 <td class="struct_member_annotations"> </td>
734 <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>
735 <td class="struct_member_description"><p>The major version number of the typelib format. Major version
736 number changes indicate incompatible changes to the tyeplib format.</p></td>
737 <td class="struct_member_annotations"> </td>
740 <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>
741 <td class="struct_member_description"><p>The minor version number of the typelib format. Minor version
742 number changes indicate compatible changes and should still allow the
743 typelib to be parsed by a parser designed for the same <em class="parameter"><code>major_version</code></em>
745 <td class="struct_member_annotations"> </td>
748 <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>
749 <td class="struct_member_description"><p>Reserved for future use.</p></td>
750 <td class="struct_member_annotations"> </td>
753 <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>
754 <td class="struct_member_description"><p>The number of entries in the directory.</p></td>
755 <td class="struct_member_annotations"> </td>
758 <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>
759 <td class="struct_member_description"><p>The number of entries referring to blobs in this typelib.
760 The local entries must occur before the unresolved entries.</p></td>
761 <td class="struct_member_annotations"> </td>
764 <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>
765 <td class="struct_member_description"><p>Offset of the directory in the typelib.</p></td>
766 <td class="struct_member_annotations"> </td>
769 <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>
770 <td class="struct_member_description"><p>Number of attribute blocks</p></td>
771 <td class="struct_member_annotations"> </td>
774 <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>
775 <td class="struct_member_description"><p>Offset of the list of attributes in the typelib.</p></td>
776 <td class="struct_member_annotations"> </td>
779 <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>
780 <td class="struct_member_description"><p>Offset of a single string, which is the list of immediate
781 dependencies, separated by the '|' character. The dependencies are
782 required in order to avoid having programs consuming a typelib check for
783 an "Unresolved" type return from every API call.</p></td>
784 <td class="struct_member_annotations"> </td>
787 <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>
788 <td class="struct_member_description"><p>The size in bytes of the typelib.</p></td>
789 <td class="struct_member_annotations"> </td>
792 <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>
793 <td class="struct_member_description"><p>Offset of the namespace string in the typelib.</p></td>
794 <td class="struct_member_annotations"> </td>
797 <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>
798 <td class="struct_member_description"><p>Offset of the namespace version string in the typelib.</p></td>
799 <td class="struct_member_annotations"> </td>
802 <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>
803 <td class="struct_member_description"><p>This field is the set of shared libraries associated with
804 the typelib. The entries are separated by the '|' (pipe) character.</p></td>
805 <td class="struct_member_annotations"> </td>
808 <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>
809 <td class="struct_member_description"><p>The prefix for the function names of the library</p></td>
810 <td class="struct_member_annotations"> </td>
813 <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>
814 <td class="struct_member_description"><p>The sizes of fixed-size blobs. Recording this information
815 here allows to write parser which continue to work if the format is
816 extended by adding new fields to the end of the fixed-size blobs.</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.function-blob-size"></a>function_blob_size</code></em>;</p></td>
821 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
823 <td class="struct_member_annotations"> </td>
826 <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>
827 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
829 <td class="struct_member_annotations"> </td>
832 <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>
833 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
835 <td class="struct_member_annotations"> </td>
838 <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>
839 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
841 <td class="struct_member_annotations"> </td>
844 <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>
845 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
847 <td class="struct_member_annotations"> </td>
850 <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>
851 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
853 <td class="struct_member_annotations"> </td>
856 <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>
857 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
859 <td class="struct_member_annotations"> </td>
862 <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>
863 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
865 <td class="struct_member_annotations"> </td>
868 <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>
869 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
871 <td class="struct_member_annotations"> </td>
874 <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>
875 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
877 <td class="struct_member_annotations"> </td>
880 <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>
881 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
883 <td class="struct_member_annotations"> </td>
886 <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>
887 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
889 <td class="struct_member_annotations"> </td>
892 <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>
893 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
895 <td class="struct_member_annotations"> </td>
898 <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>
899 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
901 <td class="struct_member_annotations"> </td>
904 <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>
905 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
907 <td class="struct_member_annotations"> </td>
910 <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>
911 <td class="struct_member_description"><p>For variable-size blobs, the size of the struct up to
912 the first flexible array member. Recording this information here allows
913 to write parser which continue to work if the format is extended by
914 adding new fields before the first flexible array member in
915 variable-size blobs.</p></td>
916 <td class="struct_member_annotations"> </td>
919 <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>
920 <td class="struct_member_description"><p>See <em class="parameter"><code>entry_blob_size</code></em>
922 <td class="struct_member_annotations"> </td>
925 <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>
926 <td class="struct_member_description"><p>Offset of section blob array</p></td>
927 <td class="struct_member_annotations"> </td>
930 <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>
931 <td class="struct_member_description"><p>TODO</p></td>
932 <td class="struct_member_annotations"> </td>
939 <div class="refsect2">
940 <a name="SectionType"></a><h3>enum SectionType</h3>
942 <div class="refsect3">
943 <a name="SectionType.members"></a><h4>Members</h4>
944 <div class="informaltable"><table class="informaltable" width="100%" border="0">
946 <col width="300px" class="enum_members_name">
947 <col class="enum_members_description">
948 <col width="200px" class="enum_members_annotations">
952 <td class="enum_member_name"><p><a name="GI-SECTION-END:CAPS"></a>GI_SECTION_END</p></td>
953 <td class="enum_member_description">
956 <td class="enum_member_annotations"> </td>
959 <td class="enum_member_name"><p><a name="GI-SECTION-DIRECTORY-INDEX:CAPS"></a>GI_SECTION_DIRECTORY_INDEX</p></td>
960 <td class="enum_member_description">
963 <td class="enum_member_annotations"> </td>
970 <div class="refsect2">
971 <a name="Section"></a><h3>Section</h3>
972 <pre class="programlisting">typedef struct {
977 <p>A section is a blob of data that's (at least theoretically) optional,
978 and may or may not be present in the typelib. Presently, just used
979 for the directory index. This allows a form of dynamic extensibility
980 with different tradeoffs from the format minor version.</p>
981 <div class="refsect3">
982 <a name="Section.members"></a><h4>Members</h4>
983 <div class="informaltable"><table class="informaltable" width="100%" border="0">
985 <col width="300px" class="struct_members_name">
986 <col class="struct_members_description">
987 <col width="200px" class="struct_members_annotations">
991 <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>
992 <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>
993 <td class="struct_member_annotations"> </td>
996 <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>
997 <td class="struct_member_description"><p>Integer offset for this section</p></td>
998 <td class="struct_member_annotations"> </td>
1005 <div class="refsect2">
1006 <a name="DirEntry"></a><h3>DirEntry</h3>
1007 <pre class="programlisting">typedef struct {
1011 guint16 reserved :15;
1016 <p>References to directory entries are stored as 1-based 16-bit indexes.</p>
1017 <p>All blobs pointed to by a directory entry start with the same layout for
1018 the first 8 bytes (the reserved flags may be used by some blob types)</p>
1019 <div class="refsect3">
1020 <a name="DirEntry.members"></a><h4>Members</h4>
1021 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1023 <col width="300px" class="struct_members_name">
1024 <col class="struct_members_description">
1025 <col width="200px" class="struct_members_annotations">
1029 <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>
1030 <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>
1031 <td class="struct_member_annotations"> </td>
1034 <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>
1035 <td class="struct_member_description"><p>Whether this entry refers to a blob in this typelib.</p></td>
1036 <td class="struct_member_annotations"> </td>
1039 <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>
1040 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1041 <td class="struct_member_annotations"> </td>
1044 <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>
1045 <td class="struct_member_description"><p>The name of the entry.</p></td>
1046 <td class="struct_member_annotations"> </td>
1049 <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>
1050 <td class="struct_member_description"><p>If is_local is set, this is the offset of the blob in the typelib.
1051 Otherwise, it is the offset of the namespace in which the blob has to be
1052 looked up by name.</p></td>
1053 <td class="struct_member_annotations"> </td>
1060 <div class="refsect2">
1061 <a name="SimpleTypeBlobFlags"></a><h3>SimpleTypeBlobFlags</h3>
1062 <pre class="programlisting">typedef struct {
1064 guint reserved2 :16;
1066 guint reserved3 : 2;
1068 } SimpleTypeBlobFlags;
1071 <div class="refsect3">
1072 <a name="SimpleTypeBlobFlags.members"></a><h4>Members</h4>
1073 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1075 <col width="300px" class="struct_members_name">
1076 <col class="struct_members_description">
1077 <col width="200px" class="struct_members_annotations">
1081 <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>
1082 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1083 <td class="struct_member_annotations"> </td>
1086 <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>
1087 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1088 <td class="struct_member_annotations"> </td>
1091 <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>
1092 <td class="struct_member_description"><p>TODO</p></td>
1093 <td class="struct_member_annotations"> </td>
1096 <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>
1097 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1098 <td class="struct_member_annotations"> </td>
1101 <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>
1102 <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>
1103 <td class="struct_member_annotations"> </td>
1110 <div class="refsect2">
1111 <a name="SimpleTypeBlob"></a><h3>SimpleTypeBlob</h3>
1112 <p>The SimpleTypeBlob is the general purpose "reference to a type" construct,
1113 used in method parameters, returns, callback definitions, fields, constants,
1114 etc. It's actually just a 32 bit integer which you can see from the union
1115 definition. This is for efficiency reasons, since there are so many
1116 references to types.</p>
1117 <p>SimpleTypeBlob is divided into two cases; first, if "reserved" and
1118 "reserved2", the type tag for a basic type is embedded in the "tag" bits.
1119 This allows e.g. GI_TYPE_TAG_UTF8, GI_TYPE_TAG_INT and the like to be
1120 embedded directly without taking up extra space.</p>
1121 <p>References to "interfaces" (objects, interfaces) are more complicated;
1122 In this case, the integer is actually an offset into the directory (see
1123 above). Because the header is larger than 2^8=256 bits, all offsets will
1124 have one of the upper 24 bits set.</p>
1125 <div class="refsect3">
1126 <a name="SimpleTypeBlob.members"></a><h4>Members</h4>
1127 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1129 <col width="300px" class="union_members_name">
1130 <col class="union_members_description">
1131 <col width="200px" class="union_members_annotations">
1135 <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>
1136 <td class="union_member_description"><p>TODO</p></td>
1137 <td class="union_member_annotations"> </td>
1140 <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>
1141 <td class="union_member_description"><p>Offset relative to header->types that points to a TypeBlob.
1142 Unlike other offsets, this is in words (ie 32bit units) rather
1143 than bytes.</p></td>
1144 <td class="union_member_annotations"> </td>
1151 <div class="refsect2">
1152 <a name="ArgBlob"></a><h3>ArgBlob</h3>
1153 <pre class="programlisting">typedef struct {
1158 guint caller_allocates : 1;
1161 guint transfer_ownership : 1;
1162 guint transfer_container_ownership : 1;
1163 guint return_value : 1;
1172 SimpleTypeBlob arg_type;
1175 <p>Types are specified by four bytes. If the three high bytes are zero,
1176 the low byte describes a basic type, otherwise the 32bit number is an
1177 offset which points to a TypeBlob.</p>
1178 <div class="refsect3">
1179 <a name="ArgBlob.members"></a><h4>Members</h4>
1180 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1182 <col width="300px" class="struct_members_name">
1183 <col class="struct_members_description">
1184 <col width="200px" class="struct_members_annotations">
1188 <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>
1189 <td class="struct_member_description"><p>A suggested name for the parameter.</p></td>
1190 <td class="struct_member_annotations"> </td>
1193 <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>
1194 <td class="struct_member_description"><p>The parameter is an input to the function</p></td>
1195 <td class="struct_member_annotations"> </td>
1198 <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>
1199 <td class="struct_member_description"><p>The parameter is used to return an output of the function. Parameters
1200 can be both in and out. Out parameters implicitly add another level of
1201 indirection to the parameter type. Ie if the type is uint32 in an out
1202 parameter, the function actually takes an uint32*.</p></td>
1203 <td class="struct_member_annotations"> </td>
1206 <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>
1207 <td class="struct_member_description"><p>The parameter is a pointer to a struct or object that
1208 will receive an output of the function.</p></td>
1209 <td class="struct_member_annotations"> </td>
1212 <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>
1213 <td class="struct_member_description"><p>Only meaningful for types which are passed as pointers. For an
1214 in parameter, indicates if it is ok to pass NULL in. Gor an out
1215 parameter, indicates whether it may return NULL. Note that NULL is a
1216 valid GList and GSList value, thus allow_none will normally be set
1217 for parameters of these types.</p></td>
1218 <td class="struct_member_annotations"> </td>
1221 <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>
1222 <td class="struct_member_description"><p>For an out parameter, indicates that NULL may be passed in
1223 if the value is not needed.</p></td>
1224 <td class="struct_member_annotations"> </td>
1227 <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>
1228 <td class="struct_member_description"><p>For an in parameter, indicates that the function takes
1229 over ownership of the parameter value. For an out parameter, it indicates
1230 that the caller is responsible for freeing the return value.</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-container-ownership"></a>transfer_container_ownership</code></em> : 1;</p></td>
1235 <td class="struct_member_description"><p>For container types, indicates that the
1236 ownership of the container, but not of its contents is transferred.
1237 This is typically the case for out parameters returning lists of
1238 statically allocated things.</p></td>
1239 <td class="struct_member_annotations"> </td>
1242 <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>
1243 <td class="struct_member_description"><p>The parameter should be considered the return value of the
1244 function. Only out parameters can be marked as return value, and there
1245 can be at most one per function call. If an out parameter is marked as
1246 return value, the actual return value of the function should be either
1247 void or a boolean indicating the success of the call.</p></td>
1248 <td class="struct_member_annotations"> </td>
1251 <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>
1252 <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
1253 the scope of the user_data and the callback function pointer itself
1254 (for languages that emit code at run-time).</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.skip"></a>skip</code></em> : 1;</p></td>
1259 <td class="struct_member_description"><p>Indicates that the parameter is only useful in C and should be skipped.</p></td>
1260 <td class="struct_member_annotations"> </td>
1263 <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>
1264 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1265 <td class="struct_member_annotations"> </td>
1268 <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>
1269 <td class="struct_member_description"><p>Index of the closure (user_data) parameter associated with the
1270 callback, or -1.</p></td>
1271 <td class="struct_member_annotations"> </td>
1274 <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>
1275 <td class="struct_member_description"><p>Index of the destroy notfication callback parameter associated
1276 with the callback, or -1.</p></td>
1277 <td class="struct_member_annotations"> </td>
1280 <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>
1281 <td class="struct_member_description"><p>TODO</p></td>
1282 <td class="struct_member_annotations"> </td>
1285 <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>
1286 <td class="struct_member_description"><p>Describes the type of the parameter. See details below.</p></td>
1287 <td class="struct_member_annotations"> </td>
1294 <div class="refsect2">
1295 <a name="SignatureBlob"></a><h3>SignatureBlob</h3>
1296 <pre class="programlisting">typedef struct {
1297 SimpleTypeBlob return_type;
1299 guint16 may_return_null : 1;
1300 guint16 caller_owns_return_value : 1;
1301 guint16 caller_owns_return_container : 1;
1302 guint16 skip_return : 1;
1303 guint16 instance_transfer_ownership : 1;
1305 guint16 reserved :10;
1307 guint16 n_arguments;
1309 ArgBlob arguments[];
1313 <div class="refsect3">
1314 <a name="SignatureBlob.members"></a><h4>Members</h4>
1315 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1317 <col width="300px" class="struct_members_name">
1318 <col class="struct_members_description">
1319 <col width="200px" class="struct_members_annotations">
1323 <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>
1324 <td class="struct_member_description"><p>Describes the type of the return value. See details below.</p></td>
1325 <td class="struct_member_annotations"> </td>
1328 <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>
1329 <td class="struct_member_description"><p>Only relevant for pointer types. Indicates whether the
1330 caller must expect NULL as a return value.</p></td>
1331 <td class="struct_member_annotations"> </td>
1334 <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>
1335 <td class="struct_member_description"><p>If set, the caller is responsible for freeing
1336 the return value if it is no longer needed.</p></td>
1337 <td class="struct_member_annotations"> </td>
1340 <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>
1341 <td class="struct_member_description"><p>This flag is only relevant if the return type
1342 is a container type. If the flag is set, the caller is resonsible for
1343 freeing the container, but not its contents.</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.skip-return"></a>skip_return</code></em> : 1;</p></td>
1348 <td class="struct_member_description"><p>Indicates that the return value is only useful in C and should
1349 be skipped.</p></td>
1350 <td class="struct_member_annotations"> </td>
1353 <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>
1354 <td class="struct_member_description"><p>When calling, the function assumes ownership of
1355 the instance parameter.</p></td>
1356 <td class="struct_member_annotations"> </td>
1359 <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>
1360 <td class="struct_member_description"><p>Denotes the signature takes an additional <span class="type">GError</span> argument beyond
1361 the annotated arguments.</p></td>
1362 <td class="struct_member_annotations"> </td>
1365 <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>
1366 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1367 <td class="struct_member_annotations"> </td>
1370 <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>
1371 <td class="struct_member_description"><p>The number of arguments that this function expects, also the
1372 length of the array of ArgBlobs.</p></td>
1373 <td class="struct_member_annotations"> </td>
1376 <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>
1377 <td class="struct_member_description"><p>An array of ArgBlob for the arguments of the function.</p></td>
1378 <td class="struct_member_annotations"> </td>
1385 <div class="refsect2">
1386 <a name="CommonBlob"></a><h3>CommonBlob</h3>
1387 <pre class="programlisting">typedef struct {
1388 guint16 blob_type; /* 1 */
1390 guint16 deprecated : 1;
1391 guint16 reserved :15;
1395 <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>,
1396 <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>
1398 <div class="refsect3">
1399 <a name="CommonBlob.members"></a><h4>Members</h4>
1400 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1402 <col width="300px" class="struct_members_name">
1403 <col class="struct_members_description">
1404 <col width="200px" class="struct_members_annotations">
1408 <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>
1409 <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>
1410 <td class="struct_member_annotations"> </td>
1413 <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>
1414 <td class="struct_member_description"><p>Whether the blob is deprecated.</p></td>
1415 <td class="struct_member_annotations"> </td>
1418 <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>
1419 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1420 <td class="struct_member_annotations"> </td>
1423 <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>
1424 <td class="struct_member_description"><p>The name of the blob.</p></td>
1425 <td class="struct_member_annotations"> </td>
1432 <div class="refsect2">
1433 <a name="FunctionBlob"></a><h3>FunctionBlob</h3>
1434 <pre class="programlisting">typedef struct {
1435 guint16 blob_type; /* 1 */
1437 guint16 deprecated : 1;
1440 guint16 constructor : 1;
1441 guint16 wraps_vfunc : 1;
1444 /* Note the bits above need to match CommonBlob
1445 * and are thus exhausted, extend things using
1446 * the reserved block below. */
1452 guint16 is_static : 1;
1453 guint16 reserved : 15;
1454 guint16 reserved2 : 16;
1458 <div class="refsect3">
1459 <a name="FunctionBlob.members"></a><h4>Members</h4>
1460 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1462 <col width="300px" class="struct_members_name">
1463 <col class="struct_members_description">
1464 <col width="200px" class="struct_members_annotations">
1468 <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>
1469 <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>
1470 <td class="struct_member_annotations"> </td>
1473 <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>
1474 <td class="struct_member_description"><p>The function is deprecated.</p></td>
1475 <td class="struct_member_annotations"> </td>
1478 <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>
1479 <td class="struct_member_description"><p>The function is a setter for a property. Language bindings may
1480 prefer to not bind individual setters and rely on the generic
1481 <code class="function">g_object_set()</code>.</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.getter"></a>getter</code></em> : 1;</p></td>
1486 <td class="struct_member_description"><p>The function is a getter for a property. Language bindings may
1487 prefer to not bind individual getters and rely on the generic
1488 <code class="function">g_object_get()</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.constructor"></a>constructor</code></em> : 1;</p></td>
1493 <td class="struct_member_description"><p>The function acts as a constructor for the object it is
1494 contained in.</p></td>
1495 <td class="struct_member_annotations"> </td>
1498 <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>
1499 <td class="struct_member_description"><p>The function is a simple wrapper for a virtual function.</p></td>
1500 <td class="struct_member_annotations"> </td>
1503 <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>
1504 <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>
1505 <td class="struct_member_annotations"><span class="annotation">[deprecated]</span></td>
1508 <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>
1509 <td class="struct_member_description"><p>Index of the property that this function is a setter or getter of
1510 in the array of properties of the containing interface, or index
1511 of the virtual function that this function wraps.</p></td>
1512 <td class="struct_member_annotations"> </td>
1515 <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>
1516 <td class="struct_member_description"><p>TODO</p></td>
1517 <td class="struct_member_annotations"> </td>
1520 <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>
1521 <td class="struct_member_description"><p>The symbol which can be used to obtain the function pointer with
1522 <code class="function">dlsym()</code>.</p></td>
1523 <td class="struct_member_annotations"> </td>
1526 <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>
1527 <td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types and the
1528 return value type.</p></td>
1529 <td class="struct_member_annotations"> </td>
1532 <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>
1533 <td class="struct_member_description"><p>The function is a "static method"; in other words it's a pure
1534 function whose name is conceptually scoped to the object.</p></td>
1535 <td class="struct_member_annotations"> </td>
1538 <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>
1539 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1540 <td class="struct_member_annotations"> </td>
1543 <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>
1544 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1545 <td class="struct_member_annotations"> </td>
1552 <div class="refsect2">
1553 <a name="CallbackBlob"></a><h3>CallbackBlob</h3>
1554 <pre class="programlisting">typedef struct {
1555 guint16 blob_type; /* 2 */
1557 guint16 deprecated : 1;
1558 guint16 reserved :15;
1564 <div class="refsect3">
1565 <a name="CallbackBlob.members"></a><h4>Members</h4>
1566 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1568 <col width="300px" class="struct_members_name">
1569 <col class="struct_members_description">
1570 <col width="200px" class="struct_members_annotations">
1574 <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>
1575 <td class="struct_member_description"><p>TODO</p></td>
1576 <td class="struct_member_annotations"> </td>
1579 <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>
1580 <td class="struct_member_description"><p>TODO</p></td>
1581 <td class="struct_member_annotations"> </td>
1584 <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>
1585 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1586 <td class="struct_member_annotations"> </td>
1589 <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>
1590 <td class="struct_member_description"><p>TODO</p></td>
1591 <td class="struct_member_annotations"> </td>
1594 <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>
1595 <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
1596 the return value type.</p></td>
1597 <td class="struct_member_annotations"> </td>
1604 <div class="refsect2">
1605 <a name="InterfaceTypeBlob"></a><h3>InterfaceTypeBlob</h3>
1606 <pre class="programlisting">typedef struct {
1612 } InterfaceTypeBlob;
1614 <p>If the interface is an enum of flags type, is_pointer is 0, otherwise it is 1.</p>
1615 <div class="refsect3">
1616 <a name="InterfaceTypeBlob.members"></a><h4>Members</h4>
1617 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1619 <col width="300px" class="struct_members_name">
1620 <col class="struct_members_description">
1621 <col width="200px" class="struct_members_annotations">
1625 <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>
1626 <td class="struct_member_description"><p>Whether this type represents an indirection</p></td>
1627 <td class="struct_member_annotations"> </td>
1630 <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>
1631 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1632 <td class="struct_member_annotations"> </td>
1635 <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>
1636 <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>
1637 <td class="struct_member_annotations"> </td>
1640 <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>
1641 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1642 <td class="struct_member_annotations"> </td>
1645 <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>
1646 <td class="struct_member_description"><p>Index of the directory entry for the interface.</p></td>
1647 <td class="struct_member_annotations"> </td>
1654 <div class="refsect2">
1655 <a name="ArrayTypeDimension"></a><h3>ArrayTypeDimension</h3>
1657 <div class="refsect3">
1658 <a name="ArrayTypeDimension.members"></a><h4>Members</h4>
1659 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1661 <col width="300px" class="union_members_name">
1662 <col class="union_members_description">
1663 <col width="200px" class="union_members_annotations">
1667 <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>
1668 <td class="union_member_description"><p>TODO</p></td>
1669 <td class="union_member_annotations"> </td>
1672 <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>
1673 <td class="union_member_description"><p>TODO</p></td>
1674 <td class="union_member_annotations"> </td>
1681 <div class="refsect2">
1682 <a name="ArrayTypeBlob"></a><h3>ArrayTypeBlob</h3>
1683 <pre class="programlisting">typedef struct {
1685 guint16 reserved :2;
1688 guint16 zero_terminated :1;
1689 guint16 has_length :1;
1690 guint16 has_size :1;
1691 guint16 array_type :2;
1692 guint16 reserved2 :3;
1694 ArrayTypeDimension dimensions;
1696 SimpleTypeBlob type;
1700 <div class="refsect3">
1701 <a name="ArrayTypeBlob.members"></a><h4>Members</h4>
1702 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1704 <col width="300px" class="struct_members_name">
1705 <col class="struct_members_description">
1706 <col width="200px" class="struct_members_annotations">
1710 <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>
1711 <td class="struct_member_description"><p>TODO</p></td>
1712 <td class="struct_member_annotations"> </td>
1715 <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>
1716 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1717 <td class="struct_member_annotations"> </td>
1720 <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>
1721 <td class="struct_member_description"><p>TODO</p></td>
1722 <td class="struct_member_annotations"> </td>
1725 <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>
1726 <td class="struct_member_description"><p>Indicates that the array must be terminated by a suitable
1727 <span class="type">NULL</span> value.</p></td>
1728 <td class="struct_member_annotations"> </td>
1731 <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>
1732 <td class="struct_member_description"><p>Indicates that length points to a parameter specifying the
1733 length of the array. If both has_length and zero_terminated are set, the
1734 convention is to pass -1 for the length if the array is zero-terminated.</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-size"></a>has_size</code></em> :1;</p></td>
1739 <td class="struct_member_description"><p>Indicates that size is the fixed size of the array.</p></td>
1740 <td class="struct_member_annotations"> </td>
1743 <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>
1744 <td class="struct_member_description"><p>Indicates whether this is a C array, GArray, GPtrArray, or
1745 GByteArray. If something other than a C array, the length and element
1746 size are implicit in the structure.</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.reserved2"></a>reserved2</code></em> :3;</p></td>
1751 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1752 <td class="struct_member_annotations"> </td>
1755 <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>
1756 <td class="struct_member_description"><p>TODO</p></td>
1757 <td class="struct_member_annotations"> </td>
1760 <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>
1761 <td class="struct_member_description"><p>TODO</p></td>
1762 <td class="struct_member_annotations"> </td>
1769 <div class="refsect2">
1770 <a name="ParamTypeBlob"></a><h3>ParamTypeBlob</h3>
1771 <pre class="programlisting">typedef struct {
1779 SimpleTypeBlob type[];
1783 <div class="refsect3">
1784 <a name="ParamTypeBlob.members"></a><h4>Members</h4>
1785 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1787 <col width="300px" class="struct_members_name">
1788 <col class="struct_members_description">
1789 <col width="200px" class="struct_members_annotations">
1793 <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>
1794 <td class="struct_member_description"><p>TODO</p></td>
1795 <td class="struct_member_annotations"> </td>
1798 <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>
1799 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1800 <td class="struct_member_annotations"> </td>
1803 <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>
1804 <td class="struct_member_description"><p>TODO</p></td>
1805 <td class="struct_member_annotations"> </td>
1808 <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>
1809 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1810 <td class="struct_member_annotations"> </td>
1813 <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>
1814 <td class="struct_member_description"><p>The number of parameter types to follow.</p></td>
1815 <td class="struct_member_annotations"> </td>
1818 <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>
1819 <td class="struct_member_description"><p>Describes the type of the list elements.</p></td>
1820 <td class="struct_member_annotations"> </td>
1827 <div class="refsect2">
1828 <a name="ErrorTypeBlob"></a><h3>ErrorTypeBlob</h3>
1829 <pre class="programlisting">typedef struct {
1836 guint16 n_domains; /* Must be 0 */
1841 <div class="refsect3">
1842 <a name="ErrorTypeBlob.members"></a><h4>Members</h4>
1843 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1845 <col width="300px" class="struct_members_name">
1846 <col class="struct_members_description">
1847 <col width="200px" class="struct_members_annotations">
1851 <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>
1852 <td class="struct_member_description"><p>TODO</p></td>
1853 <td class="struct_member_annotations"> </td>
1856 <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>
1857 <td class="struct_member_description"><p>TODO</p></td>
1858 <td class="struct_member_annotations"> </td>
1861 <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>
1862 <td class="struct_member_description"><p>TODO</p></td>
1863 <td class="struct_member_annotations"> </td>
1866 <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>
1867 <td class="struct_member_description"><p>TODO</p></td>
1868 <td class="struct_member_annotations"> </td>
1871 <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>
1872 <td class="struct_member_description"><p>TODO: must be 0</p></td>
1873 <td class="struct_member_annotations"> </td>
1876 <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>
1877 <td class="struct_member_description"><p>TODO</p></td>
1878 <td class="struct_member_annotations"> </td>
1885 <div class="refsect2">
1886 <a name="ValueBlob"></a><h3>ValueBlob</h3>
1887 <pre class="programlisting">typedef struct {
1888 guint32 deprecated : 1;
1889 guint32 unsigned_value : 1;
1890 guint32 reserved :30;
1895 <p>Values commonly occur in enums and flags.</p>
1896 <div class="refsect3">
1897 <a name="ValueBlob.members"></a><h4>Members</h4>
1898 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1900 <col width="300px" class="struct_members_name">
1901 <col class="struct_members_description">
1902 <col width="200px" class="struct_members_annotations">
1906 <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>
1907 <td class="struct_member_description"><p>Whether this value is deprecated</p></td>
1908 <td class="struct_member_annotations"> </td>
1911 <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>
1912 <td class="struct_member_description"><p>if set, value is a 32-bit unsigned integer cast to gint32</p></td>
1913 <td class="struct_member_annotations"> </td>
1916 <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>
1917 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1918 <td class="struct_member_annotations"> </td>
1921 <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>
1922 <td class="struct_member_description"><p>Name of blob</p></td>
1923 <td class="struct_member_annotations"> </td>
1926 <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>
1927 <td class="struct_member_description"><p>The numerical value</p></td>
1928 <td class="struct_member_annotations"> </td>
1935 <div class="refsect2">
1936 <a name="FieldBlob"></a><h3>FieldBlob</h3>
1937 <pre class="programlisting">typedef struct {
1942 guint8 has_embedded_type :1;
1946 guint16 struct_offset;
1950 SimpleTypeBlob type;
1954 <div class="refsect3">
1955 <a name="FieldBlob.members"></a><h4>Members</h4>
1956 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1958 <col width="300px" class="struct_members_name">
1959 <col class="struct_members_description">
1960 <col width="200px" class="struct_members_annotations">
1964 <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>
1965 <td class="struct_member_description"><p>The name of the field.</p></td>
1966 <td class="struct_member_annotations"> </td>
1969 <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>
1970 <td class="struct_member_description"><p>TODO</p></td>
1971 <td class="struct_member_annotations"> </td>
1974 <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>
1975 <td class="struct_member_description"><p>How the field may be accessed.</p></td>
1976 <td class="struct_member_annotations"> </td>
1979 <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>
1980 <td class="struct_member_description"><p>An anonymous type follows the FieldBlob.</p></td>
1981 <td class="struct_member_annotations"> </td>
1984 <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>
1985 <td class="struct_member_description"><p>Reserved for future use.</p></td>
1986 <td class="struct_member_annotations"> </td>
1989 <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>
1990 <td class="struct_member_description"><p>If this field is part of a bitfield, the number of bits which it
1991 uses, otherwise 0.</p></td>
1992 <td class="struct_member_annotations"> </td>
1995 <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>
1996 <td class="struct_member_description"><p>The offset of the field in the struct. The value 0xFFFF
1997 indicates that the struct offset is unknown.</p></td>
1998 <td class="struct_member_annotations"> </td>
2001 <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>
2002 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2003 <td class="struct_member_annotations"> </td>
2006 <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>
2007 <td class="struct_member_description"><p>The type of the field.</p></td>
2008 <td class="struct_member_annotations"> </td>
2015 <div class="refsect2">
2016 <a name="RegisteredTypeBlob"></a><h3>RegisteredTypeBlob</h3>
2017 <pre class="programlisting">typedef struct {
2019 guint16 deprecated : 1;
2020 guint16 unregistered : 1;
2021 guint16 reserved :14;
2026 } RegisteredTypeBlob;
2029 <div class="refsect3">
2030 <a name="RegisteredTypeBlob.members"></a><h4>Members</h4>
2031 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2033 <col width="300px" class="struct_members_name">
2034 <col class="struct_members_description">
2035 <col width="200px" class="struct_members_annotations">
2039 <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>
2040 <td class="struct_member_description"><p>TODO</p></td>
2041 <td class="struct_member_annotations"> </td>
2044 <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>
2045 <td class="struct_member_description"><p>TODO</p></td>
2046 <td class="struct_member_annotations"> </td>
2049 <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>
2050 <td class="struct_member_description"><p>TODO</p></td>
2051 <td class="struct_member_annotations"> </td>
2054 <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>
2055 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2056 <td class="struct_member_annotations"> </td>
2059 <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>
2060 <td class="struct_member_description"><p>TODO</p></td>
2061 <td class="struct_member_annotations"> </td>
2064 <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>
2065 <td class="struct_member_description"><p>The name under which the type is registered with GType.</p></td>
2066 <td class="struct_member_annotations"> </td>
2069 <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>
2070 <td class="struct_member_description"><p>The symbol name of the get_type() function which registers the
2072 <td class="struct_member_annotations"> </td>
2079 <div class="refsect2">
2080 <a name="StructBlob"></a><h3>StructBlob</h3>
2081 <pre class="programlisting">typedef struct {
2084 guint16 deprecated : 1;
2085 guint16 unregistered : 1;
2086 guint16 is_gtype_struct : 1;
2087 guint16 alignment : 6;
2088 guint16 foreign : 1;
2089 guint16 reserved : 6;
2106 <div class="refsect3">
2107 <a name="StructBlob.members"></a><h4>Members</h4>
2108 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2110 <col width="300px" class="struct_members_name">
2111 <col class="struct_members_description">
2112 <col width="200px" class="struct_members_annotations">
2116 <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>
2117 <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>
2118 <td class="struct_member_annotations"> </td>
2121 <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>
2122 <td class="struct_member_description"><p>Whether this structure is deprecated</p></td>
2123 <td class="struct_member_annotations"> </td>
2126 <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>
2127 <td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
2128 <td class="struct_member_annotations"> </td>
2131 <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>
2132 <td class="struct_member_description"><p>Whether this structure is the class or interface layout
2133 for a GObject</p></td>
2134 <td class="struct_member_annotations"> </td>
2137 <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>
2138 <td class="struct_member_description"><p>The byte boundary that the struct is aligned to in memory</p></td>
2139 <td class="struct_member_annotations"> </td>
2142 <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>
2143 <td class="struct_member_description"><p>If the type is foreign, eg if it's expected to be overridden by
2144 a native language binding instead of relying of introspected bindings.</p></td>
2145 <td class="struct_member_annotations"> </td>
2148 <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>
2149 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2150 <td class="struct_member_annotations"> </td>
2153 <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>
2154 <td class="struct_member_description"><p>TODO</p></td>
2155 <td class="struct_member_annotations"> </td>
2158 <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>
2159 <td class="struct_member_description"><p>String name of the associated <span class="type">GType</span></p></td>
2160 <td class="struct_member_annotations"> </td>
2163 <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>
2164 <td class="struct_member_description"><p>String naming the symbol which gets the runtime <span class="type">GType</span></p></td>
2165 <td class="struct_member_annotations"> </td>
2168 <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>
2169 <td class="struct_member_description"><p>The size of the struct in bytes.</p></td>
2170 <td class="struct_member_annotations"> </td>
2173 <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>
2174 <td class="struct_member_description"><p>TODO</p></td>
2175 <td class="struct_member_annotations"> </td>
2178 <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>
2179 <td class="struct_member_description"><p>TODO</p></td>
2180 <td class="struct_member_annotations"> </td>
2183 <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>
2184 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2185 <td class="struct_member_annotations"> </td>
2188 <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>
2189 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2190 <td class="struct_member_annotations"> </td>
2197 <div class="refsect2">
2198 <a name="UnionBlob"></a><h3>UnionBlob</h3>
2199 <pre class="programlisting">typedef struct {
2201 guint16 deprecated : 1;
2202 guint16 unregistered : 1;
2203 guint16 discriminated : 1;
2204 guint16 alignment : 6;
2205 guint16 reserved : 7;
2214 guint16 n_functions;
2219 gint32 discriminator_offset;
2220 SimpleTypeBlob discriminator_type;
2224 <div class="refsect3">
2225 <a name="UnionBlob.members"></a><h4>Members</h4>
2226 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2228 <col width="300px" class="struct_members_name">
2229 <col class="struct_members_description">
2230 <col width="200px" class="struct_members_annotations">
2234 <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>
2235 <td class="struct_member_description"><p>TODO</p></td>
2236 <td class="struct_member_annotations"> </td>
2239 <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>
2240 <td class="struct_member_description"><p>TODO</p></td>
2241 <td class="struct_member_annotations"> </td>
2244 <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>
2245 <td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
2246 <td class="struct_member_annotations"> </td>
2249 <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>
2250 <td class="struct_member_description"><p>Is set if the union is discriminated</p></td>
2251 <td class="struct_member_annotations"> </td>
2254 <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>
2255 <td class="struct_member_description"><p>The byte boundary that the union is aligned to in memory</p></td>
2256 <td class="struct_member_annotations"> </td>
2259 <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>
2260 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2261 <td class="struct_member_annotations"> </td>
2264 <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>
2265 <td class="struct_member_description"><p>TODO</p></td>
2266 <td class="struct_member_annotations"> </td>
2269 <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>
2270 <td class="struct_member_description"><p>String name of the associated <span class="type">GType</span></p></td>
2271 <td class="struct_member_annotations"> </td>
2274 <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>
2275 <td class="struct_member_description"><p>String naming the symbol which gets the runtime <span class="type">GType</span></p></td>
2276 <td class="struct_member_annotations"> </td>
2279 <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>
2280 <td class="struct_member_description"><p>TODO</p></td>
2281 <td class="struct_member_annotations"> </td>
2284 <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>
2285 <td class="struct_member_description"><p>Length of the arrays</p></td>
2286 <td class="struct_member_annotations"> </td>
2289 <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>
2290 <td class="struct_member_description"><p>TODO</p></td>
2291 <td class="struct_member_annotations"> </td>
2294 <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>
2295 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2296 <td class="struct_member_annotations"> </td>
2299 <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>
2300 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2301 <td class="struct_member_annotations"> </td>
2304 <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>
2305 <td class="struct_member_description"><p>Offset from the beginning of the union where the
2306 discriminator of a discriminated union is located. The value 0xFFFF
2307 indicates that the discriminator offset is unknown.</p></td>
2308 <td class="struct_member_annotations"> </td>
2311 <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>
2312 <td class="struct_member_description"><p>Type of the discriminator</p></td>
2313 <td class="struct_member_annotations"> </td>
2320 <div class="refsect2">
2321 <a name="EnumBlob"></a><h3>EnumBlob</h3>
2322 <pre class="programlisting">typedef struct {
2325 guint16 deprecated : 1;
2326 guint16 unregistered : 1;
2327 guint16 storage_type : 5;
2328 guint16 reserved : 9;
2338 guint32 error_domain;
2344 <div class="refsect3">
2345 <a name="EnumBlob.members"></a><h4>Members</h4>
2346 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2348 <col width="300px" class="struct_members_name">
2349 <col class="struct_members_description">
2350 <col width="200px" class="struct_members_annotations">
2354 <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>
2355 <td class="struct_member_description"><p>TODO</p></td>
2356 <td class="struct_member_annotations"> </td>
2359 <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>
2360 <td class="struct_member_description"><p>TODO</p></td>
2361 <td class="struct_member_annotations"> </td>
2364 <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>
2365 <td class="struct_member_description"><p>If this is set, the type is not registered with GType.</p></td>
2366 <td class="struct_member_annotations"> </td>
2369 <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>
2370 <td class="struct_member_description"><p>The tag of the type used for the enum in the C ABI
2371 (will be a signed or unsigned integral type)</p></td>
2372 <td class="struct_member_annotations"> </td>
2375 <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>
2376 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2377 <td class="struct_member_annotations"> </td>
2380 <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>
2381 <td class="struct_member_description"><p>TODO</p></td>
2382 <td class="struct_member_annotations"> </td>
2385 <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>
2386 <td class="struct_member_description"><p>String name of the associated <span class="type">GType</span></p></td>
2387 <td class="struct_member_annotations"> </td>
2390 <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>
2391 <td class="struct_member_description"><p>String naming the symbol which gets the runtime <span class="type">GType</span></p></td>
2392 <td class="struct_member_annotations"> </td>
2395 <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>
2396 <td class="struct_member_description"><p>The length of the values array.</p></td>
2397 <td class="struct_member_annotations"> </td>
2400 <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>
2401 <td class="struct_member_description"><p>The length of the methods array.</p></td>
2402 <td class="struct_member_annotations"> </td>
2405 <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>
2406 <td class="struct_member_description"><p>String naming the <span class="type">GError</span> domain this enum is associated with</p></td>
2407 <td class="struct_member_annotations"> </td>
2410 <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>
2411 <td class="struct_member_description"><p>TODO</p></td>
2412 <td class="struct_member_annotations"> </td>
2419 <div class="refsect2">
2420 <a name="PropertyBlob"></a><h3>PropertyBlob</h3>
2421 <pre class="programlisting">typedef struct {
2424 guint32 deprecated : 1;
2425 guint32 readable : 1;
2426 guint32 writable : 1;
2427 guint32 construct : 1;
2428 guint32 construct_only : 1;
2429 guint32 transfer_ownership : 1;
2430 guint32 transfer_container_ownership : 1;
2431 guint32 reserved :25;
2435 SimpleTypeBlob type;
2439 <div class="refsect3">
2440 <a name="PropertyBlob.members"></a><h4>Members</h4>
2441 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2443 <col width="300px" class="struct_members_name">
2444 <col class="struct_members_description">
2445 <col width="200px" class="struct_members_annotations">
2449 <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>
2450 <td class="struct_member_description"><p>The name of the property.</p></td>
2451 <td class="struct_member_annotations"> </td>
2454 <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>
2455 <td class="struct_member_description"><p>TODO</p></td>
2456 <td class="struct_member_annotations"> </td>
2459 <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>
2460 <td class="struct_member_description"><p>TODO</p></td>
2461 <td class="struct_member_annotations"> </td>
2464 <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>
2465 <td class="struct_member_description"><p>TODO</p></td>
2466 <td class="struct_member_annotations"> </td>
2469 <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>
2470 <td class="struct_member_description"><p>TODO</p></td>
2471 <td class="struct_member_annotations"> </td>
2474 <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>
2475 <td class="struct_member_description"><p>The ParamFlags used when registering the property.</p></td>
2476 <td class="struct_member_annotations"> </td>
2479 <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>
2480 <td class="struct_member_description"><p>When writing, the type containing the property takes
2481 ownership of the value. When reading, the returned value needs to be
2482 released by the caller.</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-container-ownership"></a>transfer_container_ownership</code></em> : 1;</p></td>
2487 <td class="struct_member_description"><p>For container types indicates that the
2488 ownership of the container, but not of its contents, is transferred.
2489 This is typically the case when reading lists of statically allocated
2491 <td class="struct_member_annotations"> </td>
2494 <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>
2495 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2496 <td class="struct_member_annotations"> </td>
2499 <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>
2500 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2501 <td class="struct_member_annotations"> </td>
2504 <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>
2505 <td class="struct_member_description"><p>Describes the type of the property.</p></td>
2506 <td class="struct_member_annotations"> </td>
2513 <div class="refsect2">
2514 <a name="SignalBlob"></a><h3>SignalBlob</h3>
2515 <pre class="programlisting">typedef struct {
2516 guint16 deprecated : 1;
2517 guint16 run_first : 1;
2518 guint16 run_last : 1;
2519 guint16 run_cleanup : 1;
2520 guint16 no_recurse : 1;
2521 guint16 detailed : 1;
2523 guint16 no_hooks : 1;
2524 guint16 has_class_closure : 1;
2525 guint16 true_stops_emit : 1;
2526 guint16 reserved : 6;
2528 guint16 class_closure;
2538 <div class="refsect3">
2539 <a name="SignalBlob.members"></a><h4>Members</h4>
2540 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2542 <col width="300px" class="struct_members_name">
2543 <col class="struct_members_description">
2544 <col width="200px" class="struct_members_annotations">
2548 <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>
2549 <td class="struct_member_description"><p>TODO</p></td>
2550 <td class="struct_member_annotations"> </td>
2553 <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>
2554 <td class="struct_member_description"><p>TODO</p></td>
2555 <td class="struct_member_annotations"> </td>
2558 <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>
2559 <td class="struct_member_description"><p>TODO</p></td>
2560 <td class="struct_member_annotations"> </td>
2563 <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>
2564 <td class="struct_member_description"><p>TODO</p></td>
2565 <td class="struct_member_annotations"> </td>
2568 <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>
2569 <td class="struct_member_description"><p>TODO</p></td>
2570 <td class="struct_member_annotations"> </td>
2573 <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>
2574 <td class="struct_member_description"><p>TODO</p></td>
2575 <td class="struct_member_annotations"> </td>
2578 <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>
2579 <td class="struct_member_description"><p>TODO</p></td>
2580 <td class="struct_member_annotations"> </td>
2583 <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>
2584 <td class="struct_member_description"><p>The flags used when registering the signal.</p></td>
2585 <td class="struct_member_annotations"> </td>
2588 <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>
2589 <td class="struct_member_description"><p>Set if the signal has a class closure.</p></td>
2590 <td class="struct_member_annotations"> </td>
2593 <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>
2594 <td class="struct_member_description"><p>Whether the signal has true-stops-emit semantics</p></td>
2595 <td class="struct_member_annotations"> </td>
2598 <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>
2599 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2600 <td class="struct_member_annotations"> </td>
2603 <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>
2604 <td class="struct_member_description"><p>The index of the class closure in the list of virtual
2605 functions of the object or interface on which the signal is defined.</p></td>
2606 <td class="struct_member_annotations"> </td>
2609 <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>
2610 <td class="struct_member_description"><p>The name of the signal.</p></td>
2611 <td class="struct_member_annotations"> </td>
2614 <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>
2615 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2616 <td class="struct_member_annotations"> </td>
2619 <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>
2620 <td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types
2621 and the return value type.</p></td>
2622 <td class="struct_member_annotations"> </td>
2629 <div class="refsect2">
2630 <a name="VFuncBlob"></a><h3>VFuncBlob</h3>
2631 <pre class="programlisting">typedef struct {
2634 guint16 must_chain_up : 1;
2635 guint16 must_be_implemented : 1;
2636 guint16 must_not_be_implemented : 1;
2637 guint16 class_closure : 1;
2639 guint16 reserved :11;
2642 guint16 struct_offset;
2643 guint16 invoker : 10; /* Number of bits matches @index in FunctionBlob */
2644 guint16 reserved2 : 6;
2651 <div class="refsect3">
2652 <a name="VFuncBlob.members"></a><h4>Members</h4>
2653 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2655 <col width="300px" class="struct_members_name">
2656 <col class="struct_members_description">
2657 <col width="200px" class="struct_members_annotations">
2661 <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>
2662 <td class="struct_member_description"><p>The name of the virtual function.</p></td>
2663 <td class="struct_member_annotations"> </td>
2666 <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>
2667 <td class="struct_member_description"><p>If set, every implementation of this virtual function must
2668 chain up to the implementation of the parent class.</p></td>
2669 <td class="struct_member_annotations"> </td>
2672 <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>
2673 <td class="struct_member_description"><p>If set, every derived class must override this virtual
2675 <td class="struct_member_annotations"> </td>
2678 <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>
2679 <td class="struct_member_description"><p>If set, derived class must not override this
2680 virtual function.</p></td>
2681 <td class="struct_member_annotations"> </td>
2684 <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>
2685 <td class="struct_member_description"><p>Set if this virtual function is the class closure of a
2687 <td class="struct_member_annotations"> </td>
2690 <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>
2691 <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>
2692 <td class="struct_member_annotations"><span class="annotation">[deprecated]</span></td>
2695 <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>
2696 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2697 <td class="struct_member_annotations"> </td>
2700 <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>
2701 <td class="struct_member_description"><p>The index of the signal in the list of signals of the object or
2702 interface to which this virtual function belongs.</p></td>
2703 <td class="struct_member_annotations"> </td>
2706 <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>
2707 <td class="struct_member_description"><p>The offset of the function pointer in the class struct.
2708 The value 0xFFFF indicates that the struct offset is unknown.</p></td>
2709 <td class="struct_member_annotations"> </td>
2712 <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>
2713 <td class="struct_member_description"><p>If a method invoker for this virtual exists, this is the offset
2714 in the class structure of the method. If no method is known, this value
2715 will be 0x3ff.</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.reserved2"></a>reserved2</code></em> : 6;</p></td>
2720 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2721 <td class="struct_member_annotations"> </td>
2724 <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>
2725 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2726 <td class="struct_member_annotations"> </td>
2729 <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>
2730 <td class="struct_member_description"><p>Offset of the SignatureBlob describing the parameter types and
2731 the return value type.</p></td>
2732 <td class="struct_member_annotations"> </td>
2739 <div class="refsect2">
2740 <a name="ObjectBlob"></a><h3>ObjectBlob</h3>
2741 <pre class="programlisting">typedef struct {
2742 guint16 blob_type; /* 7 */
2743 guint16 deprecated : 1;
2744 guint16 abstract : 1;
2745 guint16 fundamental : 1;
2746 guint16 reserved :13;
2753 guint16 gtype_struct;
2755 guint16 n_interfaces;
2757 guint16 n_properties;
2761 guint16 n_constants;
2762 guint16 n_field_callbacks;
2766 guint32 set_value_func;
2767 guint32 get_value_func;
2772 guint16 interfaces[];
2776 <div class="refsect3">
2777 <a name="ObjectBlob.members"></a><h4>Members</h4>
2778 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2780 <col width="300px" class="struct_members_name">
2781 <col class="struct_members_description">
2782 <col width="200px" class="struct_members_annotations">
2786 <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>
2787 <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>
2788 <td class="struct_member_annotations"> </td>
2791 <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>
2792 <td class="struct_member_description"><p>TODO</p></td>
2793 <td class="struct_member_annotations"> </td>
2796 <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>
2797 <td class="struct_member_description"><p>TODO</p></td>
2798 <td class="struct_member_annotations"> </td>
2801 <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>
2802 <td class="struct_member_description"><p>this object is not a GObject derived type, instead it's
2803 an additional fundamental type.</p></td>
2804 <td class="struct_member_annotations"> </td>
2807 <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>
2808 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2809 <td class="struct_member_annotations"> </td>
2812 <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>
2813 <td class="struct_member_description"><p>TODO</p></td>
2814 <td class="struct_member_annotations"> </td>
2817 <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>
2818 <td class="struct_member_description"><p>String name of the associated <span class="type">GType</span></p></td>
2819 <td class="struct_member_annotations"> </td>
2822 <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>
2823 <td class="struct_member_description"><p>String naming the symbol which gets the runtime <span class="type">GType</span></p></td>
2824 <td class="struct_member_annotations"> </td>
2827 <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>
2828 <td class="struct_member_description"><p>The directory index of the parent type. This is only set for
2829 objects. If an object does not have a parent, it is zero.</p></td>
2830 <td class="struct_member_annotations"> </td>
2833 <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>
2834 <td class="struct_member_description"><p>TODO</p></td>
2835 <td class="struct_member_annotations"> </td>
2838 <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>
2839 <td class="struct_member_description"><p>TODO</p></td>
2840 <td class="struct_member_annotations"> </td>
2843 <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>
2844 <td class="struct_member_description"><p>TODO</p></td>
2845 <td class="struct_member_annotations"> </td>
2848 <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>
2849 <td class="struct_member_description"><p>TODO</p></td>
2850 <td class="struct_member_annotations"> </td>
2853 <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>
2854 <td class="struct_member_description"><p>TODO</p></td>
2855 <td class="struct_member_annotations"> </td>
2858 <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>
2859 <td class="struct_member_description"><p>TODO</p></td>
2860 <td class="struct_member_annotations"> </td>
2863 <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>
2864 <td class="struct_member_description"><p>TODO</p></td>
2865 <td class="struct_member_annotations"> </td>
2868 <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>
2869 <td class="struct_member_description"><p>The lengths of the arrays.Up to 16bits of padding may be
2870 inserted between the arrays to ensure that they start on a 32bit
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-field-callbacks"></a>n_field_callbacks</code></em>;</p></td>
2876 <td class="struct_member_description"><p>The number of n_fields which are also callbacks.
2877 This is used to calculate the fields section size in constant time.</p></td>
2878 <td class="struct_member_annotations"> </td>
2881 <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>
2882 <td class="struct_member_description"><p>String pointing to a function which can be called to increase
2883 the reference count for an instance of this object type.</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.unref-func"></a>unref_func</code></em>;</p></td>
2888 <td class="struct_member_description"><p>String pointing to a function which can be called to decrease
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.set-value-func"></a>set_value_func</code></em>;</p></td>
2894 <td class="struct_member_description"><p>String pointing to a function which can be called to
2895 convert a pointer of this object to a GValue</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.get-value-func"></a>get_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 extract a pointer to this object from 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.reserved3"></a>reserved3</code></em>;</p></td>
2906 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2907 <td class="struct_member_annotations"> </td>
2910 <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>
2911 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2912 <td class="struct_member_annotations"> </td>
2915 <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>
2916 <td class="struct_member_description"><p>An array of indices of directory entries for the implemented
2917 interfaces.</p></td>
2918 <td class="struct_member_annotations"> </td>
2925 <div class="refsect2">
2926 <a name="InterfaceBlob"></a><h3>InterfaceBlob</h3>
2927 <pre class="programlisting">typedef struct {
2929 guint16 deprecated : 1;
2930 guint16 reserved :15;
2935 guint16 gtype_struct;
2937 guint16 n_prerequisites;
2938 guint16 n_properties;
2942 guint16 n_constants;
2949 guint16 prerequisites[];
2953 <div class="refsect3">
2954 <a name="InterfaceBlob.members"></a><h4>Members</h4>
2955 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2957 <col width="300px" class="struct_members_name">
2958 <col class="struct_members_description">
2959 <col width="200px" class="struct_members_annotations">
2963 <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>
2964 <td class="struct_member_description"><p>TODO</p></td>
2965 <td class="struct_member_annotations"> </td>
2968 <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>
2969 <td class="struct_member_description"><p>TODO</p></td>
2970 <td class="struct_member_annotations"> </td>
2973 <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>
2974 <td class="struct_member_description"><p>Reserved for future use.</p></td>
2975 <td class="struct_member_annotations"> </td>
2978 <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>
2979 <td class="struct_member_description"><p>TODO</p></td>
2980 <td class="struct_member_annotations"> </td>
2983 <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>
2984 <td class="struct_member_description"><p>TODO</p></td>
2985 <td class="struct_member_annotations"> </td>
2988 <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>
2989 <td class="struct_member_description"><p>TODO</p></td>
2990 <td class="struct_member_annotations"> </td>
2993 <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>
2994 <td class="struct_member_description"><p>Name of the interface "class" C structure</p></td>
2995 <td class="struct_member_annotations"> </td>
2998 <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>
2999 <td class="struct_member_description"><p>Number of prerequisites</p></td>
3000 <td class="struct_member_annotations"> </td>
3003 <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>
3004 <td class="struct_member_description"><p>Number of properties</p></td>
3005 <td class="struct_member_annotations"> </td>
3008 <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>
3009 <td class="struct_member_description"><p>Number of methods</p></td>
3010 <td class="struct_member_annotations"> </td>
3013 <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>
3014 <td class="struct_member_description"><p>Number of signals</p></td>
3015 <td class="struct_member_annotations"> </td>
3018 <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>
3019 <td class="struct_member_description"><p>Number of virtual functions</p></td>
3020 <td class="struct_member_annotations"> </td>
3023 <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>
3024 <td class="struct_member_description"><p>The lengths of the arrays. Up to 16bits of padding may be
3025 inserted between the arrays to ensure that they start on a 32bit
3027 <td class="struct_member_annotations"> </td>
3030 <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>
3031 <td class="struct_member_description"><p>TODO</p></td>
3032 <td class="struct_member_annotations"> </td>
3035 <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>
3036 <td class="struct_member_description"><p>Reserved for future use.</p></td>
3037 <td class="struct_member_annotations"> </td>
3040 <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>
3041 <td class="struct_member_description"><p>Reserved for future use.</p></td>
3042 <td class="struct_member_annotations"> </td>
3045 <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>
3046 <td class="struct_member_description"><p>An array of indices of directory entries for required
3047 interfaces.</p></td>
3048 <td class="struct_member_annotations"> </td>
3055 <div class="refsect2">
3056 <a name="ConstantBlob"></a><h3>ConstantBlob</h3>
3057 <pre class="programlisting">typedef struct {
3059 guint16 deprecated : 1;
3060 guint16 reserved :15;
3063 SimpleTypeBlob type;
3072 <div class="refsect3">
3073 <a name="ConstantBlob.members"></a><h4>Members</h4>
3074 <div class="informaltable"><table class="informaltable" width="100%" border="0">
3076 <col width="300px" class="struct_members_name">
3077 <col class="struct_members_description">
3078 <col width="200px" class="struct_members_annotations">
3082 <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>
3083 <td class="struct_member_description"><p>TODO</p></td>
3084 <td class="struct_member_annotations"> </td>
3087 <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>
3088 <td class="struct_member_description"><p>TODO</p></td>
3089 <td class="struct_member_annotations"> </td>
3092 <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>
3093 <td class="struct_member_description"><p>Reserved for future use.</p></td>
3094 <td class="struct_member_annotations"> </td>
3097 <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>
3098 <td class="struct_member_description"><p>TODO</p></td>
3099 <td class="struct_member_annotations"> </td>
3102 <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>
3103 <td class="struct_member_description"><p>The type of the value. In most cases this should be a numeric type
3105 <td class="struct_member_annotations"> </td>
3108 <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>
3109 <td class="struct_member_description"><p>The size of the value in bytes.</p></td>
3110 <td class="struct_member_annotations"> </td>
3113 <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>
3114 <td class="struct_member_description"><p>The offset of the value in the typelib.</p></td>
3115 <td class="struct_member_annotations"> </td>
3118 <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>
3119 <td class="struct_member_description"><p>Reserved for future use.</p></td>
3120 <td class="struct_member_annotations"> </td>
3127 <div class="refsect2">
3128 <a name="AttributeBlob"></a><h3>AttributeBlob</h3>
3129 <pre class="programlisting">typedef struct {
3136 <div class="refsect3">
3137 <a name="AttributeBlob.members"></a><h4>Members</h4>
3138 <div class="informaltable"><table class="informaltable" width="100%" border="0">
3140 <col width="300px" class="struct_members_name">
3141 <col class="struct_members_description">
3142 <col width="200px" class="struct_members_annotations">
3146 <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>
3147 <td class="struct_member_description"><p>The offset of the typelib entry to which this attribute refers.
3148 Attributes are kept sorted by offset, so that the attributes of an
3149 entry can be found by a binary search.</p></td>
3150 <td class="struct_member_annotations"> </td>
3153 <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>
3154 <td class="struct_member_description"><p>The name of the attribute, a string.</p></td>
3155 <td class="struct_member_annotations"> </td>
3158 <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>
3159 <td class="struct_member_description"><p>The value of the attribute (also a string)</p></td>
3160 <td class="struct_member_annotations"> </td>
3167 <div class="refsect2">
3168 <a name="GITypelibError"></a><h3>enum GITypelibError</h3>
3169 <p>A error set while validating the <a class="link" href="gi-gitypelib.html#GITypelib" title="GITypelib"><span class="type">GITypelib</span></a></p>
3170 <div class="refsect3">
3171 <a name="GITypelibError.members"></a><h4>Members</h4>
3172 <div class="informaltable"><table class="informaltable" width="100%" border="0">
3174 <col width="300px" class="enum_members_name">
3175 <col class="enum_members_description">
3176 <col width="200px" class="enum_members_annotations">
3180 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID:CAPS"></a>G_TYPELIB_ERROR_INVALID</p></td>
3181 <td class="enum_member_description">
3182 <p>the typelib is invalid</p>
3184 <td class="enum_member_annotations"> </td>
3187 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-HEADER:CAPS"></a>G_TYPELIB_ERROR_INVALID_HEADER</p></td>
3188 <td class="enum_member_description">
3189 <p>the typelib header is invalid</p>
3191 <td class="enum_member_annotations"> </td>
3194 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-DIRECTORY:CAPS"></a>G_TYPELIB_ERROR_INVALID_DIRECTORY</p></td>
3195 <td class="enum_member_description">
3196 <p>the typelib directory is invalid</p>
3198 <td class="enum_member_annotations"> </td>
3201 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-ENTRY:CAPS"></a>G_TYPELIB_ERROR_INVALID_ENTRY</p></td>
3202 <td class="enum_member_description">
3203 <p>a typelib entry is invalid</p>
3205 <td class="enum_member_annotations"> </td>
3208 <td class="enum_member_name"><p><a name="G-TYPELIB-ERROR-INVALID-BLOB:CAPS"></a>G_TYPELIB_ERROR_INVALID_BLOB</p></td>
3209 <td class="enum_member_description">
3210 <p>a typelib blob is invalid</p>
3212 <td class="enum_member_annotations"> </td>
3219 <div class="refsect2">
3220 <a name="G-TYPELIB-ERROR:CAPS"></a><h3>G_TYPELIB_ERROR</h3>
3221 <pre class="programlisting">#define G_TYPELIB_ERROR (g_typelib_error_quark ())
3226 <div class="refsect2">
3227 <a name="GITypelibHashBuilder"></a><h3>GITypelibHashBuilder</h3>
3228 <pre class="programlisting">typedef struct _GITypelibHashBuilder GITypelibHashBuilder;</pre>
3233 <div class="footer">
3234 <hr>Generated by GTK-Doc V1.25.1</div>