Implement callbacks as part of struct fields. Fixes #557383
[gnome.gobject-introspection] / gir / Everything-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.0"
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   <package name="gobject-2.0"/>
12   <namespace name="Everything"
13              version="1.0"
14              shared-library="libgirepository-everything-1.0.so.1"
15              c:prefix="Everything">
16     <record name="TestBoxed"
17             c:type="TestBoxed"
18             glib:type-name="TestBoxed"
19             glib:get-type="test_boxed_get_type">
20       <field name="some_int8" writable="1">
21         <type name="int8" c:type="gint8"/>
22       </field>
23       <field name="nested_a" writable="1">
24         <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA"/>
25       </field>
26       <field name="priv" writable="1">
27         <type name="TestBoxedPrivate" c:type="TestBoxedPrivate*"/>
28       </field>
29       <constructor name="new" c:identifier="test_boxed_new">
30         <return-value transfer-ownership="full">
31           <type name="TestBoxed" c:type="TestBoxed*"/>
32         </return-value>
33       </constructor>
34       <method name="copy" c:identifier="test_boxed_copy">
35         <return-value transfer-ownership="full">
36           <type name="TestBoxed" c:type="TestBoxed*"/>
37         </return-value>
38       </method>
39       <method name="equals" c:identifier="test_boxed_equals">
40         <return-value transfer-ownership="none">
41           <type name="boolean" c:type="gboolean"/>
42         </return-value>
43         <parameters>
44           <parameter name="other" transfer-ownership="none">
45             <type name="TestBoxed" c:type="TestBoxed*"/>
46           </parameter>
47         </parameters>
48       </method>
49     </record>
50     <record name="TestBoxedPrivate" c:type="TestBoxedPrivate">
51     </record>
52     <callback name="TestCallback" c:type="TestCallback">
53       <return-value transfer-ownership="none">
54         <type name="int" c:type="int"/>
55       </return-value>
56     </callback>
57     <callback name="TestCallbackUserData" c:type="TestCallbackUserData">
58       <return-value transfer-ownership="none">
59         <type name="int" c:type="int"/>
60       </return-value>
61       <parameters>
62         <parameter name="user_data" transfer-ownership="none" closure="0">
63           <type name="any" c:type="gpointer"/>
64         </parameter>
65       </parameters>
66     </callback>
67     <enumeration name="TestEnum"
68                  glib:type-name="TestEnum"
69                  glib:get-type="test_enum_get_type"
70                  c:type="TestEnum">
71       <member name="value1"
72               value="0"
73               c:identifier="TEST_VALUE1"
74               glib:nick="value1"/>
75       <member name="value2"
76               value="1"
77               c:identifier="TEST_VALUE2"
78               glib:nick="value2"/>
79       <member name="value3"
80               value="42"
81               c:identifier="TEST_VALUE3"
82               glib:nick="value3"/>
83     </enumeration>
84     <bitfield name="TestFlags"
85               glib:type-name="TestFlags"
86               glib:get-type="test_flags_get_type"
87               c:type="TestFlags">
88       <member name="flag1"
89               value="1"
90               c:identifier="TEST_FLAG1"
91               glib:nick="flag1"/>
92       <member name="flag2"
93               value="2"
94               c:identifier="TEST_FLAG2"
95               glib:nick="flag2"/>
96       <member name="flag3"
97               value="4"
98               c:identifier="TEST_FLAG3"
99               glib:nick="flag3"/>
100     </bitfield>
101     <interface name="TestInterface"
102                c:type="EverythingTestInterface"
103                glib:type-name="EverythingTestInterface"
104                glib:get-type="test_interface_get_type"
105                glib:type-struct="TestInterfaceIface">
106     </interface>
107     <record name="TestInterfaceIface"
108             c:type="TestInterfaceIface"
109             glib:is-gtype-struct-for="TestInterface">
110       <field name="base_iface">
111         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
112       </field>
113     </record>
114     <class name="TestObj"
115            c:type="TestObj"
116            parent="GObject.Object"
117            glib:type-name="TestObj"
118            glib:get-type="test_obj_get_type"
119            glib:type-struct="TestObjClass">
120       <constructor name="new_from_file"
121                    c:identifier="test_obj_new_from_file"
122                    throws="1">
123         <return-value transfer-ownership="full">
124           <type name="TestObj" c:type="TestObj*"/>
125         </return-value>
126         <parameters>
127           <parameter name="x" transfer-ownership="none">
128             <type name="utf8" c:type="char*"/>
129           </parameter>
130         </parameters>
131       </constructor>
132       <function name="static_method" c:identifier="test_obj_static_method">
133         <return-value transfer-ownership="none">
134           <type name="double" c:type="double"/>
135         </return-value>
136         <parameters>
137           <parameter name="x" transfer-ownership="none">
138             <type name="int" c:type="int"/>
139           </parameter>
140         </parameters>
141       </function>
142       <virtual-method name="matrix" invoker="do_matrix">
143         <return-value transfer-ownership="none">
144           <type name="int" c:type="int"/>
145         </return-value>
146         <parameters>
147           <parameter name="somestr" transfer-ownership="none">
148             <type name="utf8" c:type="char*"/>
149           </parameter>
150         </parameters>
151       </virtual-method>
152       <method name="set_bare" c:identifier="test_obj_set_bare">
153         <return-value transfer-ownership="none">
154           <type name="none" c:type="void"/>
155         </return-value>
156         <parameters>
157           <parameter name="bare" transfer-ownership="none" allow-none="1">
158             <type name="GObject.Object" c:type="GObject*"/>
159           </parameter>
160         </parameters>
161       </method>
162       <method name="instance_method" c:identifier="test_obj_instance_method">
163         <return-value transfer-ownership="none">
164           <type name="int" c:type="int"/>
165         </return-value>
166       </method>
167       <method name="do_matrix"
168               c:identifier="test_obj_do_matrix"
169               doc="This method is virtual.  Notably its name differs from the virtual
170 slot name, which makes it useful for testing bindings handle this
171 case.">
172         <return-value transfer-ownership="none">
173           <type name="int" c:type="int"/>
174         </return-value>
175         <parameters>
176           <parameter name="somestr" transfer-ownership="none">
177             <type name="utf8" c:type="char*"/>
178           </parameter>
179         </parameters>
180       </method>
181       <property name="bare" writable="1">
182         <type name="GObject.Object" c:type="GObject"/>
183       </property>
184       <property name="boxed" writable="1">
185         <type name="TestBoxed" c:type="TestBoxed"/>
186       </property>
187       <field name="parent_instance">
188         <type name="GObject.Object" c:type="GObject"/>
189       </field>
190       <field name="bare">
191         <type name="GObject.Object" c:type="GObject*"/>
192       </field>
193       <field name="boxed">
194         <type name="TestBoxed" c:type="TestBoxed*"/>
195       </field>
196       <glib:signal name="test">
197         <return-value transfer-ownership="full">
198           <type name="none" c:type="void"/>
199         </return-value>
200       </glib:signal>
201       <glib:signal name="test-with-static-scope-arg">
202         <return-value transfer-ownership="full">
203           <type name="none" c:type="void"/>
204         </return-value>
205         <parameters>
206           <parameter name="object" transfer-ownership="none">
207             <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA"/>
208           </parameter>
209         </parameters>
210       </glib:signal>
211     </class>
212     <record name="TestObjClass"
213             c:type="TestObjClass"
214             glib:is-gtype-struct-for="TestObj">
215       <field name="parent_class">
216         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
217       </field>
218       <field name="matrix">
219         <callback name="matrix" c:type="matrix">
220           <return-value transfer-ownership="none">
221             <type name="int" c:type="int"/>
222           </return-value>
223           <parameters>
224             <parameter name="obj" transfer-ownership="none">
225               <type name="TestObj" c:type="TestObj*"/>
226             </parameter>
227             <parameter name="somestr" transfer-ownership="none">
228               <type name="utf8" c:type="char*"/>
229             </parameter>
230           </parameters>
231         </callback>
232       </field>
233       <field name="test_signal">
234         <type name="uint" c:type="guint"/>
235       </field>
236       <field name="test_signal_with_static_scope_arg">
237         <type name="uint" c:type="guint"/>
238       </field>
239     </record>
240     <record name="TestSimpleBoxedA"
241             c:type="TestSimpleBoxedA"
242             glib:type-name="TestSimpleBoxedA"
243             glib:get-type="test_simple_boxed_a_get_type">
244       <field name="some_int" writable="1">
245         <type name="int" c:type="gint"/>
246       </field>
247       <field name="some_int8" writable="1">
248         <type name="int8" c:type="gint8"/>
249       </field>
250       <field name="some_double" writable="1">
251         <type name="double" c:type="gdouble"/>
252       </field>
253       <field name="some_enum" writable="1">
254         <type name="TestEnum" c:type="TestEnum"/>
255       </field>
256       <method name="copy" c:identifier="test_simple_boxed_a_copy">
257         <return-value transfer-ownership="full">
258           <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA*"/>
259         </return-value>
260       </method>
261       <method name="equals" c:identifier="test_simple_boxed_a_equals">
262         <return-value transfer-ownership="none">
263           <type name="boolean" c:type="gboolean"/>
264         </return-value>
265         <parameters>
266           <parameter name="other_a" transfer-ownership="none">
267             <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA*"/>
268           </parameter>
269         </parameters>
270       </method>
271     </record>
272     <record name="TestSimpleBoxedB"
273             c:type="TestSimpleBoxedB"
274             glib:type-name="TestSimpleBoxedB"
275             glib:get-type="test_simple_boxed_b_get_type">
276       <field name="some_int8" writable="1">
277         <type name="int8" c:type="gint8"/>
278       </field>
279       <field name="nested_a" writable="1">
280         <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA"/>
281       </field>
282       <method name="copy" c:identifier="test_simple_boxed_b_copy">
283         <return-value transfer-ownership="full">
284           <type name="TestSimpleBoxedB" c:type="TestSimpleBoxedB*"/>
285         </return-value>
286       </method>
287     </record>
288     <record name="TestStructA" c:type="TestStructA">
289       <field name="some_int" writable="1">
290         <type name="int" c:type="gint"/>
291       </field>
292       <field name="some_int8" writable="1">
293         <type name="int8" c:type="gint8"/>
294       </field>
295       <field name="some_double" writable="1">
296         <type name="double" c:type="gdouble"/>
297       </field>
298       <field name="some_enum" writable="1">
299         <type name="TestEnum" c:type="TestEnum"/>
300       </field>
301       <method name="clone"
302               c:identifier="test_struct_a_clone"
303               doc="Make a copy of a TestStructA">
304         <return-value transfer-ownership="none">
305           <type name="none" c:type="void"/>
306         </return-value>
307         <parameters>
308           <parameter name="a_out" transfer-ownership="none">
309             <type name="TestStructA" c:type="TestStructA*"/>
310           </parameter>
311         </parameters>
312       </method>
313     </record>
314     <record name="TestStructB" c:type="TestStructB">
315       <field name="some_int8" writable="1">
316         <type name="int8" c:type="gint8"/>
317       </field>
318       <field name="nested_a" writable="1">
319         <type name="TestStructA" c:type="TestStructA"/>
320       </field>
321       <method name="clone"
322               c:identifier="test_struct_b_clone"
323               doc="Make a copy of a TestStructB">
324         <return-value transfer-ownership="none">
325           <type name="none" c:type="void"/>
326         </return-value>
327         <parameters>
328           <parameter name="b_out" transfer-ownership="none">
329             <type name="TestStructB" c:type="TestStructB*"/>
330           </parameter>
331         </parameters>
332       </method>
333     </record>
334     <record name="TestStructC" c:type="_TestStructC">
335       <field name="another_int" writable="1">
336         <type name="int" c:type="gint"/>
337       </field>
338       <field name="obj" writable="1">
339         <type name="GObject.Object" c:type="GObject*"/>
340       </field>
341     </record>
342     <class name="TestSubObj"
343            c:type="TestSubObj"
344            parent="TestObj"
345            glib:type-name="TestSubObj"
346            glib:get-type="test_sub_obj_get_type"
347            glib:type-struct="TestSubObjClass">
348       <constructor name="new" c:identifier="test_sub_obj_new">
349         <return-value transfer-ownership="full">
350           <type name="TestSubObj" c:type="TestSubObj*"/>
351         </return-value>
352       </constructor>
353       <method name="unset_bare" c:identifier="test_sub_obj_unset_bare">
354         <return-value transfer-ownership="none">
355           <type name="none" c:type="void"/>
356         </return-value>
357       </method>
358       <method name="instance_method"
359               c:identifier="test_sub_obj_instance_method">
360         <return-value transfer-ownership="none">
361           <type name="int" c:type="int"/>
362         </return-value>
363       </method>
364       <field name="parent_instance">
365         <type name="TestObj" c:type="TestObj"/>
366       </field>
367     </class>
368     <record name="TestSubObjClass"
369             c:type="TestSubObjClass"
370             glib:is-gtype-struct-for="TestSubObj">
371       <field name="parent_class">
372         <type name="TestObjClass" c:type="TestObjClass"/>
373       </field>
374     </record>
375     <class name="TestWi8021x"
376            c:type="TestWi8021x"
377            parent="GObject.Object"
378            glib:type-name="TestWi8021x"
379            glib:get-type="test_wi_802_1x_get_type"
380            glib:type-struct="TestWi8021xClass">
381       <constructor name="new" c:identifier="test_wi_802_1x_new">
382         <return-value transfer-ownership="full">
383           <type name="TestWi8021x" c:type="TestWi8021x*"/>
384         </return-value>
385       </constructor>
386       <function name="static_method"
387                 c:identifier="test_wi_802_1x_static_method">
388         <return-value transfer-ownership="none">
389           <type name="int" c:type="int"/>
390         </return-value>
391         <parameters>
392           <parameter name="x" transfer-ownership="none">
393             <type name="int" c:type="int"/>
394           </parameter>
395         </parameters>
396       </function>
397       <method name="get_testbool" c:identifier="test_wi_802_1x_get_testbool">
398         <return-value transfer-ownership="none">
399           <type name="boolean" c:type="gboolean"/>
400         </return-value>
401       </method>
402       <method name="set_testbool" c:identifier="test_wi_802_1x_set_testbool">
403         <return-value transfer-ownership="none">
404           <type name="none" c:type="void"/>
405         </return-value>
406         <parameters>
407           <parameter name="v" transfer-ownership="none">
408             <type name="boolean" c:type="gboolean"/>
409           </parameter>
410         </parameters>
411       </method>
412       <property name="testbool" writable="1">
413         <type name="boolean" c:type="gboolean"/>
414       </property>
415       <field name="parent_instance">
416         <type name="GObject.Object" c:type="GObject"/>
417       </field>
418       <field name="testbool">
419         <type name="boolean" c:type="gboolean"/>
420       </field>
421     </class>
422     <record name="TestWi8021xClass"
423             c:type="TestWi8021xClass"
424             glib:is-gtype-struct-for="TestWi8021x">
425       <field name="parent_class">
426         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
427       </field>
428     </record>
429     <function name="test_array_fixed_size_int_in"
430               c:identifier="test_array_fixed_size_int_in">
431       <return-value transfer-ownership="none">
432         <type name="int" c:type="int"/>
433       </return-value>
434       <parameters>
435         <parameter name="ints"
436                    transfer-ownership="none"
437                    doc="a list of 5 integers">
438           <array c:type="int*" fixed-size="5">
439             <type name="int"/>
440           </array>
441         </parameter>
442       </parameters>
443     </function>
444     <function name="test_array_fixed_size_int_out"
445               c:identifier="test_array_fixed_size_int_out">
446       <return-value transfer-ownership="none">
447         <type name="none" c:type="void"/>
448       </return-value>
449       <parameters>
450         <parameter name="ints"
451                    direction="out"
452                    transfer-ownership="full"
453                    doc="a list of 5 integers ranging from 0 to 4">
454           <array c:type="int**" fixed-size="5">
455             <type name="int"/>
456           </array>
457         </parameter>
458       </parameters>
459     </function>
460     <function name="test_array_fixed_size_int_return"
461               c:identifier="test_array_fixed_size_int_return">
462       <return-value transfer-ownership="full"
463                     doc="a list of 5 integers ranging from 0 to 4">
464         <array c:type="int*" fixed-size="5">
465           <type name="int"/>
466         </array>
467       </return-value>
468     </function>
469     <function name="test_array_gint16_in" c:identifier="test_array_gint16_in">
470       <return-value transfer-ownership="none">
471         <type name="int" c:type="int"/>
472       </return-value>
473       <parameters>
474         <parameter name="n_ints" transfer-ownership="none">
475           <type name="int" c:type="int"/>
476         </parameter>
477         <parameter name="ints" transfer-ownership="none" doc="List of ints">
478           <array length="0" c:type="gint16*">
479             <type name="int16"/>
480           </array>
481         </parameter>
482       </parameters>
483     </function>
484     <function name="test_array_gint32_in" c:identifier="test_array_gint32_in">
485       <return-value transfer-ownership="none">
486         <type name="int32" c:type="gint32"/>
487       </return-value>
488       <parameters>
489         <parameter name="n_ints" transfer-ownership="none">
490           <type name="int" c:type="int"/>
491         </parameter>
492         <parameter name="ints" transfer-ownership="none" doc="List of ints">
493           <array length="0" c:type="gint32*">
494             <type name="int32"/>
495           </array>
496         </parameter>
497       </parameters>
498     </function>
499     <function name="test_array_gint64_in" c:identifier="test_array_gint64_in">
500       <return-value transfer-ownership="none">
501         <type name="int64" c:type="gint64"/>
502       </return-value>
503       <parameters>
504         <parameter name="n_ints" transfer-ownership="none">
505           <type name="int" c:type="int"/>
506         </parameter>
507         <parameter name="ints" transfer-ownership="none" doc="List of ints">
508           <array length="0" c:type="gint64*">
509             <type name="int64"/>
510           </array>
511         </parameter>
512       </parameters>
513     </function>
514     <function name="test_array_gint8_in" c:identifier="test_array_gint8_in">
515       <return-value transfer-ownership="none">
516         <type name="int" c:type="int"/>
517       </return-value>
518       <parameters>
519         <parameter name="n_ints" transfer-ownership="none">
520           <type name="int" c:type="int"/>
521         </parameter>
522         <parameter name="ints" transfer-ownership="none" doc="List of ints">
523           <array length="0" c:type="gint8*">
524             <type name="int8"/>
525           </array>
526         </parameter>
527       </parameters>
528     </function>
529     <function name="test_array_gtype_in" c:identifier="test_array_gtype_in">
530       <return-value transfer-ownership="full">
531         <type name="utf8" c:type="char*"/>
532       </return-value>
533       <parameters>
534         <parameter name="n_types" transfer-ownership="none">
535           <type name="int" c:type="int"/>
536         </parameter>
537         <parameter name="types" transfer-ownership="none" doc="List of types">
538           <array length="0" c:type="GType*">
539             <type name="GType"/>
540           </array>
541         </parameter>
542       </parameters>
543     </function>
544     <function name="test_array_int_full_out"
545               c:identifier="test_array_int_full_out">
546       <return-value transfer-ownership="full" doc="a new array of integers.">
547         <array length="0" c:type="int*">
548           <type name="int"/>
549         </array>
550       </return-value>
551       <parameters>
552         <parameter name="len" direction="out" transfer-ownership="full">
553           <type name="int" c:type="int*"/>
554         </parameter>
555       </parameters>
556     </function>
557     <function name="test_array_int_in" c:identifier="test_array_int_in">
558       <return-value transfer-ownership="none">
559         <type name="int" c:type="int"/>
560       </return-value>
561       <parameters>
562         <parameter name="n_ints" transfer-ownership="none">
563           <type name="int" c:type="int"/>
564         </parameter>
565         <parameter name="ints" transfer-ownership="none" doc="List of ints">
566           <array length="0" c:type="int*">
567             <type name="int"/>
568           </array>
569         </parameter>
570       </parameters>
571     </function>
572     <function name="test_array_int_in_take"
573               c:identifier="test_array_int_in_take">
574       <return-value transfer-ownership="none">
575         <type name="int" c:type="int"/>
576       </return-value>
577       <parameters>
578         <parameter name="n_ints" transfer-ownership="none">
579           <type name="int" c:type="int"/>
580         </parameter>
581         <parameter name="ints" transfer-ownership="full" doc="List of ints">
582           <array length="0" c:type="int*">
583             <type name="int"/>
584           </array>
585         </parameter>
586       </parameters>
587     </function>
588     <function name="test_array_int_inout" c:identifier="test_array_int_inout">
589       <return-value transfer-ownership="none">
590         <type name="none" c:type="void"/>
591       </return-value>
592       <parameters>
593         <parameter name="n_ints"
594                    direction="inout"
595                    transfer-ownership="full"
596                    doc="the length of @ints">
597           <type name="int" c:type="int*"/>
598         </parameter>
599         <parameter name="ints"
600                    direction="inout"
601                    transfer-ownership="full"
602                    doc="a list of integers whose items will be increased by 1, except the first that will be dropped">
603           <array length="0" c:type="int**">
604             <type name="int"/>
605           </array>
606         </parameter>
607       </parameters>
608     </function>
609     <function name="test_array_int_none_out"
610               c:identifier="test_array_int_none_out">
611       <return-value transfer-ownership="none"
612                     doc="a static array of integers.">
613         <array length="0" c:type="int*">
614           <type name="int"/>
615         </array>
616       </return-value>
617       <parameters>
618         <parameter name="len" direction="out" transfer-ownership="full">
619           <type name="int" c:type="int*"/>
620         </parameter>
621       </parameters>
622     </function>
623     <function name="test_array_int_out" c:identifier="test_array_int_out">
624       <return-value transfer-ownership="none">
625         <type name="none" c:type="void"/>
626       </return-value>
627       <parameters>
628         <parameter name="n_ints"
629                    direction="out"
630                    transfer-ownership="full"
631                    doc="the length of @ints">
632           <type name="int" c:type="int*"/>
633         </parameter>
634         <parameter name="ints"
635                    direction="out"
636                    transfer-ownership="full"
637                    doc="a list of 5 integers, from 0 to 4 in consecutive order">
638           <array length="0" c:type="int**">
639             <type name="int"/>
640           </array>
641         </parameter>
642       </parameters>
643     </function>
644     <function name="test_boolean" c:identifier="test_boolean">
645       <return-value transfer-ownership="none">
646         <type name="boolean" c:type="gboolean"/>
647       </return-value>
648       <parameters>
649         <parameter name="in" transfer-ownership="none">
650           <type name="boolean" c:type="gboolean"/>
651         </parameter>
652       </parameters>
653     </function>
654     <function name="test_callback" c:identifier="test_callback">
655       <return-value transfer-ownership="none">
656         <type name="int" c:type="int"/>
657       </return-value>
658       <parameters>
659         <parameter name="callback" transfer-ownership="none" scope="call">
660           <type name="TestCallback" c:type="TestCallback"/>
661         </parameter>
662       </parameters>
663     </function>
664     <function name="test_callback_destroy_notify"
665               c:identifier="test_callback_destroy_notify"
666               doc="Notified - callback persists until a DestroyNotify delegate
667 is invoked.">
668       <return-value transfer-ownership="none">
669         <type name="int" c:type="int"/>
670       </return-value>
671       <parameters>
672         <parameter name="callback"
673                    transfer-ownership="none"
674                    scope="notified"
675                    closure="1"
676                    destroy="2">
677           <type name="TestCallbackUserData" c:type="TestCallbackUserData"/>
678         </parameter>
679         <parameter name="user_data" transfer-ownership="none">
680           <type name="any" c:type="gpointer"/>
681         </parameter>
682         <parameter name="notify" transfer-ownership="none">
683           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
684         </parameter>
685       </parameters>
686     </function>
687     <function name="test_callback_infinite"
688               c:identifier="test_callback_infinite"
689               doc="Infinite - callback persists forever.">
690       <return-value transfer-ownership="none">
691         <type name="int" c:type="int"/>
692       </return-value>
693       <parameters>
694         <parameter name="callback"
695                    transfer-ownership="none"
696                    scope="infinite"
697                    closure="1">
698           <type name="TestCallbackUserData" c:type="TestCallbackUserData"/>
699         </parameter>
700         <parameter name="user_data" transfer-ownership="none">
701           <type name="any" c:type="gpointer"/>
702         </parameter>
703       </parameters>
704     </function>
705     <function name="test_callback_thaw_notifications"
706               c:identifier="test_callback_thaw_notifications"
707               doc="Invokes all callbacks installed by #test_callback_destroy_notify(),
708 adding up their return values, and removes them, invoking the
709 corresponding destroy notfications.">
710       <return-value transfer-ownership="none">
711         <type name="int" c:type="int"/>
712       </return-value>
713     </function>
714     <function name="test_callback_user_data"
715               c:identifier="test_callback_user_data"
716               doc="Call - callback parameter persists for the duration of the method
717 call and can be released on return.">
718       <return-value transfer-ownership="none">
719         <type name="int" c:type="int"/>
720       </return-value>
721       <parameters>
722         <parameter name="callback"
723                    transfer-ownership="none"
724                    scope="call"
725                    closure="1">
726           <type name="TestCallbackUserData" c:type="TestCallbackUserData"/>
727         </parameter>
728         <parameter name="user_data" transfer-ownership="none">
729           <type name="any" c:type="gpointer"/>
730         </parameter>
731       </parameters>
732     </function>
733     <function name="test_closure" c:identifier="test_closure">
734       <return-value transfer-ownership="none">
735         <type name="int" c:type="int"/>
736       </return-value>
737       <parameters>
738         <parameter name="closure" transfer-ownership="none">
739           <type name="GObject.Closure" c:type="GClosure*"/>
740         </parameter>
741       </parameters>
742     </function>
743     <function name="test_closure_one_arg" c:identifier="test_closure_one_arg">
744       <return-value transfer-ownership="none">
745         <type name="int" c:type="int"/>
746       </return-value>
747       <parameters>
748         <parameter name="closure" transfer-ownership="none">
749           <type name="GObject.Closure" c:type="GClosure*"/>
750         </parameter>
751         <parameter name="arg" transfer-ownership="none">
752           <type name="int" c:type="int"/>
753         </parameter>
754       </parameters>
755     </function>
756     <function name="test_double" c:identifier="test_double">
757       <return-value transfer-ownership="none">
758         <type name="double" c:type="gdouble"/>
759       </return-value>
760       <parameters>
761         <parameter name="in" transfer-ownership="none">
762           <type name="double" c:type="gdouble"/>
763         </parameter>
764       </parameters>
765     </function>
766     <function name="test_enum_param" c:identifier="test_enum_param">
767       <return-value transfer-ownership="none">
768         <type name="utf8" c:type="gchar*"/>
769       </return-value>
770       <parameters>
771         <parameter name="e" transfer-ownership="none">
772           <type name="TestEnum" c:type="TestEnum"/>
773         </parameter>
774       </parameters>
775     </function>
776     <function name="test_filename_return" c:identifier="test_filename_return">
777       <return-value transfer-ownership="full" doc="list of strings">
778         <type name="GLib.SList" c:type="GSList*">
779           <type name="filename"/>
780         </type>
781       </return-value>
782     </function>
783     <function name="test_float" c:identifier="test_float">
784       <return-value transfer-ownership="none">
785         <type name="float" c:type="gfloat"/>
786       </return-value>
787       <parameters>
788         <parameter name="in" transfer-ownership="none">
789           <type name="float" c:type="gfloat"/>
790         </parameter>
791       </parameters>
792     </function>
793     <function name="test_ghash_container_in"
794               c:identifier="test_ghash_container_in">
795       <return-value transfer-ownership="none">
796         <type name="none" c:type="void"/>
797       </return-value>
798       <parameters>
799         <parameter name="in" transfer-ownership="container">
800           <type name="GLib.HashTable" c:type="GHashTable*">
801             <type name="utf8"/>
802             <type name="utf8"/>
803           </type>
804         </parameter>
805       </parameters>
806     </function>
807     <function name="test_ghash_container_return"
808               c:identifier="test_ghash_container_return">
809       <return-value transfer-ownership="container">
810         <type name="GLib.HashTable" c:type="GHashTable*">
811           <type name="utf8"/>
812           <type name="utf8"/>
813         </type>
814       </return-value>
815     </function>
816     <function name="test_ghash_everything_in"
817               c:identifier="test_ghash_everything_in">
818       <return-value transfer-ownership="none">
819         <type name="none" c:type="void"/>
820       </return-value>
821       <parameters>
822         <parameter name="in" transfer-ownership="full">
823           <type name="GLib.HashTable" c:type="GHashTable*">
824             <type name="utf8"/>
825             <type name="utf8"/>
826           </type>
827         </parameter>
828       </parameters>
829     </function>
830     <function name="test_ghash_everything_return"
831               c:identifier="test_ghash_everything_return">
832       <return-value transfer-ownership="full">
833         <type name="GLib.HashTable" c:type="GHashTable*">
834           <type name="utf8"/>
835           <type name="utf8"/>
836         </type>
837       </return-value>
838     </function>
839     <function name="test_ghash_free" c:identifier="test_ghash_free">
840       <return-value transfer-ownership="none">
841         <type name="none" c:type="void"/>
842       </return-value>
843       <parameters>
844         <parameter name="in" transfer-ownership="full">
845           <type name="GLib.HashTable" c:type="GHashTable*">
846             <type name="utf8"/>
847             <type name="utf8"/>
848           </type>
849         </parameter>
850       </parameters>
851     </function>
852     <function name="test_ghash_nested_everything_return"
853               c:identifier="test_ghash_nested_everything_return"
854               doc="Specify nested parameterized types directly with the (type ) annotation.">
855       <return-value transfer-ownership="full">
856         <type name="GLib.HashTable" c:type="GHashTable*">
857           <type name="utf8"/>
858           <type name="GLib.HashTable">
859             <type name="utf8"/>
860             <type name="utf8"/>
861           </type>
862         </type>
863       </return-value>
864     </function>
865     <function name="test_ghash_nested_everything_return2"
866               c:identifier="test_ghash_nested_everything_return2"
867               doc="element-type annotation.">
868       <return-value transfer-ownership="full">
869         <type name="GLib.HashTable" c:type="GHashTable*">
870           <type name="utf8"/>
871           <type name="GLib.HashTable">
872             <type name="utf8"/>
873             <type name="utf8"/>
874           </type>
875         </type>
876       </return-value>
877     </function>
878     <function name="test_ghash_nothing_in"
879               c:identifier="test_ghash_nothing_in">
880       <return-value transfer-ownership="none">
881         <type name="none" c:type="void"/>
882       </return-value>
883       <parameters>
884         <parameter name="in" transfer-ownership="none">
885           <type name="GLib.HashTable" c:type="GHashTable*">
886             <type name="utf8"/>
887             <type name="utf8"/>
888           </type>
889         </parameter>
890       </parameters>
891     </function>
892     <function name="test_ghash_nothing_in2"
893               c:identifier="test_ghash_nothing_in2">
894       <return-value transfer-ownership="none">
895         <type name="none" c:type="void"/>
896       </return-value>
897       <parameters>
898         <parameter name="in" transfer-ownership="none">
899           <type name="GLib.HashTable" c:type="GHashTable*">
900             <type name="utf8"/>
901             <type name="utf8"/>
902           </type>
903         </parameter>
904       </parameters>
905     </function>
906     <function name="test_ghash_nothing_return"
907               c:identifier="test_ghash_nothing_return">
908       <return-value transfer-ownership="none">
909         <type name="GLib.HashTable" c:type="GHashTable*">
910           <type name="utf8"/>
911           <type name="utf8"/>
912         </type>
913       </return-value>
914     </function>
915     <function name="test_ghash_nothing_return2"
916               c:identifier="test_ghash_nothing_return2">
917       <return-value transfer-ownership="none">
918         <type name="GLib.HashTable" c:type="GHashTable*">
919           <type name="utf8"/>
920           <type name="utf8"/>
921         </type>
922       </return-value>
923     </function>
924     <function name="test_ghash_null_in" c:identifier="test_ghash_null_in">
925       <return-value transfer-ownership="none">
926         <type name="none" c:type="void"/>
927       </return-value>
928       <parameters>
929         <parameter name="in" transfer-ownership="none" allow-none="1">
930           <type name="GLib.HashTable" c:type="GHashTable*">
931             <type name="utf8"/>
932             <type name="utf8"/>
933           </type>
934         </parameter>
935       </parameters>
936     </function>
937     <function name="test_ghash_null_return"
938               c:identifier="test_ghash_null_return">
939       <return-value transfer-ownership="none">
940         <type name="GLib.HashTable" c:type="GHashTable*">
941           <type name="utf8"/>
942           <type name="utf8"/>
943         </type>
944       </return-value>
945     </function>
946     <function name="test_glist_container_in"
947               c:identifier="test_glist_container_in">
948       <return-value transfer-ownership="none">
949         <type name="none" c:type="void"/>
950       </return-value>
951       <parameters>
952         <parameter name="in" transfer-ownership="container">
953           <type name="GLib.List" c:type="GList*">
954             <type name="utf8"/>
955           </type>
956         </parameter>
957       </parameters>
958     </function>
959     <function name="test_glist_container_return"
960               c:identifier="test_glist_container_return">
961       <return-value transfer-ownership="container">
962         <type name="GLib.List" c:type="GList*">
963           <type name="utf8"/>
964         </type>
965       </return-value>
966     </function>
967     <function name="test_glist_everything_in"
968               c:identifier="test_glist_everything_in">
969       <return-value transfer-ownership="none">
970         <type name="none" c:type="void"/>
971       </return-value>
972       <parameters>
973         <parameter name="in" transfer-ownership="full">
974           <type name="GLib.List" c:type="GList*">
975             <type name="utf8"/>
976           </type>
977         </parameter>
978       </parameters>
979     </function>
980     <function name="test_glist_everything_return"
981               c:identifier="test_glist_everything_return">
982       <return-value transfer-ownership="full">
983         <type name="GLib.List" c:type="GList*">
984           <type name="utf8"/>
985         </type>
986       </return-value>
987     </function>
988     <function name="test_glist_free" c:identifier="test_glist_free">
989       <return-value transfer-ownership="none">
990         <type name="none" c:type="void"/>
991       </return-value>
992       <parameters>
993         <parameter name="in" transfer-ownership="full">
994           <type name="GLib.List" c:type="GList*">
995             <type name="utf8"/>
996           </type>
997         </parameter>
998       </parameters>
999     </function>
1000     <function name="test_glist_nothing_in"
1001               c:identifier="test_glist_nothing_in">
1002       <return-value transfer-ownership="none">
1003         <type name="none" c:type="void"/>
1004       </return-value>
1005       <parameters>
1006         <parameter name="in" transfer-ownership="none">
1007           <type name="GLib.List" c:type="GList*">
1008             <type name="utf8"/>
1009           </type>
1010         </parameter>
1011       </parameters>
1012     </function>
1013     <function name="test_glist_nothing_in2"
1014               c:identifier="test_glist_nothing_in2">
1015       <return-value transfer-ownership="none">
1016         <type name="none" c:type="void"/>
1017       </return-value>
1018       <parameters>
1019         <parameter name="in" transfer-ownership="none">
1020           <type name="GLib.List" c:type="GList*">
1021             <type name="utf8"/>
1022           </type>
1023         </parameter>
1024       </parameters>
1025     </function>
1026     <function name="test_glist_nothing_return"
1027               c:identifier="test_glist_nothing_return">
1028       <return-value transfer-ownership="none">
1029         <type name="GLib.List" c:type="GList*">
1030           <type name="utf8"/>
1031         </type>
1032       </return-value>
1033     </function>
1034     <function name="test_glist_nothing_return2"
1035               c:identifier="test_glist_nothing_return2">
1036       <return-value transfer-ownership="none">
1037         <type name="GLib.List" c:type="GList*">
1038           <type name="utf8"/>
1039         </type>
1040       </return-value>
1041     </function>
1042     <function name="test_gslist_container_in"
1043               c:identifier="test_gslist_container_in">
1044       <return-value transfer-ownership="none">
1045         <type name="none" c:type="void"/>
1046       </return-value>
1047       <parameters>
1048         <parameter name="in" transfer-ownership="container">
1049           <type name="GLib.SList" c:type="GSList*">
1050             <type name="utf8"/>
1051           </type>
1052         </parameter>
1053       </parameters>
1054     </function>
1055     <function name="test_gslist_container_return"
1056               c:identifier="test_gslist_container_return">
1057       <return-value transfer-ownership="container">
1058         <type name="GLib.SList" c:type="GSList*">
1059           <type name="utf8"/>
1060         </type>
1061       </return-value>
1062     </function>
1063     <function name="test_gslist_everything_in"
1064               c:identifier="test_gslist_everything_in">
1065       <return-value transfer-ownership="none">
1066         <type name="none" c:type="void"/>
1067       </return-value>
1068       <parameters>
1069         <parameter name="in" transfer-ownership="full">
1070           <type name="GLib.SList" c:type="GSList*">
1071             <type name="utf8"/>
1072           </type>
1073         </parameter>
1074       </parameters>
1075     </function>
1076     <function name="test_gslist_everything_return"
1077               c:identifier="test_gslist_everything_return">
1078       <return-value transfer-ownership="full">
1079         <type name="GLib.SList" c:type="GSList*">
1080           <type name="utf8"/>
1081         </type>
1082       </return-value>
1083     </function>
1084     <function name="test_gslist_free" c:identifier="test_gslist_free">
1085       <return-value transfer-ownership="none">
1086         <type name="none" c:type="void"/>
1087       </return-value>
1088       <parameters>
1089         <parameter name="in" transfer-ownership="full">
1090           <type name="GLib.SList" c:type="GSList*">
1091             <type name="utf8"/>
1092           </type>
1093         </parameter>
1094       </parameters>
1095     </function>
1096     <function name="test_gslist_nothing_in"
1097               c:identifier="test_gslist_nothing_in">
1098       <return-value transfer-ownership="none">
1099         <type name="none" c:type="void"/>
1100       </return-value>
1101       <parameters>
1102         <parameter name="in" transfer-ownership="none">
1103           <type name="GLib.SList" c:type="GSList*">
1104             <type name="utf8"/>
1105           </type>
1106         </parameter>
1107       </parameters>
1108     </function>
1109     <function name="test_gslist_nothing_in2"
1110               c:identifier="test_gslist_nothing_in2">
1111       <return-value transfer-ownership="none">
1112         <type name="none" c:type="void"/>
1113       </return-value>
1114       <parameters>
1115         <parameter name="in" transfer-ownership="none">
1116           <type name="GLib.SList" c:type="GSList*">
1117             <type name="utf8"/>
1118           </type>
1119         </parameter>
1120       </parameters>
1121     </function>
1122     <function name="test_gslist_nothing_return"
1123               c:identifier="test_gslist_nothing_return">
1124       <return-value transfer-ownership="none">
1125         <type name="GLib.SList" c:type="GSList*">
1126           <type name="utf8"/>
1127         </type>
1128       </return-value>
1129     </function>
1130     <function name="test_gslist_nothing_return2"
1131               c:identifier="test_gslist_nothing_return2">
1132       <return-value transfer-ownership="none">
1133         <type name="GLib.SList" c:type="GSList*">
1134           <type name="utf8"/>
1135         </type>
1136       </return-value>
1137     </function>
1138     <function name="test_gtype" c:identifier="test_gtype">
1139       <return-value transfer-ownership="none">
1140         <type name="GType" c:type="GType"/>
1141       </return-value>
1142       <parameters>
1143         <parameter name="in" transfer-ownership="none">
1144           <type name="GType" c:type="GType"/>
1145         </parameter>
1146       </parameters>
1147     </function>
1148     <function name="test_int" c:identifier="test_int">
1149       <return-value transfer-ownership="none">
1150         <type name="int" c:type="gint"/>
1151       </return-value>
1152       <parameters>
1153         <parameter name="in" transfer-ownership="none">
1154           <type name="int" c:type="gint"/>
1155         </parameter>
1156       </parameters>
1157     </function>
1158     <function name="test_int16" c:identifier="test_int16">
1159       <return-value transfer-ownership="none">
1160         <type name="int16" c:type="gint16"/>
1161       </return-value>
1162       <parameters>
1163         <parameter name="in" transfer-ownership="none">
1164           <type name="int16" c:type="gint16"/>
1165         </parameter>
1166       </parameters>
1167     </function>
1168     <function name="test_int32" c:identifier="test_int32">
1169       <return-value transfer-ownership="none">
1170         <type name="int32" c:type="gint32"/>
1171       </return-value>
1172       <parameters>
1173         <parameter name="in" transfer-ownership="none">
1174           <type name="int32" c:type="gint32"/>
1175         </parameter>
1176       </parameters>
1177     </function>
1178     <function name="test_int64" c:identifier="test_int64">
1179       <return-value transfer-ownership="none">
1180         <type name="int64" c:type="gint64"/>
1181       </return-value>
1182       <parameters>
1183         <parameter name="in" transfer-ownership="none">
1184           <type name="int64" c:type="gint64"/>
1185         </parameter>
1186       </parameters>
1187     </function>
1188     <function name="test_int8" c:identifier="test_int8">
1189       <return-value transfer-ownership="none">
1190         <type name="int8" c:type="gint8"/>
1191       </return-value>
1192       <parameters>
1193         <parameter name="in" transfer-ownership="none">
1194           <type name="int8" c:type="gint8"/>
1195         </parameter>
1196       </parameters>
1197     </function>
1198     <function name="test_int_value_arg" c:identifier="test_int_value_arg">
1199       <return-value transfer-ownership="none">
1200         <type name="int" c:type="int"/>
1201       </return-value>
1202       <parameters>
1203         <parameter name="v" transfer-ownership="none">
1204           <type name="GObject.Value" c:type="GValue*"/>
1205         </parameter>
1206       </parameters>
1207     </function>
1208     <function name="test_long" c:identifier="test_long">
1209       <return-value transfer-ownership="none">
1210         <type name="long" c:type="glong"/>
1211       </return-value>
1212       <parameters>
1213         <parameter name="in" transfer-ownership="none">
1214           <type name="long" c:type="glong"/>
1215         </parameter>
1216       </parameters>
1217     </function>
1218     <function name="test_short" c:identifier="test_short">
1219       <return-value transfer-ownership="none">
1220         <type name="short" c:type="gshort"/>
1221       </return-value>
1222       <parameters>
1223         <parameter name="in" transfer-ownership="none">
1224           <type name="short" c:type="gshort"/>
1225         </parameter>
1226       </parameters>
1227     </function>
1228     <function name="test_simple_boxed_a_const_return"
1229               c:identifier="test_simple_boxed_a_const_return">
1230       <return-value transfer-ownership="none">
1231         <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA*"/>
1232       </return-value>
1233     </function>
1234     <function name="test_size" c:identifier="test_size">
1235       <return-value transfer-ownership="none">
1236         <type name="size_t" c:type="gsize"/>
1237       </return-value>
1238       <parameters>
1239         <parameter name="in" transfer-ownership="none">
1240           <type name="size_t" c:type="gsize"/>
1241         </parameter>
1242       </parameters>
1243     </function>
1244     <function name="test_ssize" c:identifier="test_ssize">
1245       <return-value transfer-ownership="none">
1246         <type name="ssize_t" c:type="gssize"/>
1247       </return-value>
1248       <parameters>
1249         <parameter name="in" transfer-ownership="none">
1250           <type name="ssize_t" c:type="gssize"/>
1251         </parameter>
1252       </parameters>
1253     </function>
1254     <function name="test_strv_in" c:identifier="test_strv_in">
1255       <return-value transfer-ownership="none">
1256         <type name="boolean" c:type="gboolean"/>
1257       </return-value>
1258       <parameters>
1259         <parameter name="arr" transfer-ownership="none">
1260           <array c:type="char**">
1261             <type name="utf8"/>
1262           </array>
1263         </parameter>
1264       </parameters>
1265     </function>
1266     <function name="test_strv_in_container"
1267               c:identifier="test_strv_in_container">
1268       <return-value transfer-ownership="none">
1269         <type name="boolean" c:type="gboolean"/>
1270       </return-value>
1271       <parameters>
1272         <parameter name="arr" transfer-ownership="container">
1273           <array c:type="char**">
1274             <type name="utf8"/>
1275           </array>
1276         </parameter>
1277       </parameters>
1278     </function>
1279     <function name="test_strv_out"
1280               c:identifier="test_strv_out"
1281               doc="No annotations here.  We want the default to Do The Right Thing.">
1282       <return-value transfer-ownership="full">
1283         <array c:type="char**">
1284           <type name="utf8"/>
1285         </array>
1286       </return-value>
1287     </function>
1288     <function name="test_strv_out_c"
1289               c:identifier="test_strv_out_c"
1290               doc="No annotations here.  We want the default to Do The Right Thing.">
1291       <return-value transfer-ownership="full">
1292         <array c:type="char**">
1293           <type name="utf8"/>
1294         </array>
1295       </return-value>
1296     </function>
1297     <function name="test_strv_out_container"
1298               c:identifier="test_strv_out_container">
1299       <return-value transfer-ownership="container">
1300         <array c:type="char**">
1301           <type name="utf8"/>
1302         </array>
1303       </return-value>
1304     </function>
1305     <function name="test_strv_outarg" c:identifier="test_strv_outarg">
1306       <return-value transfer-ownership="none">
1307         <type name="none" c:type="void"/>
1308       </return-value>
1309       <parameters>
1310         <parameter name="retp" direction="out" transfer-ownership="container">
1311           <array c:type="char***">
1312             <type name="utf8"/>
1313           </array>
1314         </parameter>
1315       </parameters>
1316     </function>
1317     <function name="test_timet" c:identifier="test_timet">
1318       <return-value transfer-ownership="none">
1319         <type name="time_t" c:type="time_t"/>
1320       </return-value>
1321       <parameters>
1322         <parameter name="in" transfer-ownership="none">
1323           <type name="time_t" c:type="time_t"/>
1324         </parameter>
1325       </parameters>
1326     </function>
1327     <function name="test_uint" c:identifier="test_uint">
1328       <return-value transfer-ownership="none">
1329         <type name="uint" c:type="guint"/>
1330       </return-value>
1331       <parameters>
1332         <parameter name="in" transfer-ownership="none">
1333           <type name="uint" c:type="guint"/>
1334         </parameter>
1335       </parameters>
1336     </function>
1337     <function name="test_uint16" c:identifier="test_uint16">
1338       <return-value transfer-ownership="none">
1339         <type name="uint16" c:type="guint16"/>
1340       </return-value>
1341       <parameters>
1342         <parameter name="in" transfer-ownership="none">
1343           <type name="uint16" c:type="guint16"/>
1344         </parameter>
1345       </parameters>
1346     </function>
1347     <function name="test_uint32" c:identifier="test_uint32">
1348       <return-value transfer-ownership="none">
1349         <type name="uint32" c:type="guint32"/>
1350       </return-value>
1351       <parameters>
1352         <parameter name="in" transfer-ownership="none">
1353           <type name="uint32" c:type="guint32"/>
1354         </parameter>
1355       </parameters>
1356     </function>
1357     <function name="test_uint64" c:identifier="test_uint64">
1358       <return-value transfer-ownership="none">
1359         <type name="uint64" c:type="guint64"/>
1360       </return-value>
1361       <parameters>
1362         <parameter name="in" transfer-ownership="none">
1363           <type name="uint64" c:type="guint64"/>
1364         </parameter>
1365       </parameters>
1366     </function>
1367     <function name="test_uint8" c:identifier="test_uint8">
1368       <return-value transfer-ownership="none">
1369         <type name="uint8" c:type="guint8"/>
1370       </return-value>
1371       <parameters>
1372         <parameter name="in" transfer-ownership="none">
1373           <type name="uint8" c:type="guint8"/>
1374         </parameter>
1375       </parameters>
1376     </function>
1377     <function name="test_ulong" c:identifier="test_ulong">
1378       <return-value transfer-ownership="none">
1379         <type name="ulong" c:type="gulong"/>
1380       </return-value>
1381       <parameters>
1382         <parameter name="in" transfer-ownership="none">
1383           <type name="ulong" c:type="gulong"/>
1384         </parameter>
1385       </parameters>
1386     </function>
1387     <function name="test_ushort" c:identifier="test_ushort">
1388       <return-value transfer-ownership="none">
1389         <type name="ushort" c:type="gushort"/>
1390       </return-value>
1391       <parameters>
1392         <parameter name="in" transfer-ownership="none">
1393           <type name="ushort" c:type="gushort"/>
1394         </parameter>
1395       </parameters>
1396     </function>
1397     <function name="test_utf8_const_in" c:identifier="test_utf8_const_in">
1398       <return-value transfer-ownership="none">
1399         <type name="none" c:type="void"/>
1400       </return-value>
1401       <parameters>
1402         <parameter name="in" transfer-ownership="none">
1403           <type name="utf8" c:type="char*"/>
1404         </parameter>
1405       </parameters>
1406     </function>
1407     <function name="test_utf8_const_return"
1408               c:identifier="test_utf8_const_return">
1409       <return-value transfer-ownership="none">
1410         <type name="utf8" c:type="char*"/>
1411       </return-value>
1412     </function>
1413     <function name="test_utf8_inout" c:identifier="test_utf8_inout">
1414       <return-value transfer-ownership="none">
1415         <type name="none" c:type="void"/>
1416       </return-value>
1417       <parameters>
1418         <parameter name="inout" direction="inout" transfer-ownership="full">
1419           <type name="utf8" c:type="char**"/>
1420         </parameter>
1421       </parameters>
1422     </function>
1423     <function name="test_utf8_nonconst_in"
1424               c:identifier="test_utf8_nonconst_in">
1425       <return-value transfer-ownership="none">
1426         <type name="none" c:type="void"/>
1427       </return-value>
1428       <parameters>
1429         <parameter name="in" transfer-ownership="full">
1430           <type name="utf8" c:type="char*"/>
1431         </parameter>
1432       </parameters>
1433     </function>
1434     <function name="test_utf8_nonconst_return"
1435               c:identifier="test_utf8_nonconst_return">
1436       <return-value transfer-ownership="full">
1437         <type name="utf8" c:type="char*"/>
1438       </return-value>
1439     </function>
1440     <function name="test_utf8_out" c:identifier="test_utf8_out">
1441       <return-value transfer-ownership="none">
1442         <type name="none" c:type="void"/>
1443       </return-value>
1444       <parameters>
1445         <parameter name="out" direction="out" transfer-ownership="full">
1446           <type name="utf8" c:type="char**"/>
1447         </parameter>
1448       </parameters>
1449     </function>
1450     <function name="test_utf8_out_nonconst_return"
1451               c:identifier="test_utf8_out_nonconst_return">
1452       <return-value transfer-ownership="full"
1453                     doc="a copy of &quot;first&quot;">
1454         <type name="utf8" c:type="char*"/>
1455       </return-value>
1456       <parameters>
1457         <parameter name="out"
1458                    direction="out"
1459                    transfer-ownership="full"
1460                    doc="a copy of &quot;second&quot;">
1461           <type name="utf8" c:type="char**"/>
1462         </parameter>
1463       </parameters>
1464     </function>
1465     <function name="test_utf8_out_out" c:identifier="test_utf8_out_out">
1466       <return-value transfer-ownership="none">
1467         <type name="none" c:type="void"/>
1468       </return-value>
1469       <parameters>
1470         <parameter name="out0"
1471                    direction="out"
1472                    transfer-ownership="full"
1473                    doc="a copy of &quot;first&quot;">
1474           <type name="utf8" c:type="char**"/>
1475         </parameter>
1476         <parameter name="out1"
1477                    direction="out"
1478                    transfer-ownership="full"
1479                    doc="a copy of &quot;second&quot;">
1480           <type name="utf8" c:type="char**"/>
1481         </parameter>
1482       </parameters>
1483     </function>
1484     <function name="test_value_return" c:identifier="test_value_return">
1485       <return-value transfer-ownership="none"
1486                     doc="the int wrapped in a GValue.">
1487         <type name="GObject.Value" c:type="GValue*"/>
1488       </return-value>
1489       <parameters>
1490         <parameter name="i" transfer-ownership="none">
1491           <type name="int" c:type="int"/>
1492         </parameter>
1493       </parameters>
1494     </function>
1495   </namespace>
1496 </repository>