[everything] Add some "torture" test functions with baroque signatures
[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="torture_signature_0"
168               c:identifier="test_obj_torture_signature_0">
169         <return-value transfer-ownership="none">
170           <type name="none" c:type="void"/>
171         </return-value>
172         <parameters>
173           <parameter name="x" transfer-ownership="none">
174             <type name="int" c:type="int"/>
175           </parameter>
176           <parameter name="y" direction="out" transfer-ownership="full">
177             <type name="double" c:type="double*"/>
178           </parameter>
179           <parameter name="z" direction="out" transfer-ownership="full">
180             <type name="int" c:type="int*"/>
181           </parameter>
182           <parameter name="foo" transfer-ownership="none">
183             <type name="utf8" c:type="char*"/>
184           </parameter>
185           <parameter name="q" direction="out" transfer-ownership="full">
186             <type name="int" c:type="int*"/>
187           </parameter>
188           <parameter name="m" transfer-ownership="none">
189             <type name="uint" c:type="guint"/>
190           </parameter>
191         </parameters>
192       </method>
193       <method name="torture_signature_1"
194               c:identifier="test_obj_torture_signature_1"
195               throws="1">
196         <return-value transfer-ownership="none">
197           <type name="boolean" c:type="gboolean"/>
198         </return-value>
199         <parameters>
200           <parameter name="x" transfer-ownership="none">
201             <type name="int" c:type="int"/>
202           </parameter>
203           <parameter name="y" direction="out" transfer-ownership="full">
204             <type name="double" c:type="double*"/>
205           </parameter>
206           <parameter name="z" direction="out" transfer-ownership="full">
207             <type name="int" c:type="int*"/>
208           </parameter>
209           <parameter name="foo" transfer-ownership="none">
210             <type name="utf8" c:type="char*"/>
211           </parameter>
212           <parameter name="q" direction="out" transfer-ownership="full">
213             <type name="int" c:type="int*"/>
214           </parameter>
215           <parameter name="m" transfer-ownership="none">
216             <type name="uint" c:type="guint"/>
217           </parameter>
218         </parameters>
219       </method>
220       <method name="do_matrix"
221               c:identifier="test_obj_do_matrix"
222               doc="This method is virtual.  Notably its name differs from the virtual
223 slot name, which makes it useful for testing bindings handle this
224 case.">
225         <return-value transfer-ownership="none">
226           <type name="int" c:type="int"/>
227         </return-value>
228         <parameters>
229           <parameter name="somestr" transfer-ownership="none">
230             <type name="utf8" c:type="char*"/>
231           </parameter>
232         </parameters>
233       </method>
234       <property name="bare" writable="1">
235         <type name="GObject.Object" c:type="GObject"/>
236       </property>
237       <property name="boxed" writable="1">
238         <type name="TestBoxed" c:type="TestBoxed"/>
239       </property>
240       <field name="parent_instance">
241         <type name="GObject.Object" c:type="GObject"/>
242       </field>
243       <field name="bare">
244         <type name="GObject.Object" c:type="GObject*"/>
245       </field>
246       <field name="boxed">
247         <type name="TestBoxed" c:type="TestBoxed*"/>
248       </field>
249       <glib:signal name="test">
250         <return-value transfer-ownership="full">
251           <type name="none" c:type="void"/>
252         </return-value>
253       </glib:signal>
254       <glib:signal name="test-with-static-scope-arg">
255         <return-value transfer-ownership="full">
256           <type name="none" c:type="void"/>
257         </return-value>
258         <parameters>
259           <parameter name="object" transfer-ownership="none">
260             <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA"/>
261           </parameter>
262         </parameters>
263       </glib:signal>
264     </class>
265     <record name="TestObjClass"
266             c:type="TestObjClass"
267             glib:is-gtype-struct-for="TestObj">
268       <field name="parent_class">
269         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
270       </field>
271       <field name="matrix">
272         <callback name="matrix" c:type="matrix">
273           <return-value transfer-ownership="none">
274             <type name="int" c:type="int"/>
275           </return-value>
276           <parameters>
277             <parameter name="obj" transfer-ownership="none">
278               <type name="TestObj" c:type="TestObj*"/>
279             </parameter>
280             <parameter name="somestr" transfer-ownership="none">
281               <type name="utf8" c:type="char*"/>
282             </parameter>
283           </parameters>
284         </callback>
285       </field>
286       <field name="test_signal">
287         <type name="uint" c:type="guint"/>
288       </field>
289       <field name="test_signal_with_static_scope_arg">
290         <type name="uint" c:type="guint"/>
291       </field>
292     </record>
293     <record name="TestSimpleBoxedA"
294             c:type="TestSimpleBoxedA"
295             glib:type-name="TestSimpleBoxedA"
296             glib:get-type="test_simple_boxed_a_get_type">
297       <field name="some_int" writable="1">
298         <type name="int" c:type="gint"/>
299       </field>
300       <field name="some_int8" writable="1">
301         <type name="int8" c:type="gint8"/>
302       </field>
303       <field name="some_double" writable="1">
304         <type name="double" c:type="gdouble"/>
305       </field>
306       <field name="some_enum" writable="1">
307         <type name="TestEnum" c:type="TestEnum"/>
308       </field>
309       <method name="copy" c:identifier="test_simple_boxed_a_copy">
310         <return-value transfer-ownership="full">
311           <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA*"/>
312         </return-value>
313       </method>
314       <method name="equals" c:identifier="test_simple_boxed_a_equals">
315         <return-value transfer-ownership="none">
316           <type name="boolean" c:type="gboolean"/>
317         </return-value>
318         <parameters>
319           <parameter name="other_a" transfer-ownership="none">
320             <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA*"/>
321           </parameter>
322         </parameters>
323       </method>
324     </record>
325     <record name="TestSimpleBoxedB"
326             c:type="TestSimpleBoxedB"
327             glib:type-name="TestSimpleBoxedB"
328             glib:get-type="test_simple_boxed_b_get_type">
329       <field name="some_int8" writable="1">
330         <type name="int8" c:type="gint8"/>
331       </field>
332       <field name="nested_a" writable="1">
333         <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA"/>
334       </field>
335       <method name="copy" c:identifier="test_simple_boxed_b_copy">
336         <return-value transfer-ownership="full">
337           <type name="TestSimpleBoxedB" c:type="TestSimpleBoxedB*"/>
338         </return-value>
339       </method>
340     </record>
341     <record name="TestStructA" c:type="TestStructA">
342       <field name="some_int" writable="1">
343         <type name="int" c:type="gint"/>
344       </field>
345       <field name="some_int8" writable="1">
346         <type name="int8" c:type="gint8"/>
347       </field>
348       <field name="some_double" writable="1">
349         <type name="double" c:type="gdouble"/>
350       </field>
351       <field name="some_enum" writable="1">
352         <type name="TestEnum" c:type="TestEnum"/>
353       </field>
354       <method name="clone"
355               c:identifier="test_struct_a_clone"
356               doc="Make a copy of a TestStructA">
357         <return-value transfer-ownership="none">
358           <type name="none" c:type="void"/>
359         </return-value>
360         <parameters>
361           <parameter name="a_out" transfer-ownership="none">
362             <type name="TestStructA" c:type="TestStructA*"/>
363           </parameter>
364         </parameters>
365       </method>
366     </record>
367     <record name="TestStructB" c:type="TestStructB">
368       <field name="some_int8" writable="1">
369         <type name="int8" c:type="gint8"/>
370       </field>
371       <field name="nested_a" writable="1">
372         <type name="TestStructA" c:type="TestStructA"/>
373       </field>
374       <method name="clone"
375               c:identifier="test_struct_b_clone"
376               doc="Make a copy of a TestStructB">
377         <return-value transfer-ownership="none">
378           <type name="none" c:type="void"/>
379         </return-value>
380         <parameters>
381           <parameter name="b_out" transfer-ownership="none">
382             <type name="TestStructB" c:type="TestStructB*"/>
383           </parameter>
384         </parameters>
385       </method>
386     </record>
387     <record name="TestStructC" c:type="_TestStructC">
388       <field name="another_int" writable="1">
389         <type name="int" c:type="gint"/>
390       </field>
391       <field name="obj" writable="1">
392         <type name="GObject.Object" c:type="GObject*"/>
393       </field>
394     </record>
395     <class name="TestSubObj"
396            c:type="TestSubObj"
397            parent="TestObj"
398            glib:type-name="TestSubObj"
399            glib:get-type="test_sub_obj_get_type"
400            glib:type-struct="TestSubObjClass">
401       <constructor name="new" c:identifier="test_sub_obj_new">
402         <return-value transfer-ownership="full">
403           <type name="TestSubObj" c:type="TestSubObj*"/>
404         </return-value>
405       </constructor>
406       <method name="unset_bare" c:identifier="test_sub_obj_unset_bare">
407         <return-value transfer-ownership="none">
408           <type name="none" c:type="void"/>
409         </return-value>
410       </method>
411       <method name="instance_method"
412               c:identifier="test_sub_obj_instance_method">
413         <return-value transfer-ownership="none">
414           <type name="int" c:type="int"/>
415         </return-value>
416       </method>
417       <field name="parent_instance">
418         <type name="TestObj" c:type="TestObj"/>
419       </field>
420     </class>
421     <record name="TestSubObjClass"
422             c:type="TestSubObjClass"
423             glib:is-gtype-struct-for="TestSubObj">
424       <field name="parent_class">
425         <type name="TestObjClass" c:type="TestObjClass"/>
426       </field>
427     </record>
428     <class name="TestWi8021x"
429            c:type="TestWi8021x"
430            parent="GObject.Object"
431            glib:type-name="TestWi8021x"
432            glib:get-type="test_wi_802_1x_get_type"
433            glib:type-struct="TestWi8021xClass">
434       <constructor name="new" c:identifier="test_wi_802_1x_new">
435         <return-value transfer-ownership="full">
436           <type name="TestWi8021x" c:type="TestWi8021x*"/>
437         </return-value>
438       </constructor>
439       <function name="static_method"
440                 c:identifier="test_wi_802_1x_static_method">
441         <return-value transfer-ownership="none">
442           <type name="int" c:type="int"/>
443         </return-value>
444         <parameters>
445           <parameter name="x" transfer-ownership="none">
446             <type name="int" c:type="int"/>
447           </parameter>
448         </parameters>
449       </function>
450       <method name="get_testbool" c:identifier="test_wi_802_1x_get_testbool">
451         <return-value transfer-ownership="none">
452           <type name="boolean" c:type="gboolean"/>
453         </return-value>
454       </method>
455       <method name="set_testbool" c:identifier="test_wi_802_1x_set_testbool">
456         <return-value transfer-ownership="none">
457           <type name="none" c:type="void"/>
458         </return-value>
459         <parameters>
460           <parameter name="v" transfer-ownership="none">
461             <type name="boolean" c:type="gboolean"/>
462           </parameter>
463         </parameters>
464       </method>
465       <property name="testbool" writable="1">
466         <type name="boolean" c:type="gboolean"/>
467       </property>
468       <field name="parent_instance">
469         <type name="GObject.Object" c:type="GObject"/>
470       </field>
471       <field name="testbool">
472         <type name="boolean" c:type="gboolean"/>
473       </field>
474     </class>
475     <record name="TestWi8021xClass"
476             c:type="TestWi8021xClass"
477             glib:is-gtype-struct-for="TestWi8021x">
478       <field name="parent_class">
479         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
480       </field>
481     </record>
482     <function name="test_array_fixed_size_int_in"
483               c:identifier="test_array_fixed_size_int_in">
484       <return-value transfer-ownership="none">
485         <type name="int" c:type="int"/>
486       </return-value>
487       <parameters>
488         <parameter name="ints"
489                    transfer-ownership="none"
490                    doc="a list of 5 integers">
491           <array c:type="int*" fixed-size="5">
492             <type name="int"/>
493           </array>
494         </parameter>
495       </parameters>
496     </function>
497     <function name="test_array_fixed_size_int_out"
498               c:identifier="test_array_fixed_size_int_out">
499       <return-value transfer-ownership="none">
500         <type name="none" c:type="void"/>
501       </return-value>
502       <parameters>
503         <parameter name="ints"
504                    direction="out"
505                    transfer-ownership="full"
506                    doc="a list of 5 integers ranging from 0 to 4">
507           <array c:type="int**" fixed-size="5">
508             <type name="int"/>
509           </array>
510         </parameter>
511       </parameters>
512     </function>
513     <function name="test_array_fixed_size_int_return"
514               c:identifier="test_array_fixed_size_int_return">
515       <return-value transfer-ownership="full"
516                     doc="a list of 5 integers ranging from 0 to 4">
517         <array c:type="int*" fixed-size="5">
518           <type name="int"/>
519         </array>
520       </return-value>
521     </function>
522     <function name="test_array_gint16_in" c:identifier="test_array_gint16_in">
523       <return-value transfer-ownership="none">
524         <type name="int" c:type="int"/>
525       </return-value>
526       <parameters>
527         <parameter name="n_ints" transfer-ownership="none">
528           <type name="int" c:type="int"/>
529         </parameter>
530         <parameter name="ints" transfer-ownership="none" doc="List of ints">
531           <array length="0" c:type="gint16*">
532             <type name="int16"/>
533           </array>
534         </parameter>
535       </parameters>
536     </function>
537     <function name="test_array_gint32_in" c:identifier="test_array_gint32_in">
538       <return-value transfer-ownership="none">
539         <type name="int32" c:type="gint32"/>
540       </return-value>
541       <parameters>
542         <parameter name="n_ints" transfer-ownership="none">
543           <type name="int" c:type="int"/>
544         </parameter>
545         <parameter name="ints" transfer-ownership="none" doc="List of ints">
546           <array length="0" c:type="gint32*">
547             <type name="int32"/>
548           </array>
549         </parameter>
550       </parameters>
551     </function>
552     <function name="test_array_gint64_in" c:identifier="test_array_gint64_in">
553       <return-value transfer-ownership="none">
554         <type name="int64" c:type="gint64"/>
555       </return-value>
556       <parameters>
557         <parameter name="n_ints" transfer-ownership="none">
558           <type name="int" c:type="int"/>
559         </parameter>
560         <parameter name="ints" transfer-ownership="none" doc="List of ints">
561           <array length="0" c:type="gint64*">
562             <type name="int64"/>
563           </array>
564         </parameter>
565       </parameters>
566     </function>
567     <function name="test_array_gint8_in" c:identifier="test_array_gint8_in">
568       <return-value transfer-ownership="none">
569         <type name="int" c:type="int"/>
570       </return-value>
571       <parameters>
572         <parameter name="n_ints" transfer-ownership="none">
573           <type name="int" c:type="int"/>
574         </parameter>
575         <parameter name="ints" transfer-ownership="none" doc="List of ints">
576           <array length="0" c:type="gint8*">
577             <type name="int8"/>
578           </array>
579         </parameter>
580       </parameters>
581     </function>
582     <function name="test_array_gtype_in" c:identifier="test_array_gtype_in">
583       <return-value transfer-ownership="full">
584         <type name="utf8" c:type="char*"/>
585       </return-value>
586       <parameters>
587         <parameter name="n_types" transfer-ownership="none">
588           <type name="int" c:type="int"/>
589         </parameter>
590         <parameter name="types" transfer-ownership="none" doc="List of types">
591           <array length="0" c:type="GType*">
592             <type name="GType"/>
593           </array>
594         </parameter>
595       </parameters>
596     </function>
597     <function name="test_array_int_full_out"
598               c:identifier="test_array_int_full_out">
599       <return-value transfer-ownership="full" doc="a new array of integers.">
600         <array length="0" c:type="int*">
601           <type name="int"/>
602         </array>
603       </return-value>
604       <parameters>
605         <parameter name="len" direction="out" transfer-ownership="full">
606           <type name="int" c:type="int*"/>
607         </parameter>
608       </parameters>
609     </function>
610     <function name="test_array_int_in" c:identifier="test_array_int_in">
611       <return-value transfer-ownership="none">
612         <type name="int" c:type="int"/>
613       </return-value>
614       <parameters>
615         <parameter name="n_ints" transfer-ownership="none">
616           <type name="int" c:type="int"/>
617         </parameter>
618         <parameter name="ints" transfer-ownership="none" doc="List of ints">
619           <array length="0" c:type="int*">
620             <type name="int"/>
621           </array>
622         </parameter>
623       </parameters>
624     </function>
625     <function name="test_array_int_in_take"
626               c:identifier="test_array_int_in_take">
627       <return-value transfer-ownership="none">
628         <type name="int" c:type="int"/>
629       </return-value>
630       <parameters>
631         <parameter name="n_ints" transfer-ownership="none">
632           <type name="int" c:type="int"/>
633         </parameter>
634         <parameter name="ints" transfer-ownership="full" doc="List of ints">
635           <array length="0" c:type="int*">
636             <type name="int"/>
637           </array>
638         </parameter>
639       </parameters>
640     </function>
641     <function name="test_array_int_inout" c:identifier="test_array_int_inout">
642       <return-value transfer-ownership="none">
643         <type name="none" c:type="void"/>
644       </return-value>
645       <parameters>
646         <parameter name="n_ints"
647                    direction="inout"
648                    transfer-ownership="full"
649                    doc="the length of @ints">
650           <type name="int" c:type="int*"/>
651         </parameter>
652         <parameter name="ints"
653                    direction="inout"
654                    transfer-ownership="full"
655                    doc="a list of integers whose items will be increased by 1, except the first that will be dropped">
656           <array length="0" c:type="int**">
657             <type name="int"/>
658           </array>
659         </parameter>
660       </parameters>
661     </function>
662     <function name="test_array_int_none_out"
663               c:identifier="test_array_int_none_out">
664       <return-value transfer-ownership="none"
665                     doc="a static array of integers.">
666         <array length="0" c:type="int*">
667           <type name="int"/>
668         </array>
669       </return-value>
670       <parameters>
671         <parameter name="len" direction="out" transfer-ownership="full">
672           <type name="int" c:type="int*"/>
673         </parameter>
674       </parameters>
675     </function>
676     <function name="test_array_int_out" c:identifier="test_array_int_out">
677       <return-value transfer-ownership="none">
678         <type name="none" c:type="void"/>
679       </return-value>
680       <parameters>
681         <parameter name="n_ints"
682                    direction="out"
683                    transfer-ownership="full"
684                    doc="the length of @ints">
685           <type name="int" c:type="int*"/>
686         </parameter>
687         <parameter name="ints"
688                    direction="out"
689                    transfer-ownership="full"
690                    doc="a list of 5 integers, from 0 to 4 in consecutive order">
691           <array length="0" c:type="int**">
692             <type name="int"/>
693           </array>
694         </parameter>
695       </parameters>
696     </function>
697     <function name="test_boolean" c:identifier="test_boolean">
698       <return-value transfer-ownership="none">
699         <type name="boolean" c:type="gboolean"/>
700       </return-value>
701       <parameters>
702         <parameter name="in" transfer-ownership="none">
703           <type name="boolean" c:type="gboolean"/>
704         </parameter>
705       </parameters>
706     </function>
707     <function name="test_callback" c:identifier="test_callback">
708       <return-value transfer-ownership="none">
709         <type name="int" c:type="int"/>
710       </return-value>
711       <parameters>
712         <parameter name="callback"
713                    transfer-ownership="none"
714                    allow-none="1"
715                    scope="call">
716           <type name="TestCallback" c:type="TestCallback"/>
717         </parameter>
718       </parameters>
719     </function>
720     <function name="test_callback_async" c:identifier="test_callback_async">
721       <return-value transfer-ownership="none">
722         <type name="none" c:type="void"/>
723       </return-value>
724       <parameters>
725         <parameter name="callback"
726                    transfer-ownership="none"
727                    scope="async"
728                    closure="1">
729           <type name="TestCallbackUserData" c:type="TestCallbackUserData"/>
730         </parameter>
731         <parameter name="user_data" transfer-ownership="none">
732           <type name="any" c:type="gpointer"/>
733         </parameter>
734       </parameters>
735     </function>
736     <function name="test_callback_destroy_notify"
737               c:identifier="test_callback_destroy_notify"
738               doc="Notified - callback persists until a DestroyNotify delegate
739 is invoked.">
740       <return-value transfer-ownership="none">
741         <type name="int" c:type="int"/>
742       </return-value>
743       <parameters>
744         <parameter name="callback"
745                    transfer-ownership="none"
746                    scope="notified"
747                    closure="1"
748                    destroy="2">
749           <type name="TestCallbackUserData" c:type="TestCallbackUserData"/>
750         </parameter>
751         <parameter name="user_data" transfer-ownership="none">
752           <type name="any" c:type="gpointer"/>
753         </parameter>
754         <parameter name="notify" transfer-ownership="none" scope="call">
755           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
756         </parameter>
757       </parameters>
758     </function>
759     <function name="test_callback_infinite"
760               c:identifier="test_callback_infinite"
761               doc="Infinite - callback persists forever.">
762       <return-value transfer-ownership="none">
763         <type name="int" c:type="int"/>
764       </return-value>
765       <parameters>
766         <parameter name="callback"
767                    transfer-ownership="none"
768                    scope="infinite"
769                    closure="1">
770           <type name="TestCallbackUserData" c:type="TestCallbackUserData"/>
771         </parameter>
772         <parameter name="user_data" transfer-ownership="none">
773           <type name="any" c:type="gpointer"/>
774         </parameter>
775       </parameters>
776     </function>
777     <function name="test_callback_thaw_async"
778               c:identifier="test_callback_thaw_async">
779       <return-value transfer-ownership="none">
780         <type name="int" c:type="int"/>
781       </return-value>
782     </function>
783     <function name="test_callback_thaw_notifications"
784               c:identifier="test_callback_thaw_notifications"
785               doc="Invokes all callbacks installed by #test_callback_destroy_notify(),
786 adding up their return values, and removes them, invoking the
787 corresponding destroy notfications.">
788       <return-value transfer-ownership="none">
789         <type name="int" c:type="int"/>
790       </return-value>
791     </function>
792     <function name="test_callback_user_data"
793               c:identifier="test_callback_user_data"
794               doc="Call - callback parameter persists for the duration of the method
795 call and can be released on return.">
796       <return-value transfer-ownership="none">
797         <type name="int" c:type="int"/>
798       </return-value>
799       <parameters>
800         <parameter name="callback"
801                    transfer-ownership="none"
802                    scope="call"
803                    closure="1">
804           <type name="TestCallbackUserData" c:type="TestCallbackUserData"/>
805         </parameter>
806         <parameter name="user_data" transfer-ownership="none">
807           <type name="any" c:type="gpointer"/>
808         </parameter>
809       </parameters>
810     </function>
811     <function name="test_closure" c:identifier="test_closure">
812       <return-value transfer-ownership="none">
813         <type name="int" c:type="int"/>
814       </return-value>
815       <parameters>
816         <parameter name="closure" transfer-ownership="none">
817           <type name="GObject.Closure" c:type="GClosure*"/>
818         </parameter>
819       </parameters>
820     </function>
821     <function name="test_closure_one_arg" c:identifier="test_closure_one_arg">
822       <return-value transfer-ownership="none">
823         <type name="int" c:type="int"/>
824       </return-value>
825       <parameters>
826         <parameter name="closure" transfer-ownership="none">
827           <type name="GObject.Closure" c:type="GClosure*"/>
828         </parameter>
829         <parameter name="arg" transfer-ownership="none">
830           <type name="int" c:type="int"/>
831         </parameter>
832       </parameters>
833     </function>
834     <function name="test_double" c:identifier="test_double">
835       <return-value transfer-ownership="none">
836         <type name="double" c:type="gdouble"/>
837       </return-value>
838       <parameters>
839         <parameter name="in" transfer-ownership="none">
840           <type name="double" c:type="gdouble"/>
841         </parameter>
842       </parameters>
843     </function>
844     <function name="test_enum_param" c:identifier="test_enum_param">
845       <return-value transfer-ownership="none">
846         <type name="utf8" c:type="gchar*"/>
847       </return-value>
848       <parameters>
849         <parameter name="e" transfer-ownership="none">
850           <type name="TestEnum" c:type="TestEnum"/>
851         </parameter>
852       </parameters>
853     </function>
854     <function name="test_filename_return" c:identifier="test_filename_return">
855       <return-value transfer-ownership="full" doc="list of strings">
856         <type name="GLib.SList" c:type="GSList*">
857           <type name="filename"/>
858         </type>
859       </return-value>
860     </function>
861     <function name="test_float" c:identifier="test_float">
862       <return-value transfer-ownership="none">
863         <type name="float" c:type="gfloat"/>
864       </return-value>
865       <parameters>
866         <parameter name="in" transfer-ownership="none">
867           <type name="float" c:type="gfloat"/>
868         </parameter>
869       </parameters>
870     </function>
871     <function name="test_ghash_container_in"
872               c:identifier="test_ghash_container_in">
873       <return-value transfer-ownership="none">
874         <type name="none" c:type="void"/>
875       </return-value>
876       <parameters>
877         <parameter name="in" transfer-ownership="container">
878           <type name="GLib.HashTable" c:type="GHashTable*">
879             <type name="utf8"/>
880             <type name="utf8"/>
881           </type>
882         </parameter>
883       </parameters>
884     </function>
885     <function name="test_ghash_container_return"
886               c:identifier="test_ghash_container_return">
887       <return-value transfer-ownership="container">
888         <type name="GLib.HashTable" c:type="GHashTable*">
889           <type name="utf8"/>
890           <type name="utf8"/>
891         </type>
892       </return-value>
893     </function>
894     <function name="test_ghash_everything_in"
895               c:identifier="test_ghash_everything_in">
896       <return-value transfer-ownership="none">
897         <type name="none" c:type="void"/>
898       </return-value>
899       <parameters>
900         <parameter name="in" transfer-ownership="full">
901           <type name="GLib.HashTable" c:type="GHashTable*">
902             <type name="utf8"/>
903             <type name="utf8"/>
904           </type>
905         </parameter>
906       </parameters>
907     </function>
908     <function name="test_ghash_everything_return"
909               c:identifier="test_ghash_everything_return">
910       <return-value transfer-ownership="full">
911         <type name="GLib.HashTable" c:type="GHashTable*">
912           <type name="utf8"/>
913           <type name="utf8"/>
914         </type>
915       </return-value>
916     </function>
917     <function name="test_ghash_free" c:identifier="test_ghash_free">
918       <return-value transfer-ownership="none">
919         <type name="none" c:type="void"/>
920       </return-value>
921       <parameters>
922         <parameter name="in" transfer-ownership="full">
923           <type name="GLib.HashTable" c:type="GHashTable*">
924             <type name="utf8"/>
925             <type name="utf8"/>
926           </type>
927         </parameter>
928       </parameters>
929     </function>
930     <function name="test_ghash_nested_everything_return"
931               c:identifier="test_ghash_nested_everything_return"
932               doc="Specify nested parameterized types directly with the (type ) annotation.">
933       <return-value transfer-ownership="full">
934         <type name="GLib.HashTable" c:type="GHashTable*">
935           <type name="utf8"/>
936           <type name="GLib.HashTable">
937             <type name="utf8"/>
938             <type name="utf8"/>
939           </type>
940         </type>
941       </return-value>
942     </function>
943     <function name="test_ghash_nested_everything_return2"
944               c:identifier="test_ghash_nested_everything_return2"
945               doc="element-type annotation.">
946       <return-value transfer-ownership="full">
947         <type name="GLib.HashTable" c:type="GHashTable*">
948           <type name="utf8"/>
949           <type name="GLib.HashTable">
950             <type name="utf8"/>
951             <type name="utf8"/>
952           </type>
953         </type>
954       </return-value>
955     </function>
956     <function name="test_ghash_nothing_in"
957               c:identifier="test_ghash_nothing_in">
958       <return-value transfer-ownership="none">
959         <type name="none" c:type="void"/>
960       </return-value>
961       <parameters>
962         <parameter name="in" transfer-ownership="none">
963           <type name="GLib.HashTable" c:type="GHashTable*">
964             <type name="utf8"/>
965             <type name="utf8"/>
966           </type>
967         </parameter>
968       </parameters>
969     </function>
970     <function name="test_ghash_nothing_in2"
971               c:identifier="test_ghash_nothing_in2">
972       <return-value transfer-ownership="none">
973         <type name="none" c:type="void"/>
974       </return-value>
975       <parameters>
976         <parameter name="in" transfer-ownership="none">
977           <type name="GLib.HashTable" c:type="GHashTable*">
978             <type name="utf8"/>
979             <type name="utf8"/>
980           </type>
981         </parameter>
982       </parameters>
983     </function>
984     <function name="test_ghash_nothing_return"
985               c:identifier="test_ghash_nothing_return">
986       <return-value transfer-ownership="none">
987         <type name="GLib.HashTable" c:type="GHashTable*">
988           <type name="utf8"/>
989           <type name="utf8"/>
990         </type>
991       </return-value>
992     </function>
993     <function name="test_ghash_nothing_return2"
994               c:identifier="test_ghash_nothing_return2">
995       <return-value transfer-ownership="none">
996         <type name="GLib.HashTable" c:type="GHashTable*">
997           <type name="utf8"/>
998           <type name="utf8"/>
999         </type>
1000       </return-value>
1001     </function>
1002     <function name="test_ghash_null_in" c:identifier="test_ghash_null_in">
1003       <return-value transfer-ownership="none">
1004         <type name="none" c:type="void"/>
1005       </return-value>
1006       <parameters>
1007         <parameter name="in" transfer-ownership="none" allow-none="1">
1008           <type name="GLib.HashTable" c:type="GHashTable*">
1009             <type name="utf8"/>
1010             <type name="utf8"/>
1011           </type>
1012         </parameter>
1013       </parameters>
1014     </function>
1015     <function name="test_ghash_null_return"
1016               c:identifier="test_ghash_null_return">
1017       <return-value transfer-ownership="none">
1018         <type name="GLib.HashTable" c:type="GHashTable*">
1019           <type name="utf8"/>
1020           <type name="utf8"/>
1021         </type>
1022       </return-value>
1023     </function>
1024     <function name="test_glist_container_in"
1025               c:identifier="test_glist_container_in">
1026       <return-value transfer-ownership="none">
1027         <type name="none" c:type="void"/>
1028       </return-value>
1029       <parameters>
1030         <parameter name="in" transfer-ownership="container">
1031           <type name="GLib.List" c:type="GList*">
1032             <type name="utf8"/>
1033           </type>
1034         </parameter>
1035       </parameters>
1036     </function>
1037     <function name="test_glist_container_return"
1038               c:identifier="test_glist_container_return">
1039       <return-value transfer-ownership="container">
1040         <type name="GLib.List" c:type="GList*">
1041           <type name="utf8"/>
1042         </type>
1043       </return-value>
1044     </function>
1045     <function name="test_glist_everything_in"
1046               c:identifier="test_glist_everything_in">
1047       <return-value transfer-ownership="none">
1048         <type name="none" c:type="void"/>
1049       </return-value>
1050       <parameters>
1051         <parameter name="in" transfer-ownership="full">
1052           <type name="GLib.List" c:type="GList*">
1053             <type name="utf8"/>
1054           </type>
1055         </parameter>
1056       </parameters>
1057     </function>
1058     <function name="test_glist_everything_return"
1059               c:identifier="test_glist_everything_return">
1060       <return-value transfer-ownership="full">
1061         <type name="GLib.List" c:type="GList*">
1062           <type name="utf8"/>
1063         </type>
1064       </return-value>
1065     </function>
1066     <function name="test_glist_free" c:identifier="test_glist_free">
1067       <return-value transfer-ownership="none">
1068         <type name="none" c:type="void"/>
1069       </return-value>
1070       <parameters>
1071         <parameter name="in" transfer-ownership="full">
1072           <type name="GLib.List" c:type="GList*">
1073             <type name="utf8"/>
1074           </type>
1075         </parameter>
1076       </parameters>
1077     </function>
1078     <function name="test_glist_nothing_in"
1079               c:identifier="test_glist_nothing_in">
1080       <return-value transfer-ownership="none">
1081         <type name="none" c:type="void"/>
1082       </return-value>
1083       <parameters>
1084         <parameter name="in" transfer-ownership="none">
1085           <type name="GLib.List" c:type="GList*">
1086             <type name="utf8"/>
1087           </type>
1088         </parameter>
1089       </parameters>
1090     </function>
1091     <function name="test_glist_nothing_in2"
1092               c:identifier="test_glist_nothing_in2">
1093       <return-value transfer-ownership="none">
1094         <type name="none" c:type="void"/>
1095       </return-value>
1096       <parameters>
1097         <parameter name="in" transfer-ownership="none">
1098           <type name="GLib.List" c:type="GList*">
1099             <type name="utf8"/>
1100           </type>
1101         </parameter>
1102       </parameters>
1103     </function>
1104     <function name="test_glist_nothing_return"
1105               c:identifier="test_glist_nothing_return">
1106       <return-value transfer-ownership="none">
1107         <type name="GLib.List" c:type="GList*">
1108           <type name="utf8"/>
1109         </type>
1110       </return-value>
1111     </function>
1112     <function name="test_glist_nothing_return2"
1113               c:identifier="test_glist_nothing_return2">
1114       <return-value transfer-ownership="none">
1115         <type name="GLib.List" c:type="GList*">
1116           <type name="utf8"/>
1117         </type>
1118       </return-value>
1119     </function>
1120     <function name="test_gslist_container_in"
1121               c:identifier="test_gslist_container_in">
1122       <return-value transfer-ownership="none">
1123         <type name="none" c:type="void"/>
1124       </return-value>
1125       <parameters>
1126         <parameter name="in" transfer-ownership="container">
1127           <type name="GLib.SList" c:type="GSList*">
1128             <type name="utf8"/>
1129           </type>
1130         </parameter>
1131       </parameters>
1132     </function>
1133     <function name="test_gslist_container_return"
1134               c:identifier="test_gslist_container_return">
1135       <return-value transfer-ownership="container">
1136         <type name="GLib.SList" c:type="GSList*">
1137           <type name="utf8"/>
1138         </type>
1139       </return-value>
1140     </function>
1141     <function name="test_gslist_everything_in"
1142               c:identifier="test_gslist_everything_in">
1143       <return-value transfer-ownership="none">
1144         <type name="none" c:type="void"/>
1145       </return-value>
1146       <parameters>
1147         <parameter name="in" transfer-ownership="full">
1148           <type name="GLib.SList" c:type="GSList*">
1149             <type name="utf8"/>
1150           </type>
1151         </parameter>
1152       </parameters>
1153     </function>
1154     <function name="test_gslist_everything_return"
1155               c:identifier="test_gslist_everything_return">
1156       <return-value transfer-ownership="full">
1157         <type name="GLib.SList" c:type="GSList*">
1158           <type name="utf8"/>
1159         </type>
1160       </return-value>
1161     </function>
1162     <function name="test_gslist_free" c:identifier="test_gslist_free">
1163       <return-value transfer-ownership="none">
1164         <type name="none" c:type="void"/>
1165       </return-value>
1166       <parameters>
1167         <parameter name="in" transfer-ownership="full">
1168           <type name="GLib.SList" c:type="GSList*">
1169             <type name="utf8"/>
1170           </type>
1171         </parameter>
1172       </parameters>
1173     </function>
1174     <function name="test_gslist_nothing_in"
1175               c:identifier="test_gslist_nothing_in">
1176       <return-value transfer-ownership="none">
1177         <type name="none" c:type="void"/>
1178       </return-value>
1179       <parameters>
1180         <parameter name="in" transfer-ownership="none">
1181           <type name="GLib.SList" c:type="GSList*">
1182             <type name="utf8"/>
1183           </type>
1184         </parameter>
1185       </parameters>
1186     </function>
1187     <function name="test_gslist_nothing_in2"
1188               c:identifier="test_gslist_nothing_in2">
1189       <return-value transfer-ownership="none">
1190         <type name="none" c:type="void"/>
1191       </return-value>
1192       <parameters>
1193         <parameter name="in" transfer-ownership="none">
1194           <type name="GLib.SList" c:type="GSList*">
1195             <type name="utf8"/>
1196           </type>
1197         </parameter>
1198       </parameters>
1199     </function>
1200     <function name="test_gslist_nothing_return"
1201               c:identifier="test_gslist_nothing_return">
1202       <return-value transfer-ownership="none">
1203         <type name="GLib.SList" c:type="GSList*">
1204           <type name="utf8"/>
1205         </type>
1206       </return-value>
1207     </function>
1208     <function name="test_gslist_nothing_return2"
1209               c:identifier="test_gslist_nothing_return2">
1210       <return-value transfer-ownership="none">
1211         <type name="GLib.SList" c:type="GSList*">
1212           <type name="utf8"/>
1213         </type>
1214       </return-value>
1215     </function>
1216     <function name="test_gtype" c:identifier="test_gtype">
1217       <return-value transfer-ownership="none">
1218         <type name="GType" c:type="GType"/>
1219       </return-value>
1220       <parameters>
1221         <parameter name="in" transfer-ownership="none">
1222           <type name="GType" c:type="GType"/>
1223         </parameter>
1224       </parameters>
1225     </function>
1226     <function name="test_int" c:identifier="test_int">
1227       <return-value transfer-ownership="none">
1228         <type name="int" c:type="gint"/>
1229       </return-value>
1230       <parameters>
1231         <parameter name="in" transfer-ownership="none">
1232           <type name="int" c:type="gint"/>
1233         </parameter>
1234       </parameters>
1235     </function>
1236     <function name="test_int16" c:identifier="test_int16">
1237       <return-value transfer-ownership="none">
1238         <type name="int16" c:type="gint16"/>
1239       </return-value>
1240       <parameters>
1241         <parameter name="in" transfer-ownership="none">
1242           <type name="int16" c:type="gint16"/>
1243         </parameter>
1244       </parameters>
1245     </function>
1246     <function name="test_int32" c:identifier="test_int32">
1247       <return-value transfer-ownership="none">
1248         <type name="int32" c:type="gint32"/>
1249       </return-value>
1250       <parameters>
1251         <parameter name="in" transfer-ownership="none">
1252           <type name="int32" c:type="gint32"/>
1253         </parameter>
1254       </parameters>
1255     </function>
1256     <function name="test_int64" c:identifier="test_int64">
1257       <return-value transfer-ownership="none">
1258         <type name="int64" c:type="gint64"/>
1259       </return-value>
1260       <parameters>
1261         <parameter name="in" transfer-ownership="none">
1262           <type name="int64" c:type="gint64"/>
1263         </parameter>
1264       </parameters>
1265     </function>
1266     <function name="test_int8" c:identifier="test_int8">
1267       <return-value transfer-ownership="none">
1268         <type name="int8" c:type="gint8"/>
1269       </return-value>
1270       <parameters>
1271         <parameter name="in" transfer-ownership="none">
1272           <type name="int8" c:type="gint8"/>
1273         </parameter>
1274       </parameters>
1275     </function>
1276     <function name="test_int_out_utf8" c:identifier="test_int_out_utf8">
1277       <return-value transfer-ownership="none">
1278         <type name="none" c:type="void"/>
1279       </return-value>
1280       <parameters>
1281         <parameter name="length" direction="out" transfer-ownership="full">
1282           <type name="int" c:type="int*"/>
1283         </parameter>
1284         <parameter name="in" transfer-ownership="none">
1285           <type name="utf8" c:type="char*"/>
1286         </parameter>
1287       </parameters>
1288     </function>
1289     <function name="test_int_value_arg" c:identifier="test_int_value_arg">
1290       <return-value transfer-ownership="none">
1291         <type name="int" c:type="int"/>
1292       </return-value>
1293       <parameters>
1294         <parameter name="v" transfer-ownership="none">
1295           <type name="GObject.Value" c:type="GValue*"/>
1296         </parameter>
1297       </parameters>
1298     </function>
1299     <function name="test_long" c:identifier="test_long">
1300       <return-value transfer-ownership="none">
1301         <type name="long" c:type="glong"/>
1302       </return-value>
1303       <parameters>
1304         <parameter name="in" transfer-ownership="none">
1305           <type name="long" c:type="glong"/>
1306         </parameter>
1307       </parameters>
1308     </function>
1309     <function name="test_multi_double_args"
1310               c:identifier="test_multi_double_args">
1311       <return-value transfer-ownership="none">
1312         <type name="none" c:type="void"/>
1313       </return-value>
1314       <parameters>
1315         <parameter name="in" transfer-ownership="none">
1316           <type name="double" c:type="gdouble"/>
1317         </parameter>
1318         <parameter name="one" direction="out" transfer-ownership="full">
1319           <type name="double" c:type="gdouble*"/>
1320         </parameter>
1321         <parameter name="two" direction="out" transfer-ownership="full">
1322           <type name="double" c:type="gdouble*"/>
1323         </parameter>
1324       </parameters>
1325     </function>
1326     <function name="test_short" c:identifier="test_short">
1327       <return-value transfer-ownership="none">
1328         <type name="short" c:type="gshort"/>
1329       </return-value>
1330       <parameters>
1331         <parameter name="in" transfer-ownership="none">
1332           <type name="short" c:type="gshort"/>
1333         </parameter>
1334       </parameters>
1335     </function>
1336     <function name="test_simple_boxed_a_const_return"
1337               c:identifier="test_simple_boxed_a_const_return">
1338       <return-value transfer-ownership="none">
1339         <type name="TestSimpleBoxedA" c:type="TestSimpleBoxedA*"/>
1340       </return-value>
1341     </function>
1342     <function name="test_size" c:identifier="test_size">
1343       <return-value transfer-ownership="none">
1344         <type name="size_t" c:type="gsize"/>
1345       </return-value>
1346       <parameters>
1347         <parameter name="in" transfer-ownership="none">
1348           <type name="size_t" c:type="gsize"/>
1349         </parameter>
1350       </parameters>
1351     </function>
1352     <function name="test_ssize" c:identifier="test_ssize">
1353       <return-value transfer-ownership="none">
1354         <type name="ssize_t" c:type="gssize"/>
1355       </return-value>
1356       <parameters>
1357         <parameter name="in" transfer-ownership="none">
1358           <type name="ssize_t" c:type="gssize"/>
1359         </parameter>
1360       </parameters>
1361     </function>
1362     <function name="test_strv_in" c:identifier="test_strv_in">
1363       <return-value transfer-ownership="none">
1364         <type name="boolean" c:type="gboolean"/>
1365       </return-value>
1366       <parameters>
1367         <parameter name="arr" transfer-ownership="none">
1368           <array c:type="char**">
1369             <type name="utf8"/>
1370           </array>
1371         </parameter>
1372       </parameters>
1373     </function>
1374     <function name="test_strv_in_container"
1375               c:identifier="test_strv_in_container">
1376       <return-value transfer-ownership="none">
1377         <type name="boolean" c:type="gboolean"/>
1378       </return-value>
1379       <parameters>
1380         <parameter name="arr" transfer-ownership="container">
1381           <array c:type="char**">
1382             <type name="utf8"/>
1383           </array>
1384         </parameter>
1385       </parameters>
1386     </function>
1387     <function name="test_strv_out"
1388               c:identifier="test_strv_out"
1389               doc="No annotations here.  We want the default to Do The Right Thing.">
1390       <return-value transfer-ownership="full">
1391         <array c:type="char**">
1392           <type name="utf8"/>
1393         </array>
1394       </return-value>
1395     </function>
1396     <function name="test_strv_out_c"
1397               c:identifier="test_strv_out_c"
1398               doc="No annotations here.  We want the default to Do The Right Thing.">
1399       <return-value transfer-ownership="full">
1400         <array c:type="char**">
1401           <type name="utf8"/>
1402         </array>
1403       </return-value>
1404     </function>
1405     <function name="test_strv_out_container"
1406               c:identifier="test_strv_out_container">
1407       <return-value transfer-ownership="container">
1408         <array c:type="char**">
1409           <type name="utf8"/>
1410         </array>
1411       </return-value>
1412     </function>
1413     <function name="test_strv_outarg" c:identifier="test_strv_outarg">
1414       <return-value transfer-ownership="none">
1415         <type name="none" c:type="void"/>
1416       </return-value>
1417       <parameters>
1418         <parameter name="retp" direction="out" transfer-ownership="container">
1419           <array c:type="char***">
1420             <type name="utf8"/>
1421           </array>
1422         </parameter>
1423       </parameters>
1424     </function>
1425     <function name="test_timet" c:identifier="test_timet">
1426       <return-value transfer-ownership="none">
1427         <type name="time_t" c:type="time_t"/>
1428       </return-value>
1429       <parameters>
1430         <parameter name="in" transfer-ownership="none">
1431           <type name="time_t" c:type="time_t"/>
1432         </parameter>
1433       </parameters>
1434     </function>
1435     <function name="test_torture_signature_0"
1436               c:identifier="test_torture_signature_0">
1437       <return-value transfer-ownership="none">
1438         <type name="none" c:type="void"/>
1439       </return-value>
1440       <parameters>
1441         <parameter name="x" transfer-ownership="none">
1442           <type name="int" c:type="int"/>
1443         </parameter>
1444         <parameter name="y" direction="out" transfer-ownership="full">
1445           <type name="double" c:type="double*"/>
1446         </parameter>
1447         <parameter name="z" direction="out" transfer-ownership="full">
1448           <type name="int" c:type="int*"/>
1449         </parameter>
1450         <parameter name="foo" transfer-ownership="none">
1451           <type name="utf8" c:type="char*"/>
1452         </parameter>
1453         <parameter name="q" direction="out" transfer-ownership="full">
1454           <type name="int" c:type="int*"/>
1455         </parameter>
1456         <parameter name="m" transfer-ownership="none">
1457           <type name="uint" c:type="guint"/>
1458         </parameter>
1459       </parameters>
1460     </function>
1461     <function name="test_torture_signature_1"
1462               c:identifier="test_torture_signature_1"
1463               throws="1">
1464       <return-value transfer-ownership="none">
1465         <type name="boolean" c:type="gboolean"/>
1466       </return-value>
1467       <parameters>
1468         <parameter name="x" transfer-ownership="none">
1469           <type name="int" c:type="int"/>
1470         </parameter>
1471         <parameter name="y" direction="out" transfer-ownership="full">
1472           <type name="double" c:type="double*"/>
1473         </parameter>
1474         <parameter name="z" direction="out" transfer-ownership="full">
1475           <type name="int" c:type="int*"/>
1476         </parameter>
1477         <parameter name="foo" transfer-ownership="none">
1478           <type name="utf8" c:type="char*"/>
1479         </parameter>
1480         <parameter name="q" direction="out" transfer-ownership="full">
1481           <type name="int" c:type="int*"/>
1482         </parameter>
1483         <parameter name="m" transfer-ownership="none">
1484           <type name="uint" c:type="guint"/>
1485         </parameter>
1486       </parameters>
1487     </function>
1488     <function name="test_torture_signature_2"
1489               c:identifier="test_torture_signature_2">
1490       <return-value transfer-ownership="none">
1491         <type name="none" c:type="void"/>
1492       </return-value>
1493       <parameters>
1494         <parameter name="x" transfer-ownership="none">
1495           <type name="int" c:type="int"/>
1496         </parameter>
1497         <parameter name="callback"
1498                    transfer-ownership="none"
1499                    scope="notified"
1500                    closure="2"
1501                    destroy="3">
1502           <type name="TestCallbackUserData" c:type="TestCallbackUserData"/>
1503         </parameter>
1504         <parameter name="user_data" transfer-ownership="none">
1505           <type name="any" c:type="gpointer"/>
1506         </parameter>
1507         <parameter name="notify" transfer-ownership="none" scope="call">
1508           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
1509         </parameter>
1510         <parameter name="y" direction="out" transfer-ownership="full">
1511           <type name="double" c:type="double*"/>
1512         </parameter>
1513         <parameter name="z" direction="out" transfer-ownership="full">
1514           <type name="int" c:type="int*"/>
1515         </parameter>
1516         <parameter name="foo" transfer-ownership="none">
1517           <type name="utf8" c:type="char*"/>
1518         </parameter>
1519         <parameter name="q" direction="out" transfer-ownership="full">
1520           <type name="int" c:type="int*"/>
1521         </parameter>
1522         <parameter name="m" transfer-ownership="none">
1523           <type name="uint" c:type="guint"/>
1524         </parameter>
1525       </parameters>
1526     </function>
1527     <function name="test_uint" c:identifier="test_uint">
1528       <return-value transfer-ownership="none">
1529         <type name="uint" c:type="guint"/>
1530       </return-value>
1531       <parameters>
1532         <parameter name="in" transfer-ownership="none">
1533           <type name="uint" c:type="guint"/>
1534         </parameter>
1535       </parameters>
1536     </function>
1537     <function name="test_uint16" c:identifier="test_uint16">
1538       <return-value transfer-ownership="none">
1539         <type name="uint16" c:type="guint16"/>
1540       </return-value>
1541       <parameters>
1542         <parameter name="in" transfer-ownership="none">
1543           <type name="uint16" c:type="guint16"/>
1544         </parameter>
1545       </parameters>
1546     </function>
1547     <function name="test_uint32" c:identifier="test_uint32">
1548       <return-value transfer-ownership="none">
1549         <type name="uint32" c:type="guint32"/>
1550       </return-value>
1551       <parameters>
1552         <parameter name="in" transfer-ownership="none">
1553           <type name="uint32" c:type="guint32"/>
1554         </parameter>
1555       </parameters>
1556     </function>
1557     <function name="test_uint64" c:identifier="test_uint64">
1558       <return-value transfer-ownership="none">
1559         <type name="uint64" c:type="guint64"/>
1560       </return-value>
1561       <parameters>
1562         <parameter name="in" transfer-ownership="none">
1563           <type name="uint64" c:type="guint64"/>
1564         </parameter>
1565       </parameters>
1566     </function>
1567     <function name="test_uint8" c:identifier="test_uint8">
1568       <return-value transfer-ownership="none">
1569         <type name="uint8" c:type="guint8"/>
1570       </return-value>
1571       <parameters>
1572         <parameter name="in" transfer-ownership="none">
1573           <type name="uint8" c:type="guint8"/>
1574         </parameter>
1575       </parameters>
1576     </function>
1577     <function name="test_ulong" c:identifier="test_ulong">
1578       <return-value transfer-ownership="none">
1579         <type name="ulong" c:type="gulong"/>
1580       </return-value>
1581       <parameters>
1582         <parameter name="in" transfer-ownership="none">
1583           <type name="ulong" c:type="gulong"/>
1584         </parameter>
1585       </parameters>
1586     </function>
1587     <function name="test_ushort" c:identifier="test_ushort">
1588       <return-value transfer-ownership="none">
1589         <type name="ushort" c:type="gushort"/>
1590       </return-value>
1591       <parameters>
1592         <parameter name="in" transfer-ownership="none">
1593           <type name="ushort" c:type="gushort"/>
1594         </parameter>
1595       </parameters>
1596     </function>
1597     <function name="test_utf8_const_in" c:identifier="test_utf8_const_in">
1598       <return-value transfer-ownership="none">
1599         <type name="none" c:type="void"/>
1600       </return-value>
1601       <parameters>
1602         <parameter name="in" transfer-ownership="none">
1603           <type name="utf8" c:type="char*"/>
1604         </parameter>
1605       </parameters>
1606     </function>
1607     <function name="test_utf8_const_return"
1608               c:identifier="test_utf8_const_return">
1609       <return-value transfer-ownership="none">
1610         <type name="utf8" c:type="char*"/>
1611       </return-value>
1612     </function>
1613     <function name="test_utf8_inout" c:identifier="test_utf8_inout">
1614       <return-value transfer-ownership="none">
1615         <type name="none" c:type="void"/>
1616       </return-value>
1617       <parameters>
1618         <parameter name="inout" direction="inout" transfer-ownership="full">
1619           <type name="utf8" c:type="char**"/>
1620         </parameter>
1621       </parameters>
1622     </function>
1623     <function name="test_utf8_nonconst_in"
1624               c:identifier="test_utf8_nonconst_in">
1625       <return-value transfer-ownership="none">
1626         <type name="none" c:type="void"/>
1627       </return-value>
1628       <parameters>
1629         <parameter name="in" transfer-ownership="full">
1630           <type name="utf8" c:type="char*"/>
1631         </parameter>
1632       </parameters>
1633     </function>
1634     <function name="test_utf8_nonconst_return"
1635               c:identifier="test_utf8_nonconst_return">
1636       <return-value transfer-ownership="full">
1637         <type name="utf8" c:type="char*"/>
1638       </return-value>
1639     </function>
1640     <function name="test_utf8_out" c:identifier="test_utf8_out">
1641       <return-value transfer-ownership="none">
1642         <type name="none" c:type="void"/>
1643       </return-value>
1644       <parameters>
1645         <parameter name="out" direction="out" transfer-ownership="full">
1646           <type name="utf8" c:type="char**"/>
1647         </parameter>
1648       </parameters>
1649     </function>
1650     <function name="test_utf8_out_nonconst_return"
1651               c:identifier="test_utf8_out_nonconst_return">
1652       <return-value transfer-ownership="full"
1653                     doc="a copy of &quot;first&quot;">
1654         <type name="utf8" c:type="char*"/>
1655       </return-value>
1656       <parameters>
1657         <parameter name="out"
1658                    direction="out"
1659                    transfer-ownership="full"
1660                    doc="a copy of &quot;second&quot;">
1661           <type name="utf8" c:type="char**"/>
1662         </parameter>
1663       </parameters>
1664     </function>
1665     <function name="test_utf8_out_out" c:identifier="test_utf8_out_out">
1666       <return-value transfer-ownership="none">
1667         <type name="none" c:type="void"/>
1668       </return-value>
1669       <parameters>
1670         <parameter name="out0"
1671                    direction="out"
1672                    transfer-ownership="full"
1673                    doc="a copy of &quot;first&quot;">
1674           <type name="utf8" c:type="char**"/>
1675         </parameter>
1676         <parameter name="out1"
1677                    direction="out"
1678                    transfer-ownership="full"
1679                    doc="a copy of &quot;second&quot;">
1680           <type name="utf8" c:type="char**"/>
1681         </parameter>
1682       </parameters>
1683     </function>
1684     <function name="test_value_return" c:identifier="test_value_return">
1685       <return-value transfer-ownership="none"
1686                     doc="the int wrapped in a GValue.">
1687         <type name="GObject.Value" c:type="GValue*"/>
1688       </return-value>
1689       <parameters>
1690         <parameter name="i" transfer-ownership="none">
1691           <type name="int" c:type="int"/>
1692         </parameter>
1693       </parameters>
1694     </function>
1695   </namespace>
1696 </repository>