Allow using GLib.List(Foo) instead of GLib.List<Foo>
[platform/upstream/gobject-introspection.git] / tests / scanner / Regress-1.0-expected.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository version="1.2"
6             xmlns="http://www.gtk.org/introspection/core/1.0"
7             xmlns:c="http://www.gtk.org/introspection/c/1.0"
8             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9   <include name="GLib" version="2.0"/>
10   <include name="GObject" version="2.0"/>
11   <include name="Gio" version="2.0"/>
12   <include name="cairo" version="1.0"/>
13   <c:include name="regress.h"/>
14   <namespace name="Regress"
15              version="1.0"
16              shared-library="libregress.so"
17              c:identifier-prefixes="Regress"
18              c:symbol-prefixes="regress">
19     <alias name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed">
20       <doc xml:whitespace="preserve">Typedef TestBoxed to test caller-allocates correctness</doc>
21       <type name="TestBoxed" c:type="RegressTestBoxed"/>
22     </alias>
23     <alias name="IntSet" c:type="RegressIntSet" introspectable="0">
24       <doc xml:whitespace="preserve">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
25       <type name="Intset" c:type="RegressIntset"/>
26     </alias>
27     <alias name="PtrArrayAlias" c:type="RegressPtrArrayAlias">
28       <doc xml:whitespace="preserve">Typedef'd GPtrArray for some reason</doc>
29       <type name="GLib.PtrArray" c:type="GPtrArray"/>
30     </alias>
31     <alias name="VaListAlias" c:type="RegressVaListAlias" introspectable="0">
32       <doc xml:whitespace="preserve">Typedef'd va_list for additional reasons</doc>
33       <type name="va_list" c:type="va_list"/>
34     </alias>
35     <constant name="DOUBLE_CONSTANT"
36               value="44.220000"
37               c:type="REGRESS_DOUBLE_CONSTANT">
38       <type name="gdouble" c:type="gdouble"/>
39     </constant>
40     <constant name="INT_CONSTANT" value="4422" c:type="REGRESS_INT_CONSTANT">
41       <type name="gint" c:type="gint"/>
42     </constant>
43     <record name="Intset" c:type="RegressIntset" disguised="1">
44       <doc xml:whitespace="preserve">Like telepathy-glib's TpIntset.</doc>
45     </record>
46     <constant name="LONG_STRING_CONSTANT"
47               value="TYPE,VALUE,ENCODING,CHARSET,LANGUAGE,DOM,INTL,POSTAL,PARCEL,HOME,WORK,PREF,VOICE,FAX,MSG,CELL,PAGER,BBS,MODEM,CAR,ISDN,VIDEO,AOL,APPLELINK,ATTMAIL,CIS,EWORLD,INTERNET,IBMMAIL,MCIMAIL,POWERSHARE,PRODIGY,TLX,X400,GIF,CGM,WMF,BMP,MET,PMB,DIB,PICT,TIFF,PDF,PS,JPEG,QTIME,MPEG,MPEG2,AVI,WAVE,AIFF,PCM,X509,PGP"
48               c:type="REGRESS_LONG_STRING_CONSTANT">
49       <type name="utf8" c:type="gchar*"/>
50     </constant>
51     <constant name="Mixed_Case_Constant"
52               value="4423"
53               c:type="REGRESS_Mixed_Case_Constant">
54       <type name="gint" c:type="gint"/>
55     </constant>
56     <constant name="STRING_CONSTANT"
57               value="Some String"
58               c:type="REGRESS_STRING_CONSTANT">
59       <type name="utf8" c:type="gchar*"/>
60     </constant>
61     <record name="SkippedStructure"
62             c:type="RegressSkippedStructure"
63             introspectable="0">
64       <doc xml:whitespace="preserve">This should be skipped, and moreover, all function which
65 use it should be.</doc>
66       <field name="x" writable="1">
67         <type name="gint" c:type="int"/>
68       </field>
69       <field name="v" writable="1">
70         <type name="gdouble" c:type="double"/>
71       </field>
72     </record>
73     <record name="TestBoxed"
74             c:type="RegressTestBoxed"
75             glib:type-name="RegressTestBoxed"
76             glib:get-type="regress_test_boxed_get_type"
77             c:symbol-prefix="test_boxed">
78       <field name="some_int8" writable="1">
79         <type name="gint8" c:type="gint8"/>
80       </field>
81       <field name="nested_a" writable="1">
82         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
83       </field>
84       <field name="priv" writable="1">
85         <type name="TestBoxedPrivate" c:type="RegressTestBoxedPrivate*"/>
86       </field>
87       <constructor name="new" c:identifier="regress_test_boxed_new">
88         <return-value transfer-ownership="full">
89           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
90         </return-value>
91       </constructor>
92       <constructor name="new_alternative_constructor1"
93                    c:identifier="regress_test_boxed_new_alternative_constructor1">
94         <return-value transfer-ownership="full">
95           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
96         </return-value>
97         <parameters>
98           <parameter name="i" transfer-ownership="none">
99             <type name="gint" c:type="int"/>
100           </parameter>
101         </parameters>
102       </constructor>
103       <constructor name="new_alternative_constructor2"
104                    c:identifier="regress_test_boxed_new_alternative_constructor2">
105         <return-value transfer-ownership="full">
106           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
107         </return-value>
108         <parameters>
109           <parameter name="i" transfer-ownership="none">
110             <type name="gint" c:type="int"/>
111           </parameter>
112           <parameter name="j" transfer-ownership="none">
113             <type name="gint" c:type="int"/>
114           </parameter>
115         </parameters>
116       </constructor>
117       <constructor name="new_alternative_constructor3"
118                    c:identifier="regress_test_boxed_new_alternative_constructor3">
119         <return-value transfer-ownership="full">
120           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
121         </return-value>
122         <parameters>
123           <parameter name="s" transfer-ownership="none">
124             <type name="utf8" c:type="char*"/>
125           </parameter>
126         </parameters>
127       </constructor>
128       <method name="copy" c:identifier="regress_test_boxed_copy">
129         <return-value transfer-ownership="full">
130           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
131         </return-value>
132       </method>
133       <method name="equals" c:identifier="regress_test_boxed_equals">
134         <return-value transfer-ownership="none">
135           <type name="gboolean" c:type="gboolean"/>
136         </return-value>
137         <parameters>
138           <parameter name="other" transfer-ownership="none">
139             <type name="TestBoxed" c:type="RegressTestBoxed*"/>
140           </parameter>
141         </parameters>
142       </method>
143     </record>
144     <record name="TestBoxedPrivate"
145             c:type="RegressTestBoxedPrivate"
146             disguised="1">
147     </record>
148     <callback name="TestCallback" c:type="RegressTestCallback">
149       <return-value transfer-ownership="none">
150         <type name="gint" c:type="int"/>
151       </return-value>
152     </callback>
153     <callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
154       <return-value transfer-ownership="none">
155         <type name="gint" c:type="int"/>
156       </return-value>
157       <parameters>
158         <parameter name="foo" transfer-ownership="none">
159           <doc xml:whitespace="preserve">the investment rate</doc>
160           <type name="gint" c:type="int"/>
161         </parameter>
162         <parameter name="bar" transfer-ownership="none">
163           <doc xml:whitespace="preserve">how much money</doc>
164           <type name="gdouble" c:type="double"/>
165         </parameter>
166         <parameter name="path" transfer-ownership="none">
167           <doc xml:whitespace="preserve">Path to file</doc>
168           <type name="filename" c:type="char*"/>
169         </parameter>
170       </parameters>
171     </callback>
172     <callback name="TestCallbackUserData" c:type="RegressTestCallbackUserData">
173       <return-value transfer-ownership="none">
174         <type name="gint" c:type="int"/>
175       </return-value>
176       <parameters>
177         <parameter name="user_data" transfer-ownership="none" closure="0">
178           <type name="gpointer" c:type="gpointer"/>
179         </parameter>
180       </parameters>
181     </callback>
182     <enumeration name="TestEnum"
183                  glib:type-name="RegressTestEnum"
184                  glib:get-type="regress_test_enum_get_type"
185                  c:type="RegressTestEnum">
186       <member name="value1"
187               value="0"
188               c:identifier="REGRESS_TEST_VALUE1"
189               glib:nick="value1"/>
190       <member name="value2"
191               value="1"
192               c:identifier="REGRESS_TEST_VALUE2"
193               glib:nick="value2"/>
194       <member name="value3"
195               value="-1"
196               c:identifier="REGRESS_TEST_VALUE3"
197               glib:nick="value3"/>
198       <member name="value4"
199               value="48"
200               c:identifier="REGRESS_TEST_VALUE4"
201               glib:nick="value4"/>
202       <function name="param" c:identifier="regress_test_enum_param">
203         <return-value transfer-ownership="none">
204           <type name="utf8" c:type="gchar*"/>
205         </return-value>
206         <parameters>
207           <parameter name="e" transfer-ownership="none">
208             <type name="TestEnum" c:type="RegressTestEnum"/>
209           </parameter>
210         </parameters>
211       </function>
212     </enumeration>
213     <enumeration name="TestEnumNoGEnum" c:type="RegressTestEnumNoGEnum">
214       <member name="evalue1" value="0" c:identifier="REGRESS_TEST_EVALUE1"/>
215       <member name="evalue2" value="42" c:identifier="REGRESS_TEST_EVALUE2"/>
216       <member name="evalue3" value="48" c:identifier="REGRESS_TEST_EVALUE3"/>
217     </enumeration>
218     <enumeration name="TestEnumUnsigned"
219                  glib:type-name="RegressTestEnumUnsigned"
220                  glib:get-type="regress_test_enum_unsigned_get_type"
221                  c:type="RegressTestEnumUnsigned">
222       <member name="value1"
223               value="1"
224               c:identifier="REGRESS_TEST_UNSIGNED_VALUE1"
225               glib:nick="value1"/>
226       <member name="value2"
227               value="2147483648"
228               c:identifier="REGRESS_TEST_UNSIGNED_VALUE2"
229               glib:nick="value2"/>
230     </enumeration>
231     <bitfield name="TestFlags"
232               glib:type-name="RegressTestFlags"
233               glib:get-type="regress_test_flags_get_type"
234               c:type="RegressTestFlags">
235       <member name="flag1"
236               value="1"
237               c:identifier="TEST_FLAG1"
238               glib:nick="flag1"/>
239       <member name="flag2"
240               value="2"
241               c:identifier="TEST_FLAG2"
242               glib:nick="flag2"/>
243       <member name="flag3"
244               value="4"
245               c:identifier="TEST_FLAG3"
246               glib:nick="flag3"/>
247     </bitfield>
248     <class name="TestFloating"
249            c:symbol-prefix="test_floating"
250            c:type="RegressTestFloating"
251            parent="GObject.InitiallyUnowned"
252            glib:type-name="RegressTestFloating"
253            glib:get-type="regress_test_floating_get_type"
254            glib:type-struct="TestFloatingClass">
255       <constructor name="new" c:identifier="regress_test_floating_new">
256         <return-value transfer-ownership="none">
257           <doc xml:whitespace="preserve">A new floating #RegressTestFloating</doc>
258           <type name="TestFloating" c:type="RegressTestFloating*"/>
259         </return-value>
260       </constructor>
261       <field name="parent_instance">
262         <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
263       </field>
264     </class>
265     <record name="TestFloatingClass"
266             c:type="RegressTestFloatingClass"
267             glib:is-gtype-struct-for="TestFloating">
268       <field name="parent_class">
269         <type name="GObject.InitiallyUnownedClass"
270               c:type="GInitiallyUnownedClass"/>
271       </field>
272     </record>
273     <class name="TestFundamentalObject"
274            c:symbol-prefix="test_fundamental_object"
275            c:type="RegressTestFundamentalObject"
276            abstract="1"
277            glib:type-name="RegressTestFundamentalObject"
278            glib:get-type="regress_test_fundamental_object_get_type"
279            glib:type-struct="TestFundamentalObjectClass"
280            glib:fundamental="1"
281            glib:ref-func="regress_test_fundamental_object_ref"
282            glib:unref-func="regress_test_fundamental_object_unref"
283            glib:set-value-func="regress_test_value_set_fundamental_object"
284            glib:get-value-func="regress_test_value_get_fundamental_object">
285       <method name="ref" c:identifier="regress_test_fundamental_object_ref">
286         <return-value transfer-ownership="full">
287           <doc xml:whitespace="preserve">A new #RegressTestFundamentalObject</doc>
288           <type name="TestFundamentalObject"
289                 c:type="RegressTestFundamentalObject*"/>
290         </return-value>
291       </method>
292       <method name="unref"
293               c:identifier="regress_test_fundamental_object_unref">
294         <return-value transfer-ownership="none">
295           <type name="none" c:type="void"/>
296         </return-value>
297       </method>
298       <field name="instance">
299         <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
300       </field>
301       <field name="refcount">
302         <type name="gint" c:type="gint"/>
303       </field>
304       <field name="flags">
305         <type name="guint" c:type="guint"/>
306       </field>
307     </class>
308     <record name="TestFundamentalObjectClass"
309             c:type="RegressTestFundamentalObjectClass"
310             glib:is-gtype-struct-for="TestFundamentalObject">
311       <field name="type_class">
312         <type name="GObject.TypeClass" c:type="GTypeClass"/>
313       </field>
314       <field name="copy">
315         <type name="TestFundamentalObjectCopyFunction"
316               c:type="RegressTestFundamentalObjectCopyFunction"/>
317       </field>
318       <field name="finalize">
319         <type name="TestFundamentalObjectFinalizeFunction"
320               c:type="RegressTestFundamentalObjectFinalizeFunction"/>
321       </field>
322     </record>
323     <callback name="TestFundamentalObjectCopyFunction"
324               c:type="RegressTestFundamentalObjectCopyFunction">
325       <return-value transfer-ownership="full">
326         <type name="TestFundamentalObject"
327               c:type="RegressTestFundamentalObject*"/>
328       </return-value>
329       <parameters>
330         <parameter name="obj" transfer-ownership="none">
331           <type name="TestFundamentalObject"
332                 c:type="RegressTestFundamentalObject*"/>
333         </parameter>
334       </parameters>
335     </callback>
336     <callback name="TestFundamentalObjectFinalizeFunction"
337               c:type="RegressTestFundamentalObjectFinalizeFunction">
338       <return-value transfer-ownership="none">
339         <type name="none" c:type="void"/>
340       </return-value>
341       <parameters>
342         <parameter name="obj" transfer-ownership="none">
343           <type name="TestFundamentalObject"
344                 c:type="RegressTestFundamentalObject*"/>
345         </parameter>
346       </parameters>
347     </callback>
348     <class name="TestFundamentalSubObject"
349            c:symbol-prefix="test_fundamental_sub_object"
350            c:type="RegressTestFundamentalSubObject"
351            parent="TestFundamentalObject"
352            glib:type-name="RegressTestFundamentalSubObject"
353            glib:get-type="regress_test_fundamental_sub_object_get_type"
354            glib:type-struct="TestFundamentalSubObjectClass"
355            glib:fundamental="1">
356       <constructor name="new"
357                    c:identifier="regress_test_fundamental_sub_object_new">
358         <return-value transfer-ownership="full">
359           <type name="TestFundamentalSubObject"
360                 c:type="RegressTestFundamentalSubObject*"/>
361         </return-value>
362         <parameters>
363           <parameter name="data" transfer-ownership="none">
364             <type name="utf8" c:type="char*"/>
365           </parameter>
366         </parameters>
367       </constructor>
368       <field name="fundamental_object">
369         <type name="TestFundamentalObject"
370               c:type="RegressTestFundamentalObject"/>
371       </field>
372       <field name="data">
373         <type name="utf8" c:type="char*"/>
374       </field>
375     </class>
376     <record name="TestFundamentalSubObjectClass"
377             c:type="RegressTestFundamentalSubObjectClass"
378             glib:is-gtype-struct-for="TestFundamentalSubObject">
379       <field name="fundamental_object_class">
380         <type name="TestFundamentalObjectClass"
381               c:type="RegressTestFundamentalObjectClass"/>
382       </field>
383     </record>
384     <interface name="TestInterface"
385                c:symbol-prefix="test_interface"
386                c:type="RegressTestInterface"
387                glib:type-name="RegressTestInterface"
388                glib:get-type="regress_test_interface_get_type"
389                glib:type-struct="TestInterfaceIface">
390     </interface>
391     <record name="TestInterfaceIface"
392             c:type="RegressTestInterfaceIface"
393             glib:is-gtype-struct-for="TestInterface">
394       <field name="base_iface">
395         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
396       </field>
397     </record>
398     <class name="TestObj"
399            c:symbol-prefix="test_obj"
400            c:type="RegressTestObj"
401            parent="GObject.Object"
402            glib:type-name="RegressTestObj"
403            glib:get-type="regress_test_obj_get_type"
404            glib:type-struct="TestObjClass">
405       <constructor name="constructor" c:identifier="regress_constructor">
406         <return-value transfer-ownership="full">
407           <type name="TestObj" c:type="RegressTestObj*"/>
408         </return-value>
409       </constructor>
410       <constructor name="new" c:identifier="regress_test_obj_new">
411         <return-value transfer-ownership="full">
412           <type name="TestObj" c:type="RegressTestObj*"/>
413         </return-value>
414         <parameters>
415           <parameter name="obj" transfer-ownership="none">
416             <doc xml:whitespace="preserve">A #RegressTestObj</doc>
417             <type name="TestObj" c:type="RegressTestObj*"/>
418           </parameter>
419         </parameters>
420       </constructor>
421       <constructor name="new_callback"
422                    c:identifier="regress_test_obj_new_callback">
423         <return-value transfer-ownership="full">
424           <type name="TestObj" c:type="RegressTestObj*"/>
425         </return-value>
426         <parameters>
427           <parameter name="callback"
428                      transfer-ownership="none"
429                      scope="notified"
430                      closure="1"
431                      destroy="2">
432             <type name="TestCallbackUserData"
433                   c:type="RegressTestCallbackUserData"/>
434           </parameter>
435           <parameter name="user_data" transfer-ownership="none">
436             <type name="gpointer" c:type="gpointer"/>
437           </parameter>
438           <parameter name="notify" transfer-ownership="none" scope="async">
439             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
440           </parameter>
441         </parameters>
442       </constructor>
443       <constructor name="new_from_file"
444                    c:identifier="regress_test_obj_new_from_file"
445                    throws="1">
446         <return-value transfer-ownership="full">
447           <type name="TestObj" c:type="RegressTestObj*"/>
448         </return-value>
449         <parameters>
450           <parameter name="x" transfer-ownership="none">
451             <type name="utf8" c:type="char*"/>
452           </parameter>
453         </parameters>
454       </constructor>
455       <function name="null_out" c:identifier="regress_test_obj_null_out">
456         <return-value transfer-ownership="none">
457           <type name="none" c:type="void"/>
458         </return-value>
459         <parameters>
460           <parameter name="obj"
461                      direction="out"
462                      caller-allocates="0"
463                      transfer-ownership="full"
464                      allow-none="1">
465             <doc xml:whitespace="preserve">A #RegressTestObj</doc>
466             <type name="TestObj" c:type="RegressTestObj**"/>
467           </parameter>
468         </parameters>
469       </function>
470       <function name="static_method"
471                 c:identifier="regress_test_obj_static_method">
472         <return-value transfer-ownership="none">
473           <type name="gdouble" c:type="double"/>
474         </return-value>
475         <parameters>
476           <parameter name="x" transfer-ownership="none">
477             <type name="gint" c:type="int"/>
478           </parameter>
479         </parameters>
480       </function>
481       <function name="static_method_callback"
482                 c:identifier="regress_test_obj_static_method_callback">
483         <return-value transfer-ownership="none">
484           <type name="none" c:type="void"/>
485         </return-value>
486         <parameters>
487           <parameter name="callback"
488                      transfer-ownership="none"
489                      allow-none="1"
490                      scope="call">
491             <type name="TestCallback" c:type="RegressTestCallback"/>
492           </parameter>
493         </parameters>
494       </function>
495       <virtual-method name="matrix" invoker="do_matrix">
496         <doc xml:whitespace="preserve">This method is virtual.  Notably its name differs from the virtual
497 slot name, which makes it useful for testing bindings handle this
498 case.</doc>
499         <return-value transfer-ownership="none">
500           <type name="gint" c:type="int"/>
501         </return-value>
502         <parameters>
503           <parameter name="somestr" transfer-ownership="none">
504             <doc xml:whitespace="preserve">Meaningless string</doc>
505             <type name="utf8" c:type="char*"/>
506           </parameter>
507         </parameters>
508       </virtual-method>
509       <method name="do_matrix" c:identifier="regress_test_obj_do_matrix">
510         <doc xml:whitespace="preserve">This method is virtual.  Notably its name differs from the virtual
511 slot name, which makes it useful for testing bindings handle this
512 case.</doc>
513         <return-value transfer-ownership="none">
514           <type name="gint" c:type="int"/>
515         </return-value>
516         <parameters>
517           <parameter name="somestr" transfer-ownership="none">
518             <doc xml:whitespace="preserve">Meaningless string</doc>
519             <type name="utf8" c:type="char*"/>
520           </parameter>
521         </parameters>
522       </method>
523       <method name="emit_sig_with_obj"
524               c:identifier="regress_test_obj_emit_sig_with_obj">
525         <return-value transfer-ownership="none">
526           <type name="none" c:type="void"/>
527         </return-value>
528       </method>
529       <method name="forced_method" c:identifier="regress_forced_method">
530         <return-value transfer-ownership="none">
531           <type name="none" c:type="void"/>
532         </return-value>
533       </method>
534       <method name="instance_method"
535               c:identifier="regress_test_obj_instance_method">
536         <return-value transfer-ownership="none">
537           <type name="gint" c:type="int"/>
538         </return-value>
539       </method>
540       <method name="instance_method_callback"
541               c:identifier="regress_test_obj_instance_method_callback">
542         <return-value transfer-ownership="none">
543           <type name="none" c:type="void"/>
544         </return-value>
545         <parameters>
546           <parameter name="callback"
547                      transfer-ownership="none"
548                      allow-none="1"
549                      scope="call">
550             <type name="TestCallback" c:type="RegressTestCallback"/>
551           </parameter>
552         </parameters>
553       </method>
554       <method name="set_bare" c:identifier="regress_test_obj_set_bare">
555         <return-value transfer-ownership="none">
556           <type name="none" c:type="void"/>
557         </return-value>
558         <parameters>
559           <parameter name="bare" transfer-ownership="none" allow-none="1">
560             <type name="GObject.Object" c:type="GObject*"/>
561           </parameter>
562         </parameters>
563       </method>
564       <method name="skip_inout_param"
565               c:identifier="regress_test_obj_skip_inout_param"
566               throws="1">
567         <doc xml:whitespace="preserve">Check that the out value is skipped</doc>
568         <return-value transfer-ownership="none">
569           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
570           <type name="gboolean" c:type="gboolean"/>
571         </return-value>
572         <parameters>
573           <parameter name="a" transfer-ownership="none">
574             <doc xml:whitespace="preserve">Parameter.</doc>
575             <type name="gint" c:type="gint"/>
576           </parameter>
577           <parameter name="out_b"
578                      direction="out"
579                      caller-allocates="0"
580                      transfer-ownership="full">
581             <doc xml:whitespace="preserve">Return value.</doc>
582             <type name="gint" c:type="gint*"/>
583           </parameter>
584           <parameter name="c" transfer-ownership="none">
585             <doc xml:whitespace="preserve">Other parameter.</doc>
586             <type name="gdouble" c:type="gdouble"/>
587           </parameter>
588           <parameter name="inout_d"
589                      direction="inout"
590                      caller-allocates="0"
591                      transfer-ownership="full"
592                      skip="1">
593             <doc xml:whitespace="preserve">Will be incremented.</doc>
594             <type name="gint" c:type="gint*"/>
595           </parameter>
596           <parameter name="out_sum"
597                      direction="out"
598                      caller-allocates="0"
599                      transfer-ownership="full">
600             <doc xml:whitespace="preserve">Return value.</doc>
601             <type name="gint" c:type="gint*"/>
602           </parameter>
603           <parameter name="num1" transfer-ownership="none">
604             <doc xml:whitespace="preserve">Number.</doc>
605             <type name="gint" c:type="gint"/>
606           </parameter>
607           <parameter name="num2" transfer-ownership="none">
608             <doc xml:whitespace="preserve">Number.</doc>
609             <type name="gint" c:type="gint"/>
610           </parameter>
611         </parameters>
612       </method>
613       <method name="skip_out_param"
614               c:identifier="regress_test_obj_skip_out_param"
615               throws="1">
616         <doc xml:whitespace="preserve">Check that the out value is skipped</doc>
617         <return-value transfer-ownership="none">
618           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
619           <type name="gboolean" c:type="gboolean"/>
620         </return-value>
621         <parameters>
622           <parameter name="a" transfer-ownership="none">
623             <doc xml:whitespace="preserve">Parameter.</doc>
624             <type name="gint" c:type="gint"/>
625           </parameter>
626           <parameter name="out_b"
627                      direction="out"
628                      caller-allocates="0"
629                      transfer-ownership="full"
630                      skip="1">
631             <doc xml:whitespace="preserve">Return value.</doc>
632             <type name="gint" c:type="gint*"/>
633           </parameter>
634           <parameter name="c" transfer-ownership="none">
635             <doc xml:whitespace="preserve">Other parameter.</doc>
636             <type name="gdouble" c:type="gdouble"/>
637           </parameter>
638           <parameter name="inout_d"
639                      direction="inout"
640                      caller-allocates="0"
641                      transfer-ownership="full">
642             <doc xml:whitespace="preserve">Will be incremented.</doc>
643             <type name="gint" c:type="gint*"/>
644           </parameter>
645           <parameter name="out_sum"
646                      direction="out"
647                      caller-allocates="0"
648                      transfer-ownership="full">
649             <doc xml:whitespace="preserve">Return value.</doc>
650             <type name="gint" c:type="gint*"/>
651           </parameter>
652           <parameter name="num1" transfer-ownership="none">
653             <doc xml:whitespace="preserve">Number.</doc>
654             <type name="gint" c:type="gint"/>
655           </parameter>
656           <parameter name="num2" transfer-ownership="none">
657             <doc xml:whitespace="preserve">Number.</doc>
658             <type name="gint" c:type="gint"/>
659           </parameter>
660         </parameters>
661       </method>
662       <method name="skip_param"
663               c:identifier="regress_test_obj_skip_param"
664               throws="1">
665         <doc xml:whitespace="preserve">Check that a parameter is skipped</doc>
666         <return-value transfer-ownership="none">
667           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
668           <type name="gboolean" c:type="gboolean"/>
669         </return-value>
670         <parameters>
671           <parameter name="a" transfer-ownership="none">
672             <doc xml:whitespace="preserve">Parameter.</doc>
673             <type name="gint" c:type="gint"/>
674           </parameter>
675           <parameter name="out_b"
676                      direction="out"
677                      caller-allocates="0"
678                      transfer-ownership="full">
679             <doc xml:whitespace="preserve">Return value.</doc>
680             <type name="gint" c:type="gint*"/>
681           </parameter>
682           <parameter name="c" transfer-ownership="none" skip="1">
683             <doc xml:whitespace="preserve">Other parameter.</doc>
684             <type name="gdouble" c:type="gdouble"/>
685           </parameter>
686           <parameter name="inout_d"
687                      direction="inout"
688                      caller-allocates="0"
689                      transfer-ownership="full">
690             <doc xml:whitespace="preserve">Will be incremented.</doc>
691             <type name="gint" c:type="gint*"/>
692           </parameter>
693           <parameter name="out_sum"
694                      direction="out"
695                      caller-allocates="0"
696                      transfer-ownership="full">
697             <doc xml:whitespace="preserve">Return value.</doc>
698             <type name="gint" c:type="gint*"/>
699           </parameter>
700           <parameter name="num1" transfer-ownership="none">
701             <doc xml:whitespace="preserve">Number.</doc>
702             <type name="gint" c:type="gint"/>
703           </parameter>
704           <parameter name="num2" transfer-ownership="none">
705             <doc xml:whitespace="preserve">Number.</doc>
706             <type name="gint" c:type="gint"/>
707           </parameter>
708         </parameters>
709       </method>
710       <method name="skip_return_val"
711               c:identifier="regress_test_obj_skip_return_val"
712               throws="1">
713         <doc xml:whitespace="preserve">Check that the return value is skipped</doc>
714         <return-value transfer-ownership="none" skip="1">
715           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
716           <type name="gboolean" c:type="gboolean"/>
717         </return-value>
718         <parameters>
719           <parameter name="a" transfer-ownership="none">
720             <doc xml:whitespace="preserve">Parameter.</doc>
721             <type name="gint" c:type="gint"/>
722           </parameter>
723           <parameter name="out_b"
724                      direction="out"
725                      caller-allocates="0"
726                      transfer-ownership="full">
727             <doc xml:whitespace="preserve">A return value.</doc>
728             <type name="gint" c:type="gint*"/>
729           </parameter>
730           <parameter name="c" transfer-ownership="none">
731             <doc xml:whitespace="preserve">Other parameter.</doc>
732             <type name="gdouble" c:type="gdouble"/>
733           </parameter>
734           <parameter name="inout_d"
735                      direction="inout"
736                      caller-allocates="0"
737                      transfer-ownership="full">
738             <doc xml:whitespace="preserve">Will be incremented.</doc>
739             <type name="gint" c:type="gint*"/>
740           </parameter>
741           <parameter name="out_sum"
742                      direction="out"
743                      caller-allocates="0"
744                      transfer-ownership="full">
745             <doc xml:whitespace="preserve">Return value.</doc>
746             <type name="gint" c:type="gint*"/>
747           </parameter>
748           <parameter name="num1" transfer-ownership="none">
749             <doc xml:whitespace="preserve">Number.</doc>
750             <type name="gint" c:type="gint"/>
751           </parameter>
752           <parameter name="num2" transfer-ownership="none">
753             <doc xml:whitespace="preserve">Number.</doc>
754             <type name="gint" c:type="gint"/>
755           </parameter>
756         </parameters>
757       </method>
758       <method name="skip_return_val_no_out"
759               c:identifier="regress_test_obj_skip_return_val_no_out"
760               throws="1">
761         <doc xml:whitespace="preserve">Check that the return value is skipped. Succeed if a is nonzero, otherwise
762 raise an error.</doc>
763         <return-value transfer-ownership="none" skip="1">
764           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
765           <type name="gboolean" c:type="gboolean"/>
766         </return-value>
767         <parameters>
768           <parameter name="a" transfer-ownership="none">
769             <doc xml:whitespace="preserve">Parameter.</doc>
770             <type name="gint" c:type="gint"/>
771           </parameter>
772         </parameters>
773       </method>
774       <method name="torture_signature_0"
775               c:identifier="regress_test_obj_torture_signature_0">
776         <return-value transfer-ownership="none">
777           <type name="none" c:type="void"/>
778         </return-value>
779         <parameters>
780           <parameter name="x" transfer-ownership="none">
781             <type name="gint" c:type="int"/>
782           </parameter>
783           <parameter name="y"
784                      direction="out"
785                      caller-allocates="0"
786                      transfer-ownership="full">
787             <type name="gdouble" c:type="double*"/>
788           </parameter>
789           <parameter name="z"
790                      direction="out"
791                      caller-allocates="0"
792                      transfer-ownership="full">
793             <type name="gint" c:type="int*"/>
794           </parameter>
795           <parameter name="foo" transfer-ownership="none">
796             <type name="utf8" c:type="char*"/>
797           </parameter>
798           <parameter name="q"
799                      direction="out"
800                      caller-allocates="0"
801                      transfer-ownership="full">
802             <type name="gint" c:type="int*"/>
803           </parameter>
804           <parameter name="m" transfer-ownership="none">
805             <type name="guint" c:type="guint"/>
806           </parameter>
807         </parameters>
808       </method>
809       <method name="torture_signature_1"
810               c:identifier="regress_test_obj_torture_signature_1"
811               throws="1">
812         <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
813         <return-value transfer-ownership="none">
814           <type name="gboolean" c:type="gboolean"/>
815         </return-value>
816         <parameters>
817           <parameter name="x" transfer-ownership="none">
818             <type name="gint" c:type="int"/>
819           </parameter>
820           <parameter name="y"
821                      direction="out"
822                      caller-allocates="0"
823                      transfer-ownership="full">
824             <type name="gdouble" c:type="double*"/>
825           </parameter>
826           <parameter name="z"
827                      direction="out"
828                      caller-allocates="0"
829                      transfer-ownership="full">
830             <type name="gint" c:type="int*"/>
831           </parameter>
832           <parameter name="foo" transfer-ownership="none">
833             <type name="utf8" c:type="char*"/>
834           </parameter>
835           <parameter name="q"
836                      direction="out"
837                      caller-allocates="0"
838                      transfer-ownership="full">
839             <type name="gint" c:type="int*"/>
840           </parameter>
841           <parameter name="m" transfer-ownership="none">
842             <type name="guint" c:type="guint"/>
843           </parameter>
844         </parameters>
845       </method>
846       <property name="bare" writable="1" transfer-ownership="none">
847         <type name="GObject.Object"/>
848       </property>
849       <property name="boxed" writable="1" transfer-ownership="none">
850         <type name="TestBoxed"/>
851       </property>
852       <property name="double" writable="1" transfer-ownership="none">
853         <type name="gdouble"/>
854       </property>
855       <property name="float" writable="1" transfer-ownership="none">
856         <type name="gfloat"/>
857       </property>
858       <property name="hash-table" writable="1" transfer-ownership="container">
859         <type name="GLib.HashTable">
860           <type name="utf8"/>
861           <type name="gint8"/>
862         </type>
863       </property>
864       <property name="hash-table-old"
865                 writable="1"
866                 transfer-ownership="container">
867         <type name="GLib.HashTable">
868           <type name="utf8"/>
869           <type name="gint8"/>
870         </type>
871       </property>
872       <property name="int" writable="1" transfer-ownership="none">
873         <type name="gint"/>
874       </property>
875       <property name="list" writable="1" transfer-ownership="none">
876         <type name="GLib.List">
877           <type name="utf8"/>
878         </type>
879       </property>
880       <property name="list-old" writable="1" transfer-ownership="none">
881         <type name="GLib.List">
882           <type name="utf8"/>
883         </type>
884       </property>
885       <property name="string" writable="1" transfer-ownership="none">
886         <type name="utf8"/>
887       </property>
888       <field name="parent_instance">
889         <type name="GObject.Object" c:type="GObject"/>
890       </field>
891       <field name="bare">
892         <type name="GObject.Object" c:type="GObject*"/>
893       </field>
894       <field name="boxed">
895         <type name="TestBoxed" c:type="RegressTestBoxed*"/>
896       </field>
897       <field name="hash_table">
898         <type name="GLib.HashTable" c:type="GHashTable*">
899           <type name="gpointer" c:type="gpointer"/>
900           <type name="gpointer" c:type="gpointer"/>
901         </type>
902       </field>
903       <field name="list">
904         <type name="GLib.List" c:type="GList*">
905           <type name="gpointer" c:type="gpointer"/>
906         </type>
907       </field>
908       <field name="some_int8">
909         <type name="gint8" c:type="gint8"/>
910       </field>
911       <field name="some_float">
912         <type name="gfloat" c:type="float"/>
913       </field>
914       <field name="some_double">
915         <type name="gdouble" c:type="double"/>
916       </field>
917       <field name="string">
918         <type name="utf8" c:type="char*"/>
919       </field>
920       <glib:signal name="all"
921                    when="first"
922                    no-recurse="1"
923                    detailed="1"
924                    action="1"
925                    no-hooks="1">
926         <return-value transfer-ownership="none">
927           <type name="none"/>
928         </return-value>
929       </glib:signal>
930       <glib:signal name="cleanup" when="cleanup">
931         <return-value transfer-ownership="none">
932           <type name="none"/>
933         </return-value>
934       </glib:signal>
935       <glib:signal name="first" when="first">
936         <return-value transfer-ownership="none">
937           <type name="none"/>
938         </return-value>
939       </glib:signal>
940       <glib:signal name="sig-with-array-prop" when="last">
941         <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
942 TpChannel:: group-members-changed-detailed:</doc>
943         <return-value transfer-ownership="none">
944           <type name="none"/>
945         </return-value>
946         <parameters>
947           <parameter name="arr" transfer-ownership="none">
948             <doc xml:whitespace="preserve">numbers</doc>
949             <array name="GLib.Array">
950               <type name="guint"/>
951             </array>
952           </parameter>
953         </parameters>
954       </glib:signal>
955       <glib:signal name="sig-with-hash-prop" when="last">
956         <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
957 TpAccount::status-changed</doc>
958         <return-value transfer-ownership="none">
959           <type name="none"/>
960         </return-value>
961         <parameters>
962           <parameter name="hash" transfer-ownership="none">
963             <type name="GLib.HashTable">
964               <type name="utf8"/>
965               <type name="GObject.Value"/>
966             </type>
967           </parameter>
968         </parameters>
969       </glib:signal>
970       <glib:signal name="sig-with-obj" when="last">
971         <doc xml:whitespace="preserve">Test transfer none GObject as a param (tests refcounting).
972 Use with regress_test_obj_emit_sig_with_obj</doc>
973         <return-value transfer-ownership="none">
974           <type name="none"/>
975         </return-value>
976         <parameters>
977           <parameter name="obj" transfer-ownership="none">
978             <doc xml:whitespace="preserve">A newly created RegressTestObj</doc>
979             <type name="GObject.Object"/>
980           </parameter>
981         </parameters>
982       </glib:signal>
983       <glib:signal name="sig-with-strv" when="last">
984         <doc xml:whitespace="preserve">Test GStrv as a param.</doc>
985         <return-value transfer-ownership="none">
986           <type name="none"/>
987         </return-value>
988         <parameters>
989           <parameter name="strs" transfer-ownership="none">
990             <doc xml:whitespace="preserve">strings</doc>
991             <array>
992               <type name="utf8"/>
993             </array>
994           </parameter>
995         </parameters>
996       </glib:signal>
997       <glib:signal name="test" when="last" no-recurse="1" no-hooks="1">
998         <return-value transfer-ownership="none">
999           <type name="none"/>
1000         </return-value>
1001       </glib:signal>
1002       <glib:signal name="test-with-static-scope-arg"
1003                    when="last"
1004                    no-recurse="1"
1005                    no-hooks="1">
1006         <return-value transfer-ownership="none">
1007           <type name="none"/>
1008         </return-value>
1009         <parameters>
1010           <parameter name="object" transfer-ownership="none">
1011             <type name="TestSimpleBoxedA"/>
1012           </parameter>
1013         </parameters>
1014       </glib:signal>
1015     </class>
1016     <record name="TestObjClass"
1017             c:type="RegressTestObjClass"
1018             glib:is-gtype-struct-for="TestObj">
1019       <field name="parent_class">
1020         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1021       </field>
1022       <field name="matrix">
1023         <callback name="matrix">
1024           <return-value transfer-ownership="none">
1025             <type name="gint" c:type="int"/>
1026           </return-value>
1027           <parameters>
1028             <parameter name="obj" transfer-ownership="none">
1029               <type name="TestObj" c:type="RegressTestObj*"/>
1030             </parameter>
1031             <parameter name="somestr" transfer-ownership="none">
1032               <doc xml:whitespace="preserve">Meaningless string</doc>
1033               <type name="utf8" c:type="char*"/>
1034             </parameter>
1035           </parameters>
1036         </callback>
1037       </field>
1038       <field name="test_signal">
1039         <type name="guint" c:type="guint"/>
1040       </field>
1041       <field name="test_signal_with_static_scope_arg">
1042         <type name="guint" c:type="guint"/>
1043       </field>
1044       <field name="_regress_reserved1" introspectable="0">
1045         <callback name="_regress_reserved1">
1046           <return-value transfer-ownership="none">
1047             <type name="none" c:type="void"/>
1048           </return-value>
1049         </callback>
1050       </field>
1051       <field name="_regress_reserved2" introspectable="0">
1052         <callback name="_regress_reserved2">
1053           <return-value transfer-ownership="none">
1054             <type name="none" c:type="void"/>
1055           </return-value>
1056         </callback>
1057       </field>
1058     </record>
1059     <bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
1060       <member name="public_enum_before"
1061               value="1"
1062               c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE"/>
1063       <member name="public_enum_after"
1064               value="4"
1065               c:identifier="REGRESS_TEST_PUBLIC_ENUM_AFTER"/>
1066     </bitfield>
1067     <record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
1068       <field name="this_is_public_before" writable="1">
1069         <type name="gint" c:type="gint"/>
1070       </field>
1071       <field name="this_is_private" readable="0" private="1">
1072         <type name="gint" c:type="gint"/>
1073       </field>
1074       <field name="this_is_public_after" writable="1">
1075         <type name="gint" c:type="gint"/>
1076       </field>
1077     </record>
1078     <record name="TestSimpleBoxedA"
1079             c:type="RegressTestSimpleBoxedA"
1080             glib:type-name="RegressTestSimpleBoxedA"
1081             glib:get-type="regress_test_simple_boxed_a_get_gtype"
1082             c:symbol-prefix="test_simple_boxed_a">
1083       <field name="some_int" writable="1">
1084         <type name="gint" c:type="gint"/>
1085       </field>
1086       <field name="some_int8" writable="1">
1087         <type name="gint8" c:type="gint8"/>
1088       </field>
1089       <field name="some_double" writable="1">
1090         <type name="gdouble" c:type="gdouble"/>
1091       </field>
1092       <field name="some_enum" writable="1">
1093         <type name="TestEnum" c:type="RegressTestEnum"/>
1094       </field>
1095       <method name="copy" c:identifier="regress_test_simple_boxed_a_copy">
1096         <return-value transfer-ownership="full">
1097           <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
1098         </return-value>
1099       </method>
1100       <method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
1101         <return-value transfer-ownership="none">
1102           <type name="gboolean" c:type="gboolean"/>
1103         </return-value>
1104         <parameters>
1105           <parameter name="other_a" transfer-ownership="none">
1106             <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
1107           </parameter>
1108         </parameters>
1109       </method>
1110       <function name="const_return"
1111                 c:identifier="regress_test_simple_boxed_a_const_return">
1112         <return-value transfer-ownership="none">
1113           <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
1114         </return-value>
1115       </function>
1116     </record>
1117     <record name="TestSimpleBoxedB"
1118             c:type="RegressTestSimpleBoxedB"
1119             glib:type-name="RegressTestSimpleBoxedB"
1120             glib:get-type="regress_test_simple_boxed_b_get_type"
1121             c:symbol-prefix="test_simple_boxed_b">
1122       <field name="some_int8" writable="1">
1123         <type name="gint8" c:type="gint8"/>
1124       </field>
1125       <field name="nested_a" writable="1">
1126         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
1127       </field>
1128       <method name="copy" c:identifier="regress_test_simple_boxed_b_copy">
1129         <return-value transfer-ownership="full">
1130           <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
1131         </return-value>
1132       </method>
1133     </record>
1134     <callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
1135       <return-value transfer-ownership="none">
1136         <type name="none" c:type="void"/>
1137       </return-value>
1138     </callback>
1139     <record name="TestStructA" c:type="RegressTestStructA">
1140       <field name="some_int" writable="1">
1141         <type name="gint" c:type="gint"/>
1142       </field>
1143       <field name="some_int8" writable="1">
1144         <type name="gint8" c:type="gint8"/>
1145       </field>
1146       <field name="some_double" writable="1">
1147         <type name="gdouble" c:type="gdouble"/>
1148       </field>
1149       <field name="some_enum" writable="1">
1150         <type name="TestEnum" c:type="RegressTestEnum"/>
1151       </field>
1152       <method name="clone" c:identifier="regress_test_struct_a_clone">
1153         <doc xml:whitespace="preserve">Make a copy of a RegressTestStructA</doc>
1154         <return-value transfer-ownership="none">
1155           <type name="none" c:type="void"/>
1156         </return-value>
1157         <parameters>
1158           <parameter name="a_out"
1159                      direction="out"
1160                      caller-allocates="1"
1161                      transfer-ownership="none">
1162             <doc xml:whitespace="preserve">the cloned structure</doc>
1163             <type name="TestStructA" c:type="RegressTestStructA*"/>
1164           </parameter>
1165         </parameters>
1166       </method>
1167     </record>
1168     <record name="TestStructB" c:type="RegressTestStructB">
1169       <field name="some_int8" writable="1">
1170         <type name="gint8" c:type="gint8"/>
1171       </field>
1172       <field name="nested_a" writable="1">
1173         <type name="TestStructA" c:type="RegressTestStructA"/>
1174       </field>
1175       <method name="clone" c:identifier="regress_test_struct_b_clone">
1176         <doc xml:whitespace="preserve">Make a copy of a RegressTestStructB</doc>
1177         <return-value transfer-ownership="none">
1178           <type name="none" c:type="void"/>
1179         </return-value>
1180         <parameters>
1181           <parameter name="b_out"
1182                      direction="out"
1183                      caller-allocates="1"
1184                      transfer-ownership="none">
1185             <doc xml:whitespace="preserve">the cloned structure</doc>
1186             <type name="TestStructB" c:type="RegressTestStructB*"/>
1187           </parameter>
1188         </parameters>
1189       </method>
1190     </record>
1191     <record name="TestStructC" c:type="RegressTestStructC">
1192       <field name="another_int" writable="1">
1193         <type name="gint" c:type="gint"/>
1194       </field>
1195       <field name="obj" writable="1">
1196         <type name="GObject.Object" c:type="GObject*"/>
1197       </field>
1198     </record>
1199     <record name="TestStructD" c:type="RegressTestStructD">
1200       <field name="array1" writable="1">
1201         <array c:type="RegressTestStructA**">
1202           <type name="TestStructA" c:type="RegressTestStructA*"/>
1203         </array>
1204       </field>
1205       <field name="array2" writable="1">
1206         <array c:type="gpointer*">
1207           <type name="TestObj"/>
1208         </array>
1209       </field>
1210       <field name="field" writable="1">
1211         <type name="TestObj"/>
1212       </field>
1213       <field name="list" writable="1">
1214         <type name="GLib.List" c:type="GList*">
1215           <type name="TestObj"/>
1216         </type>
1217       </field>
1218       <field name="garray" writable="1">
1219         <array name="GLib.PtrArray" c:type="GPtrArray*">
1220           <type name="TestObj"/>
1221         </array>
1222       </field>
1223     </record>
1224     <record name="TestStructE" c:type="RegressTestStructE">
1225       <field name="some_type" writable="1">
1226         <type name="GType" c:type="GType"/>
1227       </field>
1228       <field name="some_union" writable="1">
1229         <array zero-terminated="0" fixed-size="2">
1230           <type name="TestStructE__some_union__union"/>
1231         </array>
1232       </field>
1233     </record>
1234     <union name="TestStructE__some_union__union">
1235       <field name="v_int" writable="1">
1236         <type name="gint" c:type="gint"/>
1237       </field>
1238       <field name="v_uint" writable="1">
1239         <type name="guint" c:type="guint"/>
1240       </field>
1241       <field name="v_long" writable="1">
1242         <type name="glong" c:type="glong"/>
1243       </field>
1244       <field name="v_ulong" writable="1">
1245         <type name="gulong" c:type="gulong"/>
1246       </field>
1247       <field name="v_int64" writable="1">
1248         <type name="gint64" c:type="gint64"/>
1249       </field>
1250       <field name="v_uint64" writable="1">
1251         <type name="guint64" c:type="guint64"/>
1252       </field>
1253       <field name="v_float" writable="1">
1254         <type name="gfloat" c:type="gfloat"/>
1255       </field>
1256       <field name="v_double" writable="1">
1257         <type name="gdouble" c:type="gdouble"/>
1258       </field>
1259       <field name="v_pointer" writable="1">
1260         <type name="gpointer" c:type="gpointer"/>
1261       </field>
1262     </union>
1263     <record name="TestStructFixedArray" c:type="RegressTestStructFixedArray">
1264       <field name="just_int" writable="1">
1265         <type name="gint" c:type="gint"/>
1266       </field>
1267       <field name="array" writable="1">
1268         <array zero-terminated="0" c:type="gint" fixed-size="10">
1269           <type name="gint" c:type="gint"/>
1270         </array>
1271       </field>
1272       <method name="frob" c:identifier="regress_test_struct_fixed_array_frob">
1273         <return-value transfer-ownership="none">
1274           <type name="none" c:type="void"/>
1275         </return-value>
1276       </method>
1277     </record>
1278     <class name="TestSubObj"
1279            c:symbol-prefix="test_sub_obj"
1280            c:type="RegressTestSubObj"
1281            parent="TestObj"
1282            glib:type-name="RegressTestSubObj"
1283            glib:get-type="regress_test_sub_obj_get_type"
1284            glib:type-struct="TestSubObjClass">
1285       <constructor name="new" c:identifier="regress_test_sub_obj_new">
1286         <return-value transfer-ownership="full">
1287           <type name="TestObj" c:type="RegressTestObj*"/>
1288         </return-value>
1289       </constructor>
1290       <method name="instance_method"
1291               c:identifier="regress_test_sub_obj_instance_method">
1292         <return-value transfer-ownership="none">
1293           <type name="gint" c:type="int"/>
1294         </return-value>
1295       </method>
1296       <method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
1297         <return-value transfer-ownership="none">
1298           <type name="none" c:type="void"/>
1299         </return-value>
1300       </method>
1301       <field name="parent_instance">
1302         <type name="TestObj" c:type="RegressTestObj"/>
1303       </field>
1304     </class>
1305     <record name="TestSubObjClass"
1306             c:type="RegressTestSubObjClass"
1307             glib:is-gtype-struct-for="TestSubObj">
1308       <field name="parent_class">
1309         <type name="TestObjClass" c:type="RegressTestObjClass"/>
1310       </field>
1311     </record>
1312     <class name="TestWi8021x"
1313            c:symbol-prefix="test_wi_802_1x"
1314            c:type="RegressTestWi8021x"
1315            parent="GObject.Object"
1316            glib:type-name="RegressTestWi8021x"
1317            glib:get-type="regress_test_wi_802_1x_get_type"
1318            glib:type-struct="TestWi8021xClass">
1319       <constructor name="new" c:identifier="regress_test_wi_802_1x_new">
1320         <return-value transfer-ownership="full">
1321           <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
1322         </return-value>
1323       </constructor>
1324       <function name="static_method"
1325                 c:identifier="regress_test_wi_802_1x_static_method">
1326         <return-value transfer-ownership="none">
1327           <type name="gint" c:type="int"/>
1328         </return-value>
1329         <parameters>
1330           <parameter name="x" transfer-ownership="none">
1331             <type name="gint" c:type="int"/>
1332           </parameter>
1333         </parameters>
1334       </function>
1335       <method name="get_testbool"
1336               c:identifier="regress_test_wi_802_1x_get_testbool">
1337         <return-value transfer-ownership="none">
1338           <type name="gboolean" c:type="gboolean"/>
1339         </return-value>
1340       </method>
1341       <method name="set_testbool"
1342               c:identifier="regress_test_wi_802_1x_set_testbool">
1343         <return-value transfer-ownership="none">
1344           <type name="none" c:type="void"/>
1345         </return-value>
1346         <parameters>
1347           <parameter name="v" transfer-ownership="none">
1348             <type name="gboolean" c:type="gboolean"/>
1349           </parameter>
1350         </parameters>
1351       </method>
1352       <property name="testbool" writable="1" transfer-ownership="none">
1353         <type name="gboolean"/>
1354       </property>
1355       <field name="parent_instance">
1356         <type name="GObject.Object" c:type="GObject"/>
1357       </field>
1358       <field name="testbool">
1359         <type name="gboolean" c:type="gboolean"/>
1360       </field>
1361     </class>
1362     <record name="TestWi8021xClass"
1363             c:type="RegressTestWi8021xClass"
1364             glib:is-gtype-struct-for="TestWi8021x">
1365       <field name="parent_class">
1366         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1367       </field>
1368     </record>
1369     <constant name="UTF8_CONSTANT"
1370               value="const â™¥ utf8"
1371               c:type="REGRESS_UTF8_CONSTANT">
1372       <type name="utf8" c:type="gchar*"/>
1373     </constant>
1374     <function name="aliased_caller_alloc"
1375               c:identifier="regress_aliased_caller_alloc">
1376       <return-value transfer-ownership="none">
1377         <type name="none" c:type="void"/>
1378       </return-value>
1379       <parameters>
1380         <parameter name="boxed"
1381                    direction="out"
1382                    caller-allocates="1"
1383                    transfer-ownership="none">
1384           <type name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed*"/>
1385         </parameter>
1386       </parameters>
1387     </function>
1388     <function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
1389       <return-value transfer-ownership="none">
1390         <type name="none" c:type="void"/>
1391       </return-value>
1392       <parameters>
1393         <parameter name="obj" transfer-ownership="none" allow-none="1">
1394           <doc xml:whitespace="preserve">A #RegressTestObj</doc>
1395           <type name="TestObj" c:type="RegressTestObj*"/>
1396         </parameter>
1397       </parameters>
1398     </function>
1399     <function name="global_get_flags_out"
1400               c:identifier="regress_global_get_flags_out">
1401       <return-value transfer-ownership="none">
1402         <type name="none" c:type="void"/>
1403       </return-value>
1404       <parameters>
1405         <parameter name="v"
1406                    direction="out"
1407                    caller-allocates="0"
1408                    transfer-ownership="full">
1409           <doc xml:whitespace="preserve">A flags value</doc>
1410           <type name="TestFlags" c:type="RegressTestFlags*"/>
1411         </parameter>
1412       </parameters>
1413     </function>
1414     <function name="introspectable_via_alias"
1415               c:identifier="regress_introspectable_via_alias">
1416       <return-value transfer-ownership="none">
1417         <type name="none" c:type="void"/>
1418       </return-value>
1419       <parameters>
1420         <parameter name="data" transfer-ownership="none">
1421           <type name="PtrArrayAlias" c:type="RegressPtrArrayAlias*"/>
1422         </parameter>
1423       </parameters>
1424     </function>
1425     <function name="not_introspectable_via_alias"
1426               c:identifier="regress_not_introspectable_via_alias"
1427               introspectable="0">
1428       <return-value transfer-ownership="none">
1429         <type name="none" c:type="void"/>
1430       </return-value>
1431       <parameters>
1432         <parameter name="ok" transfer-ownership="none">
1433           <type name="VaListAlias" c:type="RegressVaListAlias"/>
1434         </parameter>
1435       </parameters>
1436     </function>
1437     <function name="random_function_with_skipped_structure"
1438               c:identifier="regress_random_function_with_skipped_structure"
1439               introspectable="0">
1440       <return-value transfer-ownership="none">
1441         <type name="none" c:type="void"/>
1442       </return-value>
1443       <parameters>
1444         <parameter name="x" transfer-ownership="none">
1445           <type name="gint" c:type="int"/>
1446         </parameter>
1447         <parameter name="foo" transfer-ownership="none">
1448           <type name="SkippedStructure" c:type="RegressSkippedStructure*"/>
1449         </parameter>
1450         <parameter name="v" transfer-ownership="none">
1451           <type name="gdouble" c:type="double"/>
1452         </parameter>
1453       </parameters>
1454     </function>
1455     <function name="set_abort_on_error"
1456               c:identifier="regress_set_abort_on_error">
1457       <return-value transfer-ownership="none">
1458         <type name="none" c:type="void"/>
1459       </return-value>
1460       <parameters>
1461         <parameter name="abort_on_error" transfer-ownership="none">
1462           <type name="gboolean" c:type="gboolean"/>
1463         </parameter>
1464       </parameters>
1465     </function>
1466     <function name="test_array_fixed_out_objects"
1467               c:identifier="regress_test_array_fixed_out_objects">
1468       <return-value transfer-ownership="none">
1469         <type name="none" c:type="void"/>
1470       </return-value>
1471       <parameters>
1472         <parameter name="objs"
1473                    direction="out"
1474                    caller-allocates="0"
1475                    transfer-ownership="full">
1476           <doc xml:whitespace="preserve">An array of #RegressTestObj</doc>
1477           <array zero-terminated="0" c:type="RegressTestObj***" fixed-size="2">
1478             <type name="TestObj" c:type="RegressTestObj**"/>
1479           </array>
1480         </parameter>
1481       </parameters>
1482     </function>
1483     <function name="test_array_fixed_size_int_in"
1484               c:identifier="regress_test_array_fixed_size_int_in">
1485       <return-value transfer-ownership="none">
1486         <doc xml:whitespace="preserve">the sum of the items in @ints</doc>
1487         <type name="gint" c:type="int"/>
1488       </return-value>
1489       <parameters>
1490         <parameter name="ints" transfer-ownership="none">
1491           <doc xml:whitespace="preserve">a list of 5 integers</doc>
1492           <array zero-terminated="0" c:type="int*" fixed-size="5">
1493             <type name="gint" c:type="int"/>
1494           </array>
1495         </parameter>
1496       </parameters>
1497     </function>
1498     <function name="test_array_fixed_size_int_out"
1499               c:identifier="regress_test_array_fixed_size_int_out">
1500       <return-value transfer-ownership="none">
1501         <type name="none" c:type="void"/>
1502       </return-value>
1503       <parameters>
1504         <parameter name="ints"
1505                    direction="out"
1506                    caller-allocates="0"
1507                    transfer-ownership="full">
1508           <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
1509           <array zero-terminated="0" c:type="int**" fixed-size="5">
1510             <type name="gint" c:type="int*"/>
1511           </array>
1512         </parameter>
1513       </parameters>
1514     </function>
1515     <function name="test_array_fixed_size_int_return"
1516               c:identifier="regress_test_array_fixed_size_int_return">
1517       <return-value transfer-ownership="full">
1518         <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
1519         <array zero-terminated="0" c:type="int*" fixed-size="5">
1520           <type name="gint" c:type="int"/>
1521         </array>
1522       </return-value>
1523     </function>
1524     <function name="test_array_gint16_in"
1525               c:identifier="regress_test_array_gint16_in">
1526       <return-value transfer-ownership="none">
1527         <type name="gint" c:type="int"/>
1528       </return-value>
1529       <parameters>
1530         <parameter name="n_ints" transfer-ownership="none">
1531           <type name="gint" c:type="int"/>
1532         </parameter>
1533         <parameter name="ints" transfer-ownership="none">
1534           <doc xml:whitespace="preserve">List of ints</doc>
1535           <array length="0" zero-terminated="0" c:type="gint16*">
1536             <type name="gint16" c:type="gint16"/>
1537           </array>
1538         </parameter>
1539       </parameters>
1540     </function>
1541     <function name="test_array_gint32_in"
1542               c:identifier="regress_test_array_gint32_in">
1543       <return-value transfer-ownership="none">
1544         <type name="gint32" c:type="gint32"/>
1545       </return-value>
1546       <parameters>
1547         <parameter name="n_ints" transfer-ownership="none">
1548           <type name="gint" c:type="int"/>
1549         </parameter>
1550         <parameter name="ints" transfer-ownership="none">
1551           <doc xml:whitespace="preserve">List of ints</doc>
1552           <array length="0" zero-terminated="0" c:type="gint32*">
1553             <type name="gint32" c:type="gint32"/>
1554           </array>
1555         </parameter>
1556       </parameters>
1557     </function>
1558     <function name="test_array_gint64_in"
1559               c:identifier="regress_test_array_gint64_in">
1560       <return-value transfer-ownership="none">
1561         <type name="gint64" c:type="gint64"/>
1562       </return-value>
1563       <parameters>
1564         <parameter name="n_ints" transfer-ownership="none">
1565           <type name="gint" c:type="int"/>
1566         </parameter>
1567         <parameter name="ints" transfer-ownership="none">
1568           <doc xml:whitespace="preserve">List of ints</doc>
1569           <array length="0" zero-terminated="0" c:type="gint64*">
1570             <type name="gint64" c:type="gint64"/>
1571           </array>
1572         </parameter>
1573       </parameters>
1574     </function>
1575     <function name="test_array_gint8_in"
1576               c:identifier="regress_test_array_gint8_in">
1577       <return-value transfer-ownership="none">
1578         <type name="gint" c:type="int"/>
1579       </return-value>
1580       <parameters>
1581         <parameter name="n_ints" transfer-ownership="none">
1582           <type name="gint" c:type="int"/>
1583         </parameter>
1584         <parameter name="ints" transfer-ownership="none">
1585           <doc xml:whitespace="preserve">List of ints</doc>
1586           <array length="0" zero-terminated="0" c:type="gint8*">
1587             <type name="gint8" c:type="gint8"/>
1588           </array>
1589         </parameter>
1590       </parameters>
1591     </function>
1592     <function name="test_array_gtype_in"
1593               c:identifier="regress_test_array_gtype_in">
1594       <return-value transfer-ownership="full">
1595         <doc xml:whitespace="preserve">string representation of provided types</doc>
1596         <type name="utf8" c:type="char*"/>
1597       </return-value>
1598       <parameters>
1599         <parameter name="n_types" transfer-ownership="none">
1600           <type name="gint" c:type="int"/>
1601         </parameter>
1602         <parameter name="types" transfer-ownership="none">
1603           <doc xml:whitespace="preserve">List of types</doc>
1604           <array length="0" zero-terminated="0" c:type="GType*">
1605             <type name="GType" c:type="GType"/>
1606           </array>
1607         </parameter>
1608       </parameters>
1609     </function>
1610     <function name="test_array_int_full_out"
1611               c:identifier="regress_test_array_int_full_out">
1612       <return-value transfer-ownership="full">
1613         <doc xml:whitespace="preserve">a new array of integers.</doc>
1614         <array length="0" zero-terminated="0" c:type="int*">
1615           <type name="gint" c:type="int"/>
1616         </array>
1617       </return-value>
1618       <parameters>
1619         <parameter name="len"
1620                    direction="out"
1621                    caller-allocates="0"
1622                    transfer-ownership="full">
1623           <doc xml:whitespace="preserve">length of the returned array.</doc>
1624           <type name="gint" c:type="int*"/>
1625         </parameter>
1626       </parameters>
1627     </function>
1628     <function name="test_array_int_in"
1629               c:identifier="regress_test_array_int_in">
1630       <return-value transfer-ownership="none">
1631         <type name="gint" c:type="int"/>
1632       </return-value>
1633       <parameters>
1634         <parameter name="n_ints" transfer-ownership="none">
1635           <type name="gint" c:type="int"/>
1636         </parameter>
1637         <parameter name="ints" transfer-ownership="none">
1638           <doc xml:whitespace="preserve">List of ints</doc>
1639           <array length="0" zero-terminated="0" c:type="int*">
1640             <type name="gint" c:type="int"/>
1641           </array>
1642         </parameter>
1643       </parameters>
1644     </function>
1645     <function name="test_array_int_inout"
1646               c:identifier="regress_test_array_int_inout">
1647       <return-value transfer-ownership="none">
1648         <type name="none" c:type="void"/>
1649       </return-value>
1650       <parameters>
1651         <parameter name="n_ints"
1652                    direction="inout"
1653                    caller-allocates="0"
1654                    transfer-ownership="full">
1655           <doc xml:whitespace="preserve">the length of @ints</doc>
1656           <type name="gint" c:type="int*"/>
1657         </parameter>
1658         <parameter name="ints"
1659                    direction="inout"
1660                    caller-allocates="0"
1661                    transfer-ownership="full">
1662           <doc xml:whitespace="preserve">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
1663           <array length="0" zero-terminated="0" c:type="int**">
1664             <type name="gint" c:type="int*"/>
1665           </array>
1666         </parameter>
1667       </parameters>
1668     </function>
1669     <function name="test_array_int_none_out"
1670               c:identifier="regress_test_array_int_none_out">
1671       <return-value transfer-ownership="none">
1672         <doc xml:whitespace="preserve">a static array of integers.</doc>
1673         <array length="0" zero-terminated="0" c:type="int*">
1674           <type name="gint" c:type="int"/>
1675         </array>
1676       </return-value>
1677       <parameters>
1678         <parameter name="len"
1679                    direction="out"
1680                    caller-allocates="0"
1681                    transfer-ownership="full">
1682           <doc xml:whitespace="preserve">length of the returned array.</doc>
1683           <type name="gint" c:type="int*"/>
1684         </parameter>
1685       </parameters>
1686     </function>
1687     <function name="test_array_int_null_in"
1688               c:identifier="regress_test_array_int_null_in">
1689       <return-value transfer-ownership="none">
1690         <type name="none" c:type="void"/>
1691       </return-value>
1692       <parameters>
1693         <parameter name="arr" transfer-ownership="none" allow-none="1">
1694           <array length="1" zero-terminated="0" c:type="int*">
1695             <type name="gint" c:type="int"/>
1696           </array>
1697         </parameter>
1698         <parameter name="len" transfer-ownership="none">
1699           <doc xml:whitespace="preserve">length</doc>
1700           <type name="gint" c:type="int"/>
1701         </parameter>
1702       </parameters>
1703     </function>
1704     <function name="test_array_int_null_out"
1705               c:identifier="regress_test_array_int_null_out">
1706       <return-value transfer-ownership="none">
1707         <type name="none" c:type="void"/>
1708       </return-value>
1709       <parameters>
1710         <parameter name="arr"
1711                    direction="out"
1712                    caller-allocates="0"
1713                    transfer-ownership="full"
1714                    allow-none="1">
1715           <array length="1" zero-terminated="0" c:type="int**">
1716             <type name="gint" c:type="int*"/>
1717           </array>
1718         </parameter>
1719         <parameter name="len"
1720                    direction="out"
1721                    caller-allocates="0"
1722                    transfer-ownership="full">
1723           <doc xml:whitespace="preserve">length</doc>
1724           <type name="gint" c:type="int*"/>
1725         </parameter>
1726       </parameters>
1727     </function>
1728     <function name="test_array_int_out"
1729               c:identifier="regress_test_array_int_out">
1730       <return-value transfer-ownership="none">
1731         <type name="none" c:type="void"/>
1732       </return-value>
1733       <parameters>
1734         <parameter name="n_ints"
1735                    direction="out"
1736                    caller-allocates="0"
1737                    transfer-ownership="full">
1738           <doc xml:whitespace="preserve">the length of @ints</doc>
1739           <type name="gint" c:type="int*"/>
1740         </parameter>
1741         <parameter name="ints"
1742                    direction="out"
1743                    caller-allocates="0"
1744                    transfer-ownership="full">
1745           <doc xml:whitespace="preserve">a list of 5 integers, from 0 to 4 in consecutive order</doc>
1746           <array length="0" zero-terminated="0" c:type="int**">
1747             <type name="gint" c:type="int*"/>
1748           </array>
1749         </parameter>
1750       </parameters>
1751     </function>
1752     <function name="test_async_ready_callback"
1753               c:identifier="regress_test_async_ready_callback">
1754       <return-value transfer-ownership="none">
1755         <type name="none" c:type="void"/>
1756       </return-value>
1757       <parameters>
1758         <parameter name="callback"
1759                    transfer-ownership="none"
1760                    allow-none="1"
1761                    scope="async">
1762           <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1763         </parameter>
1764       </parameters>
1765     </function>
1766     <function name="test_boolean" c:identifier="regress_test_boolean">
1767       <return-value transfer-ownership="none">
1768         <type name="gboolean" c:type="gboolean"/>
1769       </return-value>
1770       <parameters>
1771         <parameter name="in" transfer-ownership="none">
1772           <type name="gboolean" c:type="gboolean"/>
1773         </parameter>
1774       </parameters>
1775     </function>
1776     <function name="test_boolean_false"
1777               c:identifier="regress_test_boolean_false">
1778       <return-value transfer-ownership="none">
1779         <type name="gboolean" c:type="gboolean"/>
1780       </return-value>
1781       <parameters>
1782         <parameter name="in" transfer-ownership="none">
1783           <type name="gboolean" c:type="gboolean"/>
1784         </parameter>
1785       </parameters>
1786     </function>
1787     <function name="test_boolean_true"
1788               c:identifier="regress_test_boolean_true">
1789       <return-value transfer-ownership="none">
1790         <type name="gboolean" c:type="gboolean"/>
1791       </return-value>
1792       <parameters>
1793         <parameter name="in" transfer-ownership="none">
1794           <type name="gboolean" c:type="gboolean"/>
1795         </parameter>
1796       </parameters>
1797     </function>
1798     <function name="test_cairo_context_full_return"
1799               c:identifier="regress_test_cairo_context_full_return">
1800       <return-value transfer-ownership="full">
1801         <type name="cairo.Context" c:type="cairo_t*"/>
1802       </return-value>
1803     </function>
1804     <function name="test_cairo_context_none_in"
1805               c:identifier="regress_test_cairo_context_none_in">
1806       <return-value transfer-ownership="none">
1807         <type name="none" c:type="void"/>
1808       </return-value>
1809       <parameters>
1810         <parameter name="context" transfer-ownership="none">
1811           <type name="cairo.Context" c:type="cairo_t*"/>
1812         </parameter>
1813       </parameters>
1814     </function>
1815     <function name="test_cairo_surface_full_out"
1816               c:identifier="regress_test_cairo_surface_full_out">
1817       <return-value transfer-ownership="none">
1818         <type name="none" c:type="void"/>
1819       </return-value>
1820       <parameters>
1821         <parameter name="surface"
1822                    direction="out"
1823                    caller-allocates="0"
1824                    transfer-ownership="full">
1825           <type name="cairo.Surface" c:type="cairo_surface_t**"/>
1826         </parameter>
1827       </parameters>
1828     </function>
1829     <function name="test_cairo_surface_full_return"
1830               c:identifier="regress_test_cairo_surface_full_return">
1831       <return-value transfer-ownership="full">
1832         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
1833       </return-value>
1834     </function>
1835     <function name="test_cairo_surface_none_in"
1836               c:identifier="regress_test_cairo_surface_none_in">
1837       <return-value transfer-ownership="none">
1838         <type name="none" c:type="void"/>
1839       </return-value>
1840       <parameters>
1841         <parameter name="surface" transfer-ownership="none">
1842           <type name="cairo.Surface" c:type="cairo_surface_t*"/>
1843         </parameter>
1844       </parameters>
1845     </function>
1846     <function name="test_cairo_surface_none_return"
1847               c:identifier="regress_test_cairo_surface_none_return">
1848       <return-value transfer-ownership="none">
1849         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
1850       </return-value>
1851     </function>
1852     <function name="test_callback" c:identifier="regress_test_callback">
1853       <return-value transfer-ownership="none">
1854         <type name="gint" c:type="int"/>
1855       </return-value>
1856       <parameters>
1857         <parameter name="callback"
1858                    transfer-ownership="none"
1859                    allow-none="1"
1860                    scope="call">
1861           <type name="TestCallback" c:type="RegressTestCallback"/>
1862         </parameter>
1863       </parameters>
1864     </function>
1865     <function name="test_callback_async"
1866               c:identifier="regress_test_callback_async">
1867       <return-value transfer-ownership="none">
1868         <type name="none" c:type="void"/>
1869       </return-value>
1870       <parameters>
1871         <parameter name="callback"
1872                    transfer-ownership="none"
1873                    scope="async"
1874                    closure="1">
1875           <type name="TestCallbackUserData"
1876                 c:type="RegressTestCallbackUserData"/>
1877         </parameter>
1878         <parameter name="user_data" transfer-ownership="none">
1879           <type name="gpointer" c:type="gpointer"/>
1880         </parameter>
1881       </parameters>
1882     </function>
1883     <function name="test_callback_destroy_notify"
1884               c:identifier="regress_test_callback_destroy_notify">
1885       <doc xml:whitespace="preserve">Notified - callback persists until a DestroyNotify delegate
1886 is invoked.</doc>
1887       <return-value transfer-ownership="none">
1888         <type name="gint" c:type="int"/>
1889       </return-value>
1890       <parameters>
1891         <parameter name="callback"
1892                    transfer-ownership="none"
1893                    scope="notified"
1894                    closure="1"
1895                    destroy="2">
1896           <type name="TestCallbackUserData"
1897                 c:type="RegressTestCallbackUserData"/>
1898         </parameter>
1899         <parameter name="user_data" transfer-ownership="none">
1900           <type name="gpointer" c:type="gpointer"/>
1901         </parameter>
1902         <parameter name="notify" transfer-ownership="none" scope="async">
1903           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
1904         </parameter>
1905       </parameters>
1906     </function>
1907     <function name="test_callback_thaw_async"
1908               c:identifier="regress_test_callback_thaw_async">
1909       <return-value transfer-ownership="none">
1910         <type name="gint" c:type="int"/>
1911       </return-value>
1912     </function>
1913     <function name="test_callback_thaw_notifications"
1914               c:identifier="regress_test_callback_thaw_notifications">
1915       <doc xml:whitespace="preserve">Invokes all callbacks installed by #test_callback_destroy_notify(),
1916 adding up their return values, and removes them, invoking the
1917 corresponding destroy notfications.</doc>
1918       <return-value transfer-ownership="none">
1919         <doc xml:whitespace="preserve">Sum of the return values of the invoked callbacks.</doc>
1920         <type name="gint" c:type="int"/>
1921       </return-value>
1922     </function>
1923     <function name="test_callback_user_data"
1924               c:identifier="regress_test_callback_user_data">
1925       <doc xml:whitespace="preserve">Call - callback parameter persists for the duration of the method
1926 call and can be released on return.</doc>
1927       <return-value transfer-ownership="none">
1928         <type name="gint" c:type="int"/>
1929       </return-value>
1930       <parameters>
1931         <parameter name="callback"
1932                    transfer-ownership="none"
1933                    scope="call"
1934                    closure="1">
1935           <type name="TestCallbackUserData"
1936                 c:type="RegressTestCallbackUserData"/>
1937         </parameter>
1938         <parameter name="user_data" transfer-ownership="none">
1939           <type name="gpointer" c:type="gpointer"/>
1940         </parameter>
1941       </parameters>
1942     </function>
1943     <function name="test_closure" c:identifier="regress_test_closure">
1944       <return-value transfer-ownership="none">
1945         <type name="gint" c:type="int"/>
1946       </return-value>
1947       <parameters>
1948         <parameter name="closure" transfer-ownership="none">
1949           <type name="GObject.Closure" c:type="GClosure*"/>
1950         </parameter>
1951       </parameters>
1952     </function>
1953     <function name="test_closure_one_arg"
1954               c:identifier="regress_test_closure_one_arg">
1955       <return-value transfer-ownership="none">
1956         <type name="gint" c:type="int"/>
1957       </return-value>
1958       <parameters>
1959         <parameter name="closure" transfer-ownership="none">
1960           <type name="GObject.Closure" c:type="GClosure*"/>
1961         </parameter>
1962         <parameter name="arg" transfer-ownership="none">
1963           <type name="gint" c:type="int"/>
1964         </parameter>
1965       </parameters>
1966     </function>
1967     <function name="test_closure_variant"
1968               c:identifier="regress_test_closure_variant">
1969       <return-value transfer-ownership="full">
1970         <doc xml:whitespace="preserve">the return value of @closure</doc>
1971         <type name="GLib.Variant" c:type="GVariant*"/>
1972       </return-value>
1973       <parameters>
1974         <parameter name="closure" transfer-ownership="none">
1975           <doc xml:whitespace="preserve">GClosure which takes one GVariant and returns a GVariant</doc>
1976           <type name="GObject.Closure" c:type="GClosure*"/>
1977         </parameter>
1978         <parameter name="arg" transfer-ownership="none">
1979           <doc xml:whitespace="preserve">a GVariant passed as argument to @closure</doc>
1980           <type name="GLib.Variant" c:type="GVariant*"/>
1981         </parameter>
1982       </parameters>
1983     </function>
1984     <function name="test_date_in_gvalue"
1985               c:identifier="regress_test_date_in_gvalue">
1986       <return-value transfer-ownership="full">
1987         <type name="GObject.Value" c:type="GValue*"/>
1988       </return-value>
1989     </function>
1990     <function name="test_double" c:identifier="regress_test_double">
1991       <return-value transfer-ownership="none">
1992         <type name="gdouble" c:type="gdouble"/>
1993       </return-value>
1994       <parameters>
1995         <parameter name="in" transfer-ownership="none">
1996           <type name="gdouble" c:type="gdouble"/>
1997         </parameter>
1998       </parameters>
1999     </function>
2000     <function name="test_enum_param"
2001               c:identifier="regress_test_enum_param"
2002               moved-to="TestEnum.param">
2003       <return-value transfer-ownership="none">
2004         <type name="utf8" c:type="gchar*"/>
2005       </return-value>
2006       <parameters>
2007         <parameter name="e" transfer-ownership="none">
2008           <type name="TestEnum" c:type="RegressTestEnum"/>
2009         </parameter>
2010       </parameters>
2011     </function>
2012     <function name="test_filename_return"
2013               c:identifier="regress_test_filename_return">
2014       <return-value transfer-ownership="full">
2015         <doc xml:whitespace="preserve">list of strings</doc>
2016         <type name="GLib.SList" c:type="GSList*">
2017           <type name="filename"/>
2018         </type>
2019       </return-value>
2020     </function>
2021     <function name="test_float" c:identifier="regress_test_float">
2022       <return-value transfer-ownership="none">
2023         <type name="gfloat" c:type="gfloat"/>
2024       </return-value>
2025       <parameters>
2026         <parameter name="in" transfer-ownership="none">
2027           <type name="gfloat" c:type="gfloat"/>
2028         </parameter>
2029       </parameters>
2030     </function>
2031     <function name="test_garray_container_return"
2032               c:identifier="regress_test_garray_container_return">
2033       <return-value transfer-ownership="container">
2034         <array name="GLib.PtrArray" c:type="GPtrArray*">
2035           <type name="utf8"/>
2036         </array>
2037       </return-value>
2038     </function>
2039     <function name="test_ghash_container_return"
2040               c:identifier="regress_test_ghash_container_return">
2041       <return-value transfer-ownership="container">
2042         <type name="GLib.HashTable" c:type="GHashTable*">
2043           <type name="utf8"/>
2044           <type name="utf8"/>
2045         </type>
2046       </return-value>
2047     </function>
2048     <function name="test_ghash_everything_return"
2049               c:identifier="regress_test_ghash_everything_return">
2050       <return-value transfer-ownership="full">
2051         <type name="GLib.HashTable" c:type="GHashTable*">
2052           <type name="utf8"/>
2053           <type name="utf8"/>
2054         </type>
2055       </return-value>
2056     </function>
2057     <function name="test_ghash_nested_everything_return"
2058               c:identifier="regress_test_ghash_nested_everything_return">
2059       <doc xml:whitespace="preserve">Specify nested parameterized types directly with the (type ) annotation.</doc>
2060       <return-value transfer-ownership="full">
2061         <type name="GLib.HashTable" c:type="GHashTable*">
2062           <type name="utf8"/>
2063           <type name="GLib.HashTable">
2064             <type name="utf8"/>
2065             <type name="utf8"/>
2066           </type>
2067         </type>
2068       </return-value>
2069     </function>
2070     <function name="test_ghash_nested_everything_return2"
2071               c:identifier="regress_test_ghash_nested_everything_return2">
2072       <doc xml:whitespace="preserve">Another way of specifying nested parameterized types: using the
2073 element-type annotation.</doc>
2074       <return-value transfer-ownership="full">
2075         <type name="GLib.HashTable" c:type="GHashTable*">
2076           <type name="utf8"/>
2077           <type name="GLib.HashTable">
2078             <type name="utf8"/>
2079             <type name="utf8"/>
2080           </type>
2081         </type>
2082       </return-value>
2083     </function>
2084     <function name="test_ghash_nothing_in"
2085               c:identifier="regress_test_ghash_nothing_in">
2086       <return-value transfer-ownership="none">
2087         <type name="none" c:type="void"/>
2088       </return-value>
2089       <parameters>
2090         <parameter name="in" transfer-ownership="none">
2091           <type name="GLib.HashTable" c:type="GHashTable*">
2092             <type name="utf8"/>
2093             <type name="utf8"/>
2094           </type>
2095         </parameter>
2096       </parameters>
2097     </function>
2098     <function name="test_ghash_nothing_in2"
2099               c:identifier="regress_test_ghash_nothing_in2">
2100       <return-value transfer-ownership="none">
2101         <type name="none" c:type="void"/>
2102       </return-value>
2103       <parameters>
2104         <parameter name="in" transfer-ownership="none">
2105           <type name="GLib.HashTable" c:type="GHashTable*">
2106             <type name="utf8"/>
2107             <type name="utf8"/>
2108           </type>
2109         </parameter>
2110       </parameters>
2111     </function>
2112     <function name="test_ghash_nothing_return"
2113               c:identifier="regress_test_ghash_nothing_return">
2114       <return-value transfer-ownership="none">
2115         <type name="GLib.HashTable" c:type="GHashTable*">
2116           <type name="utf8"/>
2117           <type name="utf8"/>
2118         </type>
2119       </return-value>
2120     </function>
2121     <function name="test_ghash_nothing_return2"
2122               c:identifier="regress_test_ghash_nothing_return2">
2123       <return-value transfer-ownership="none">
2124         <type name="GLib.HashTable" c:type="GHashTable*">
2125           <type name="utf8"/>
2126           <type name="utf8"/>
2127         </type>
2128       </return-value>
2129     </function>
2130     <function name="test_ghash_null_in"
2131               c:identifier="regress_test_ghash_null_in">
2132       <return-value transfer-ownership="none">
2133         <type name="none" c:type="void"/>
2134       </return-value>
2135       <parameters>
2136         <parameter name="in" transfer-ownership="none" allow-none="1">
2137           <type name="GLib.HashTable" c:type="GHashTable*">
2138             <type name="utf8"/>
2139             <type name="utf8"/>
2140           </type>
2141         </parameter>
2142       </parameters>
2143     </function>
2144     <function name="test_ghash_null_out"
2145               c:identifier="regress_test_ghash_null_out">
2146       <return-value transfer-ownership="none">
2147         <type name="none" c:type="void"/>
2148       </return-value>
2149       <parameters>
2150         <parameter name="out"
2151                    direction="out"
2152                    caller-allocates="0"
2153                    transfer-ownership="full"
2154                    allow-none="1">
2155           <type name="GLib.HashTable" c:type="GHashTable**">
2156             <type name="utf8"/>
2157             <type name="utf8"/>
2158           </type>
2159         </parameter>
2160       </parameters>
2161     </function>
2162     <function name="test_ghash_null_return"
2163               c:identifier="regress_test_ghash_null_return">
2164       <return-value transfer-ownership="none">
2165         <type name="GLib.HashTable" c:type="GHashTable*">
2166           <type name="utf8"/>
2167           <type name="utf8"/>
2168         </type>
2169       </return-value>
2170     </function>
2171     <function name="test_glist_container_return"
2172               c:identifier="regress_test_glist_container_return">
2173       <return-value transfer-ownership="container">
2174         <type name="GLib.List" c:type="GList*">
2175           <type name="utf8"/>
2176         </type>
2177       </return-value>
2178     </function>
2179     <function name="test_glist_everything_return"
2180               c:identifier="regress_test_glist_everything_return">
2181       <return-value transfer-ownership="full">
2182         <type name="GLib.List" c:type="GList*">
2183           <type name="utf8"/>
2184         </type>
2185       </return-value>
2186     </function>
2187     <function name="test_glist_nothing_in"
2188               c:identifier="regress_test_glist_nothing_in">
2189       <return-value transfer-ownership="none">
2190         <type name="none" c:type="void"/>
2191       </return-value>
2192       <parameters>
2193         <parameter name="in" transfer-ownership="none">
2194           <type name="GLib.List" c:type="GList*">
2195             <type name="utf8"/>
2196           </type>
2197         </parameter>
2198       </parameters>
2199     </function>
2200     <function name="test_glist_nothing_in2"
2201               c:identifier="regress_test_glist_nothing_in2">
2202       <return-value transfer-ownership="none">
2203         <type name="none" c:type="void"/>
2204       </return-value>
2205       <parameters>
2206         <parameter name="in" transfer-ownership="none">
2207           <type name="GLib.List" c:type="GList*">
2208             <type name="utf8"/>
2209           </type>
2210         </parameter>
2211       </parameters>
2212     </function>
2213     <function name="test_glist_nothing_return"
2214               c:identifier="regress_test_glist_nothing_return">
2215       <return-value transfer-ownership="none">
2216         <type name="GLib.List" c:type="GList*">
2217           <type name="utf8"/>
2218         </type>
2219       </return-value>
2220     </function>
2221     <function name="test_glist_nothing_return2"
2222               c:identifier="regress_test_glist_nothing_return2">
2223       <return-value transfer-ownership="none">
2224         <type name="GLib.List" c:type="GList*">
2225           <type name="utf8"/>
2226         </type>
2227       </return-value>
2228     </function>
2229     <function name="test_glist_null_in"
2230               c:identifier="regress_test_glist_null_in">
2231       <return-value transfer-ownership="none">
2232         <type name="none" c:type="void"/>
2233       </return-value>
2234       <parameters>
2235         <parameter name="in" transfer-ownership="none" allow-none="1">
2236           <type name="GLib.SList" c:type="GSList*">
2237             <type name="utf8"/>
2238           </type>
2239         </parameter>
2240       </parameters>
2241     </function>
2242     <function name="test_glist_null_out"
2243               c:identifier="regress_test_glist_null_out">
2244       <return-value transfer-ownership="none">
2245         <type name="none" c:type="void"/>
2246       </return-value>
2247       <parameters>
2248         <parameter name="out_list"
2249                    direction="out"
2250                    caller-allocates="0"
2251                    transfer-ownership="full"
2252                    allow-none="1">
2253           <type name="GLib.SList" c:type="GSList**">
2254             <type name="utf8"/>
2255           </type>
2256         </parameter>
2257       </parameters>
2258     </function>
2259     <function name="test_gslist_container_return"
2260               c:identifier="regress_test_gslist_container_return">
2261       <return-value transfer-ownership="container">
2262         <type name="GLib.SList" c:type="GSList*">
2263           <type name="utf8"/>
2264         </type>
2265       </return-value>
2266     </function>
2267     <function name="test_gslist_everything_return"
2268               c:identifier="regress_test_gslist_everything_return">
2269       <return-value transfer-ownership="full">
2270         <type name="GLib.SList" c:type="GSList*">
2271           <type name="utf8"/>
2272         </type>
2273       </return-value>
2274     </function>
2275     <function name="test_gslist_nothing_in"
2276               c:identifier="regress_test_gslist_nothing_in">
2277       <return-value transfer-ownership="none">
2278         <type name="none" c:type="void"/>
2279       </return-value>
2280       <parameters>
2281         <parameter name="in" transfer-ownership="none">
2282           <type name="GLib.SList" c:type="GSList*">
2283             <type name="utf8"/>
2284           </type>
2285         </parameter>
2286       </parameters>
2287     </function>
2288     <function name="test_gslist_nothing_in2"
2289               c:identifier="regress_test_gslist_nothing_in2">
2290       <return-value transfer-ownership="none">
2291         <type name="none" c:type="void"/>
2292       </return-value>
2293       <parameters>
2294         <parameter name="in" transfer-ownership="none">
2295           <type name="GLib.SList" c:type="GSList*">
2296             <type name="utf8"/>
2297           </type>
2298         </parameter>
2299       </parameters>
2300     </function>
2301     <function name="test_gslist_nothing_return"
2302               c:identifier="regress_test_gslist_nothing_return">
2303       <return-value transfer-ownership="none">
2304         <type name="GLib.SList" c:type="GSList*">
2305           <type name="utf8"/>
2306         </type>
2307       </return-value>
2308     </function>
2309     <function name="test_gslist_nothing_return2"
2310               c:identifier="regress_test_gslist_nothing_return2">
2311       <return-value transfer-ownership="none">
2312         <type name="GLib.SList" c:type="GSList*">
2313           <type name="utf8"/>
2314         </type>
2315       </return-value>
2316     </function>
2317     <function name="test_gslist_null_in"
2318               c:identifier="regress_test_gslist_null_in">
2319       <return-value transfer-ownership="none">
2320         <type name="none" c:type="void"/>
2321       </return-value>
2322       <parameters>
2323         <parameter name="in" transfer-ownership="none" allow-none="1">
2324           <type name="GLib.SList" c:type="GSList*">
2325             <type name="utf8"/>
2326           </type>
2327         </parameter>
2328       </parameters>
2329     </function>
2330     <function name="test_gslist_null_out"
2331               c:identifier="regress_test_gslist_null_out">
2332       <return-value transfer-ownership="none">
2333         <type name="none" c:type="void"/>
2334       </return-value>
2335       <parameters>
2336         <parameter name="out_list"
2337                    direction="out"
2338                    caller-allocates="0"
2339                    transfer-ownership="full"
2340                    allow-none="1">
2341           <type name="GLib.SList" c:type="GSList**">
2342             <type name="utf8"/>
2343           </type>
2344         </parameter>
2345       </parameters>
2346     </function>
2347     <function name="test_gtype" c:identifier="regress_test_gtype">
2348       <return-value transfer-ownership="none">
2349         <type name="GType" c:type="GType"/>
2350       </return-value>
2351       <parameters>
2352         <parameter name="in" transfer-ownership="none">
2353           <type name="GType" c:type="GType"/>
2354         </parameter>
2355       </parameters>
2356     </function>
2357     <function name="test_gvariant_as" c:identifier="regress_test_gvariant_as">
2358       <return-value transfer-ownership="none">
2359         <doc xml:whitespace="preserve">New variant</doc>
2360         <type name="GLib.Variant" c:type="GVariant*"/>
2361       </return-value>
2362     </function>
2363     <function name="test_gvariant_asv"
2364               c:identifier="regress_test_gvariant_asv">
2365       <return-value transfer-ownership="none">
2366         <doc xml:whitespace="preserve">New variant</doc>
2367         <type name="GLib.Variant" c:type="GVariant*"/>
2368       </return-value>
2369     </function>
2370     <function name="test_gvariant_i" c:identifier="regress_test_gvariant_i">
2371       <return-value transfer-ownership="none">
2372         <doc xml:whitespace="preserve">New variant</doc>
2373         <type name="GLib.Variant" c:type="GVariant*"/>
2374       </return-value>
2375     </function>
2376     <function name="test_gvariant_s" c:identifier="regress_test_gvariant_s">
2377       <return-value transfer-ownership="none">
2378         <doc xml:whitespace="preserve">New variant</doc>
2379         <type name="GLib.Variant" c:type="GVariant*"/>
2380       </return-value>
2381     </function>
2382     <function name="test_gvariant_v" c:identifier="regress_test_gvariant_v">
2383       <return-value transfer-ownership="none">
2384         <doc xml:whitespace="preserve">New variant</doc>
2385         <type name="GLib.Variant" c:type="GVariant*"/>
2386       </return-value>
2387     </function>
2388     <function name="test_int" c:identifier="regress_test_int">
2389       <return-value transfer-ownership="none">
2390         <type name="gint" c:type="gint"/>
2391       </return-value>
2392       <parameters>
2393         <parameter name="in" transfer-ownership="none">
2394           <type name="gint" c:type="gint"/>
2395         </parameter>
2396       </parameters>
2397     </function>
2398     <function name="test_int16" c:identifier="regress_test_int16">
2399       <return-value transfer-ownership="none">
2400         <type name="gint16" c:type="gint16"/>
2401       </return-value>
2402       <parameters>
2403         <parameter name="in" transfer-ownership="none">
2404           <type name="gint16" c:type="gint16"/>
2405         </parameter>
2406       </parameters>
2407     </function>
2408     <function name="test_int32" c:identifier="regress_test_int32">
2409       <return-value transfer-ownership="none">
2410         <type name="gint32" c:type="gint32"/>
2411       </return-value>
2412       <parameters>
2413         <parameter name="in" transfer-ownership="none">
2414           <type name="gint32" c:type="gint32"/>
2415         </parameter>
2416       </parameters>
2417     </function>
2418     <function name="test_int64" c:identifier="regress_test_int64">
2419       <return-value transfer-ownership="none">
2420         <type name="gint64" c:type="gint64"/>
2421       </return-value>
2422       <parameters>
2423         <parameter name="in" transfer-ownership="none">
2424           <type name="gint64" c:type="gint64"/>
2425         </parameter>
2426       </parameters>
2427     </function>
2428     <function name="test_int8" c:identifier="regress_test_int8">
2429       <return-value transfer-ownership="none">
2430         <type name="gint8" c:type="gint8"/>
2431       </return-value>
2432       <parameters>
2433         <parameter name="in" transfer-ownership="none">
2434           <type name="gint8" c:type="gint8"/>
2435         </parameter>
2436       </parameters>
2437     </function>
2438     <function name="test_int_out_utf8"
2439               c:identifier="regress_test_int_out_utf8">
2440       <return-value transfer-ownership="none">
2441         <type name="none" c:type="void"/>
2442       </return-value>
2443       <parameters>
2444         <parameter name="length"
2445                    direction="out"
2446                    caller-allocates="0"
2447                    transfer-ownership="full">
2448           <type name="gint" c:type="int*"/>
2449         </parameter>
2450         <parameter name="in" transfer-ownership="none">
2451           <type name="utf8" c:type="char*"/>
2452         </parameter>
2453       </parameters>
2454     </function>
2455     <function name="test_int_value_arg"
2456               c:identifier="regress_test_int_value_arg">
2457       <return-value transfer-ownership="none">
2458         <type name="gint" c:type="int"/>
2459       </return-value>
2460       <parameters>
2461         <parameter name="v" transfer-ownership="none">
2462           <type name="GObject.Value" c:type="GValue*"/>
2463         </parameter>
2464       </parameters>
2465     </function>
2466     <function name="test_long" c:identifier="regress_test_long">
2467       <return-value transfer-ownership="none">
2468         <type name="glong" c:type="glong"/>
2469       </return-value>
2470       <parameters>
2471         <parameter name="in" transfer-ownership="none">
2472           <type name="glong" c:type="glong"/>
2473         </parameter>
2474       </parameters>
2475     </function>
2476     <function name="test_multi_callback"
2477               c:identifier="regress_test_multi_callback">
2478       <return-value transfer-ownership="none">
2479         <type name="gint" c:type="int"/>
2480       </return-value>
2481       <parameters>
2482         <parameter name="callback"
2483                    transfer-ownership="none"
2484                    allow-none="1"
2485                    scope="call">
2486           <type name="TestCallback" c:type="RegressTestCallback"/>
2487         </parameter>
2488       </parameters>
2489     </function>
2490     <function name="test_multi_double_args"
2491               c:identifier="regress_test_multi_double_args">
2492       <return-value transfer-ownership="none">
2493         <type name="none" c:type="void"/>
2494       </return-value>
2495       <parameters>
2496         <parameter name="in" transfer-ownership="none">
2497           <type name="gdouble" c:type="gdouble"/>
2498         </parameter>
2499         <parameter name="one"
2500                    direction="out"
2501                    caller-allocates="0"
2502                    transfer-ownership="full">
2503           <type name="gdouble" c:type="gdouble*"/>
2504         </parameter>
2505         <parameter name="two"
2506                    direction="out"
2507                    caller-allocates="0"
2508                    transfer-ownership="full">
2509           <type name="gdouble" c:type="gdouble*"/>
2510         </parameter>
2511       </parameters>
2512     </function>
2513     <function name="test_multiline_doc_comments"
2514               c:identifier="regress_test_multiline_doc_comments">
2515       <doc xml:whitespace="preserve">This is a function.
2516
2517 It has multiple lines in the documentation.
2518
2519 The sky is blue.
2520
2521 You will give me your credit card number.</doc>
2522       <return-value transfer-ownership="none">
2523         <type name="none" c:type="void"/>
2524       </return-value>
2525     </function>
2526     <function name="test_nested_parameter"
2527               c:identifier="regress_test_nested_parameter">
2528       <doc xml:whitespace="preserve">&lt;informaltable&gt;
2529 &lt;tgroup cols="3"&gt;
2530 &lt;thead&gt;
2531 &lt;row&gt;
2532 &lt;entry&gt;Syntax&lt;/entry&gt;
2533 &lt;entry&gt;Explanation&lt;/entry&gt;
2534 &lt;entry&gt;Examples&lt;/entry&gt;
2535 &lt;/row&gt;
2536 &lt;/thead&gt;
2537 &lt;tbody&gt;
2538 &lt;row&gt;
2539 &lt;entry&gt;rgb(@r, @g, @b)&lt;/entry&gt;
2540 &lt;entry&gt;An opaque color; @r, @g, @b can be either integers between
2541 0 and 255 or percentages&lt;/entry&gt;
2542 &lt;entry&gt;&lt;literallayout&gt;rgb(128, 10, 54)
2543 rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
2544 &lt;/row&gt;
2545 &lt;row&gt;
2546 &lt;entry&gt;rgba(@r, @g, @b, @a)&lt;/entry&gt;
2547 &lt;entry&gt;A translucent color; @r, @g, @b are as in the previous row,
2548 @a is a floating point number between 0 and 1&lt;/entry&gt;
2549 &lt;entry&gt;&lt;literallayout&gt;rgba(255, 255, 0, 0.5)&lt;/literallayout&gt;&lt;/entry&gt;
2550 &lt;/row&gt;
2551 &lt;/tbody&gt;
2552 &lt;/tgroup&gt;
2553 &lt;/informaltable&gt;
2554
2555 What we're testing here is that the scanner ignores the @a nested inside XML.</doc>
2556       <return-value transfer-ownership="none">
2557         <type name="none" c:type="void"/>
2558       </return-value>
2559       <parameters>
2560         <parameter name="a" transfer-ownership="none">
2561           <doc xml:whitespace="preserve">An integer</doc>
2562           <type name="gint" c:type="int"/>
2563         </parameter>
2564       </parameters>
2565     </function>
2566     <function name="test_short" c:identifier="regress_test_short">
2567       <return-value transfer-ownership="none">
2568         <type name="gshort" c:type="gshort"/>
2569       </return-value>
2570       <parameters>
2571         <parameter name="in" transfer-ownership="none">
2572           <type name="gshort" c:type="gshort"/>
2573         </parameter>
2574       </parameters>
2575     </function>
2576     <function name="test_simple_boxed_a_const_return"
2577               c:identifier="regress_test_simple_boxed_a_const_return"
2578               moved-to="TestSimpleBoxedA.const_return">
2579       <return-value transfer-ownership="none">
2580         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
2581       </return-value>
2582     </function>
2583     <function name="test_simple_callback"
2584               c:identifier="regress_test_simple_callback">
2585       <return-value transfer-ownership="none">
2586         <type name="none" c:type="void"/>
2587       </return-value>
2588       <parameters>
2589         <parameter name="callback"
2590                    transfer-ownership="none"
2591                    allow-none="1"
2592                    scope="call">
2593           <type name="TestSimpleCallback" c:type="RegressTestSimpleCallback"/>
2594         </parameter>
2595       </parameters>
2596     </function>
2597     <function name="test_size" c:identifier="regress_test_size">
2598       <return-value transfer-ownership="none">
2599         <type name="gsize" c:type="gsize"/>
2600       </return-value>
2601       <parameters>
2602         <parameter name="in" transfer-ownership="none">
2603           <type name="gsize" c:type="gsize"/>
2604         </parameter>
2605       </parameters>
2606     </function>
2607     <function name="test_ssize" c:identifier="regress_test_ssize">
2608       <return-value transfer-ownership="none">
2609         <type name="gssize" c:type="gssize"/>
2610       </return-value>
2611       <parameters>
2612         <parameter name="in" transfer-ownership="none">
2613           <type name="gssize" c:type="gssize"/>
2614         </parameter>
2615       </parameters>
2616     </function>
2617     <function name="test_strv_in" c:identifier="regress_test_strv_in">
2618       <return-value transfer-ownership="none">
2619         <type name="gboolean" c:type="gboolean"/>
2620       </return-value>
2621       <parameters>
2622         <parameter name="arr" transfer-ownership="none">
2623           <array c:type="char**">
2624             <type name="utf8" c:type="char*"/>
2625           </array>
2626         </parameter>
2627       </parameters>
2628     </function>
2629     <function name="test_strv_in_gvalue"
2630               c:identifier="regress_test_strv_in_gvalue">
2631       <return-value transfer-ownership="full">
2632         <type name="GObject.Value" c:type="GValue*"/>
2633       </return-value>
2634     </function>
2635     <function name="test_strv_out" c:identifier="regress_test_strv_out">
2636       <return-value transfer-ownership="full">
2637         <array c:type="char**">
2638           <type name="utf8"/>
2639         </array>
2640       </return-value>
2641     </function>
2642     <function name="test_strv_out_c" c:identifier="regress_test_strv_out_c">
2643       <return-value transfer-ownership="none">
2644         <array c:type="char**">
2645           <type name="utf8"/>
2646         </array>
2647       </return-value>
2648     </function>
2649     <function name="test_strv_out_container"
2650               c:identifier="regress_test_strv_out_container">
2651       <return-value transfer-ownership="container">
2652         <array c:type="char**">
2653           <type name="utf8"/>
2654         </array>
2655       </return-value>
2656     </function>
2657     <function name="test_strv_outarg" c:identifier="regress_test_strv_outarg">
2658       <return-value transfer-ownership="none">
2659         <type name="none" c:type="void"/>
2660       </return-value>
2661       <parameters>
2662         <parameter name="retp"
2663                    direction="out"
2664                    caller-allocates="0"
2665                    transfer-ownership="container">
2666           <array c:type="char***">
2667             <type name="utf8" c:type="char**"/>
2668           </array>
2669         </parameter>
2670       </parameters>
2671     </function>
2672     <function name="test_timet" c:identifier="regress_test_timet">
2673       <return-value transfer-ownership="none">
2674         <type name="glong" c:type="time_t"/>
2675       </return-value>
2676       <parameters>
2677         <parameter name="in" transfer-ownership="none">
2678           <type name="glong" c:type="time_t"/>
2679         </parameter>
2680       </parameters>
2681     </function>
2682     <function name="test_torture_signature_0"
2683               c:identifier="regress_test_torture_signature_0">
2684       <return-value transfer-ownership="none">
2685         <type name="none" c:type="void"/>
2686       </return-value>
2687       <parameters>
2688         <parameter name="x" transfer-ownership="none">
2689           <type name="gint" c:type="int"/>
2690         </parameter>
2691         <parameter name="y"
2692                    direction="out"
2693                    caller-allocates="0"
2694                    transfer-ownership="full">
2695           <type name="gdouble" c:type="double*"/>
2696         </parameter>
2697         <parameter name="z"
2698                    direction="out"
2699                    caller-allocates="0"
2700                    transfer-ownership="full">
2701           <type name="gint" c:type="int*"/>
2702         </parameter>
2703         <parameter name="foo" transfer-ownership="none">
2704           <type name="utf8" c:type="char*"/>
2705         </parameter>
2706         <parameter name="q"
2707                    direction="out"
2708                    caller-allocates="0"
2709                    transfer-ownership="full">
2710           <type name="gint" c:type="int*"/>
2711         </parameter>
2712         <parameter name="m" transfer-ownership="none">
2713           <type name="guint" c:type="guint"/>
2714         </parameter>
2715       </parameters>
2716     </function>
2717     <function name="test_torture_signature_1"
2718               c:identifier="regress_test_torture_signature_1"
2719               throws="1">
2720       <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
2721       <return-value transfer-ownership="none">
2722         <type name="gboolean" c:type="gboolean"/>
2723       </return-value>
2724       <parameters>
2725         <parameter name="x" transfer-ownership="none">
2726           <type name="gint" c:type="int"/>
2727         </parameter>
2728         <parameter name="y"
2729                    direction="out"
2730                    caller-allocates="0"
2731                    transfer-ownership="full">
2732           <type name="gdouble" c:type="double*"/>
2733         </parameter>
2734         <parameter name="z"
2735                    direction="out"
2736                    caller-allocates="0"
2737                    transfer-ownership="full">
2738           <type name="gint" c:type="int*"/>
2739         </parameter>
2740         <parameter name="foo" transfer-ownership="none">
2741           <type name="utf8" c:type="char*"/>
2742         </parameter>
2743         <parameter name="q"
2744                    direction="out"
2745                    caller-allocates="0"
2746                    transfer-ownership="full">
2747           <type name="gint" c:type="int*"/>
2748         </parameter>
2749         <parameter name="m" transfer-ownership="none">
2750           <type name="guint" c:type="guint"/>
2751         </parameter>
2752       </parameters>
2753     </function>
2754     <function name="test_torture_signature_2"
2755               c:identifier="regress_test_torture_signature_2">
2756       <return-value transfer-ownership="none">
2757         <type name="none" c:type="void"/>
2758       </return-value>
2759       <parameters>
2760         <parameter name="x" transfer-ownership="none">
2761           <type name="gint" c:type="int"/>
2762         </parameter>
2763         <parameter name="callback"
2764                    transfer-ownership="none"
2765                    scope="notified"
2766                    closure="2"
2767                    destroy="3">
2768           <type name="TestCallbackUserData"
2769                 c:type="RegressTestCallbackUserData"/>
2770         </parameter>
2771         <parameter name="user_data" transfer-ownership="none">
2772           <type name="gpointer" c:type="gpointer"/>
2773         </parameter>
2774         <parameter name="notify" transfer-ownership="none" scope="async">
2775           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
2776         </parameter>
2777         <parameter name="y"
2778                    direction="out"
2779                    caller-allocates="0"
2780                    transfer-ownership="full">
2781           <type name="gdouble" c:type="double*"/>
2782         </parameter>
2783         <parameter name="z"
2784                    direction="out"
2785                    caller-allocates="0"
2786                    transfer-ownership="full">
2787           <type name="gint" c:type="int*"/>
2788         </parameter>
2789         <parameter name="foo" transfer-ownership="none">
2790           <type name="utf8" c:type="char*"/>
2791         </parameter>
2792         <parameter name="q"
2793                    direction="out"
2794                    caller-allocates="0"
2795                    transfer-ownership="full">
2796           <type name="gint" c:type="int*"/>
2797         </parameter>
2798         <parameter name="m" transfer-ownership="none">
2799           <type name="guint" c:type="guint"/>
2800         </parameter>
2801       </parameters>
2802     </function>
2803     <function name="test_uint" c:identifier="regress_test_uint">
2804       <return-value transfer-ownership="none">
2805         <type name="guint" c:type="guint"/>
2806       </return-value>
2807       <parameters>
2808         <parameter name="in" transfer-ownership="none">
2809           <type name="guint" c:type="guint"/>
2810         </parameter>
2811       </parameters>
2812     </function>
2813     <function name="test_uint16" c:identifier="regress_test_uint16">
2814       <return-value transfer-ownership="none">
2815         <type name="guint16" c:type="guint16"/>
2816       </return-value>
2817       <parameters>
2818         <parameter name="in" transfer-ownership="none">
2819           <type name="guint16" c:type="guint16"/>
2820         </parameter>
2821       </parameters>
2822     </function>
2823     <function name="test_uint32" c:identifier="regress_test_uint32">
2824       <return-value transfer-ownership="none">
2825         <type name="guint32" c:type="guint32"/>
2826       </return-value>
2827       <parameters>
2828         <parameter name="in" transfer-ownership="none">
2829           <type name="guint32" c:type="guint32"/>
2830         </parameter>
2831       </parameters>
2832     </function>
2833     <function name="test_uint64" c:identifier="regress_test_uint64">
2834       <return-value transfer-ownership="none">
2835         <type name="guint64" c:type="guint64"/>
2836       </return-value>
2837       <parameters>
2838         <parameter name="in" transfer-ownership="none">
2839           <type name="guint64" c:type="guint64"/>
2840         </parameter>
2841       </parameters>
2842     </function>
2843     <function name="test_uint8" c:identifier="regress_test_uint8">
2844       <return-value transfer-ownership="none">
2845         <type name="guint8" c:type="guint8"/>
2846       </return-value>
2847       <parameters>
2848         <parameter name="in" transfer-ownership="none">
2849           <type name="guint8" c:type="guint8"/>
2850         </parameter>
2851       </parameters>
2852     </function>
2853     <function name="test_ulong" c:identifier="regress_test_ulong">
2854       <return-value transfer-ownership="none">
2855         <type name="gulong" c:type="gulong"/>
2856       </return-value>
2857       <parameters>
2858         <parameter name="in" transfer-ownership="none">
2859           <type name="gulong" c:type="gulong"/>
2860         </parameter>
2861       </parameters>
2862     </function>
2863     <function name="test_unichar" c:identifier="regress_test_unichar">
2864       <return-value transfer-ownership="none">
2865         <type name="gunichar" c:type="gunichar"/>
2866       </return-value>
2867       <parameters>
2868         <parameter name="in" transfer-ownership="none">
2869           <type name="gunichar" c:type="gunichar"/>
2870         </parameter>
2871       </parameters>
2872     </function>
2873     <function name="test_unsigned_enum_param"
2874               c:identifier="regress_test_unsigned_enum_param">
2875       <return-value transfer-ownership="none">
2876         <type name="utf8" c:type="gchar*"/>
2877       </return-value>
2878       <parameters>
2879         <parameter name="e" transfer-ownership="none">
2880           <type name="TestEnumUnsigned" c:type="RegressTestEnumUnsigned"/>
2881         </parameter>
2882       </parameters>
2883     </function>
2884     <function name="test_ushort" c:identifier="regress_test_ushort">
2885       <return-value transfer-ownership="none">
2886         <type name="gushort" c:type="gushort"/>
2887       </return-value>
2888       <parameters>
2889         <parameter name="in" transfer-ownership="none">
2890           <type name="gushort" c:type="gushort"/>
2891         </parameter>
2892       </parameters>
2893     </function>
2894     <function name="test_utf8_const_in"
2895               c:identifier="regress_test_utf8_const_in">
2896       <return-value transfer-ownership="none">
2897         <type name="none" c:type="void"/>
2898       </return-value>
2899       <parameters>
2900         <parameter name="in" transfer-ownership="none">
2901           <type name="utf8" c:type="char*"/>
2902         </parameter>
2903       </parameters>
2904     </function>
2905     <function name="test_utf8_const_return"
2906               c:identifier="regress_test_utf8_const_return">
2907       <return-value transfer-ownership="none">
2908         <doc xml:whitespace="preserve">UTF-8 string</doc>
2909         <type name="utf8" c:type="char*"/>
2910       </return-value>
2911     </function>
2912     <function name="test_utf8_inout" c:identifier="regress_test_utf8_inout">
2913       <return-value transfer-ownership="none">
2914         <type name="none" c:type="void"/>
2915       </return-value>
2916       <parameters>
2917         <parameter name="inout"
2918                    direction="inout"
2919                    caller-allocates="0"
2920                    transfer-ownership="full">
2921           <type name="utf8" c:type="char**"/>
2922         </parameter>
2923       </parameters>
2924     </function>
2925     <function name="test_utf8_nonconst_return"
2926               c:identifier="regress_test_utf8_nonconst_return">
2927       <return-value transfer-ownership="full">
2928         <doc xml:whitespace="preserve">UTF-8 string</doc>
2929         <type name="utf8" c:type="char*"/>
2930       </return-value>
2931     </function>
2932     <function name="test_utf8_null_in"
2933               c:identifier="regress_test_utf8_null_in">
2934       <return-value transfer-ownership="none">
2935         <type name="none" c:type="void"/>
2936       </return-value>
2937       <parameters>
2938         <parameter name="in" transfer-ownership="none" allow-none="1">
2939           <type name="utf8" c:type="char*"/>
2940         </parameter>
2941       </parameters>
2942     </function>
2943     <function name="test_utf8_null_out"
2944               c:identifier="regress_test_utf8_null_out">
2945       <return-value transfer-ownership="none">
2946         <type name="none" c:type="void"/>
2947       </return-value>
2948       <parameters>
2949         <parameter name="char_out"
2950                    direction="out"
2951                    caller-allocates="0"
2952                    transfer-ownership="full"
2953                    allow-none="1">
2954           <type name="utf8" c:type="char**"/>
2955         </parameter>
2956       </parameters>
2957     </function>
2958     <function name="test_utf8_out" c:identifier="regress_test_utf8_out">
2959       <return-value transfer-ownership="none">
2960         <type name="none" c:type="void"/>
2961       </return-value>
2962       <parameters>
2963         <parameter name="out"
2964                    direction="out"
2965                    caller-allocates="0"
2966                    transfer-ownership="full">
2967           <type name="utf8" c:type="char**"/>
2968         </parameter>
2969       </parameters>
2970     </function>
2971     <function name="test_utf8_out_nonconst_return"
2972               c:identifier="regress_test_utf8_out_nonconst_return">
2973       <return-value transfer-ownership="full">
2974         <doc xml:whitespace="preserve">a copy of "first"</doc>
2975         <type name="utf8" c:type="char*"/>
2976       </return-value>
2977       <parameters>
2978         <parameter name="out"
2979                    direction="out"
2980                    caller-allocates="0"
2981                    transfer-ownership="full">
2982           <doc xml:whitespace="preserve">a copy of "second"</doc>
2983           <type name="utf8" c:type="char**"/>
2984         </parameter>
2985       </parameters>
2986     </function>
2987     <function name="test_utf8_out_out"
2988               c:identifier="regress_test_utf8_out_out">
2989       <return-value transfer-ownership="none">
2990         <type name="none" c:type="void"/>
2991       </return-value>
2992       <parameters>
2993         <parameter name="out0"
2994                    direction="out"
2995                    caller-allocates="0"
2996                    transfer-ownership="full">
2997           <doc xml:whitespace="preserve">a copy of "first"</doc>
2998           <type name="utf8" c:type="char**"/>
2999         </parameter>
3000         <parameter name="out1"
3001                    direction="out"
3002                    caller-allocates="0"
3003                    transfer-ownership="full">
3004           <doc xml:whitespace="preserve">a copy of "second"</doc>
3005           <type name="utf8" c:type="char**"/>
3006         </parameter>
3007       </parameters>
3008     </function>
3009     <function name="test_value_get_fundamental_object"
3010               c:identifier="regress_test_value_get_fundamental_object"
3011               introspectable="0">
3012       <return-value>
3013         <type name="TestFundamentalObject"
3014               c:type="RegressTestFundamentalObject*"/>
3015       </return-value>
3016       <parameters>
3017         <parameter name="value" transfer-ownership="none">
3018           <type name="GObject.Value" c:type="GValue*"/>
3019         </parameter>
3020       </parameters>
3021     </function>
3022     <function name="test_value_return"
3023               c:identifier="regress_test_value_return">
3024       <return-value transfer-ownership="none">
3025         <doc xml:whitespace="preserve">the int wrapped in a GValue.</doc>
3026         <type name="GObject.Value" c:type="GValue*"/>
3027       </return-value>
3028       <parameters>
3029         <parameter name="i" transfer-ownership="none">
3030           <doc xml:whitespace="preserve">an int</doc>
3031           <type name="gint" c:type="int"/>
3032         </parameter>
3033       </parameters>
3034     </function>
3035     <function name="test_value_set_fundamental_object"
3036               c:identifier="regress_test_value_set_fundamental_object"
3037               introspectable="0">
3038       <return-value transfer-ownership="none">
3039         <type name="none" c:type="void"/>
3040       </return-value>
3041       <parameters>
3042         <parameter name="value" transfer-ownership="none">
3043           <type name="GObject.Value" c:type="GValue*"/>
3044         </parameter>
3045         <parameter name="fundamental_object" transfer-ownership="none">
3046           <type name="TestFundamentalObject"
3047                 c:type="RegressTestFundamentalObject*"/>
3048         </parameter>
3049       </parameters>
3050     </function>
3051   </namespace>
3052 </repository>