Bug 572423 - Support --c-include argument for specifying C headers
[gnome.gobject-introspection] / tests / scanner / foo-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   <include name="utility" version="1.0"/>
12   <package name="gobject-2.0"/>
13   <c:include name="foo.h"/>
14   <namespace name="foo" version="1.0" shared-library="foo">
15     <alias name="List" target="GLib.SList" c:type="FooList"/>
16     <alias name="ObjectCookie" target="any" c:type="FooObjectCookie"/>
17     <alias name="XEvent" target="none" c:type="FooXEvent"/>
18     <record name="BRect"
19             c:type="FooBRect"
20             glib:type-name="FooBRect"
21             glib:get-type="foo_brect_get_type">
22       <field name="x" writable="1">
23         <type name="double" c:type="double"/>
24       </field>
25       <field name="y" writable="1">
26         <type name="double" c:type="double"/>
27       </field>
28       <constructor name="new" c:identifier="foo_brect_new">
29         <return-value transfer-ownership="full">
30           <type name="BRect" c:type="FooBRect*"/>
31         </return-value>
32         <parameters>
33           <parameter name="x" transfer-ownership="none">
34             <type name="double" c:type="double"/>
35           </parameter>
36           <parameter name="y" transfer-ownership="none">
37             <type name="double" c:type="double"/>
38           </parameter>
39         </parameters>
40       </constructor>
41       <method name="add" c:identifier="foo_brect_add">
42         <return-value transfer-ownership="none">
43           <type name="none" c:type="void"/>
44         </return-value>
45         <parameters>
46           <parameter name="b2" transfer-ownership="none">
47             <type name="BRect" c:type="FooBRect*"/>
48           </parameter>
49         </parameters>
50       </method>
51     </record>
52     <union name="BUnion"
53            c:type="FooBUnion"
54            glib:type-name="FooBUnion"
55            glib:get-type="foo_bunion_get_type">
56       <field name="type" writable="1">
57         <type name="int" c:type="int"/>
58       </field>
59       <field name="v" writable="1">
60         <type name="double" c:type="double"/>
61       </field>
62       <field name="rect" writable="1">
63         <type name="BRect" c:type="FooBRect*"/>
64       </field>
65       <constructor name="new" c:identifier="foo_bunion_new">
66         <return-value transfer-ownership="full">
67           <type name="BUnion" c:type="FooBUnion*"/>
68         </return-value>
69       </constructor>
70       <method name="get_contained_type"
71               c:identifier="foo_bunion_get_contained_type">
72         <return-value transfer-ownership="none">
73           <type name="int" c:type="int"/>
74         </return-value>
75       </method>
76     </union>
77     <record name="Boxed"
78             c:type="FooBoxed"
79             glib:type-name="FooBoxed"
80             glib:get-type="foo_boxed_get_type">
81       <constructor name="new" c:identifier="foo_boxed_new">
82         <return-value transfer-ownership="full">
83           <type name="Boxed" c:type="FooBoxed*"/>
84         </return-value>
85       </constructor>
86       <method name="method" c:identifier="foo_boxed_method">
87         <return-value transfer-ownership="none">
88           <type name="none" c:type="void"/>
89         </return-value>
90       </method>
91     </record>
92     <class name="Buffer"
93            c:type="FooBuffer"
94            parent="GObject.Object"
95            glib:type-name="FooBuffer"
96            glib:get-type="foo_buffer_get_type"
97            glib:class-struct="BufferClass">
98       <implements name="Interface"/>
99       <method name="some_method" c:identifier="foo_buffer_some_method">
100         <return-value transfer-ownership="none">
101           <type name="none" c:type="void"/>
102         </return-value>
103       </method>
104     </class>
105     <record name="BufferClass"
106             c:type="FooBufferClass"
107             glib:is-class-struct-for="Buffer">
108     </record>
109     <callback name="Callback" c:type="FooCallback">
110       <return-value transfer-ownership="none">
111         <type name="boolean" c:type="gboolean"/>
112       </return-value>
113       <parameters>
114         <parameter name="foo" transfer-ownership="none">
115           <type name="Object" c:type="FooObject*"/>
116         </parameter>
117         <parameter name="b" transfer-ownership="none">
118           <type name="boolean" c:type="gboolean"/>
119         </parameter>
120         <parameter name="data" transfer-ownership="none">
121           <type name="any" c:type="gpointer"/>
122         </parameter>
123       </parameters>
124     </callback>
125     <record name="DBusData"
126             c:type="FooDBusData"
127             glib:type-name="FooDBusData"
128             glib:get-type="foo_dbus_data_get_type">
129       <method name="method" c:identifier="foo_dbus_data_method">
130         <return-value transfer-ownership="none">
131           <type name="none" c:type="void"/>
132         </return-value>
133       </method>
134     </record>
135     <enumeration name="EnumFullname" c:type="FooEnumFullname">
136       <member name="one" value="1" c:identifier="FOO_ENUM_FULLNAME_ONE"/>
137       <member name="two" value="2" c:identifier="FOO_ENUM_FULLNAME_TWO"/>
138       <member name="three" value="3" c:identifier="FOO_ENUM_FULLNAME_THREE"/>
139     </enumeration>
140     <enumeration name="EnumNoType" c:type="FooEnumNoType">
141       <member name="un" value="1" c:identifier="FOO_ENUM_UN"/>
142       <member name="deux" value="2" c:identifier="FOO_ENUM_DEUX"/>
143       <member name="trois" value="3" c:identifier="FOO_ENUM_TROIS"/>
144       <member name="neuf" value="9" c:identifier="FOO_ENUM_NEUF"/>
145     </enumeration>
146     <enumeration name="EnumType"
147                  glib:type-name="FooEnumType"
148                  glib:get-type="foo_enum_type_get_type"
149                  c:type="FooEnumType">
150       <member name="alpha"
151               value="0"
152               c:identifier="FOO_ENUM_ALPHA"
153               glib:nick="alpha"/>
154       <member name="beta"
155               value="1"
156               c:identifier="FOO_ENUM_BETA"
157               glib:nick="beta"/>
158       <member name="delta"
159               value="2"
160               c:identifier="FOO_ENUM_DELTA"
161               glib:nick="delta"/>
162     </enumeration>
163     <enumeration name="Error"
164                  glib:type-name="FooError"
165                  glib:get-type="foo_error_get_type"
166                  c:type="FooError"
167                  glib:error-quark="foo_error_quark">
168       <member name="good"
169               value="0"
170               c:identifier="FOO_ERROR_GOOD"
171               glib:nick="good"/>
172       <member name="bad"
173               value="1"
174               c:identifier="FOO_ERROR_BAD"
175               glib:nick="bad"/>
176       <member name="ugly"
177               value="2"
178               c:identifier="FOO_ERROR_UGLY"
179               glib:nick="ugly"/>
180     </enumeration>
181     <union name="Event" c:type="FooEvent">
182       <field name="type" writable="1">
183         <type name="int" c:type="int"/>
184       </field>
185       <field name="any" writable="1">
186         <type name="EventAny" c:type="FooEventAny"/>
187       </field>
188       <field name="expose" writable="1">
189         <type name="EventExpose" c:type="FooEventExpose"/>
190       </field>
191     </union>
192     <record name="EventAny" c:type="FooEventAny">
193       <field name="send_event" writable="1">
194         <type name="int8" c:type="gint8"/>
195       </field>
196     </record>
197     <record name="EventExpose" c:type="FooEventExpose">
198       <field name="send_event" writable="1">
199         <type name="int8" c:type="gint8"/>
200       </field>
201       <field name="count" writable="1">
202         <type name="int" c:type="gint"/>
203       </field>
204     </record>
205     <bitfield name="FlagsNoType" c:type="FooFlagsNoType">
206       <member name="ett" value="1" c:identifier="FOO_FLAGS_ETT"/>
207       <member name="tva" value="2" c:identifier="FOO_FLAGS_TVA"/>
208       <member name="fyra" value="4" c:identifier="FOO_FLAGS_FYRA"/>
209     </bitfield>
210     <bitfield name="FlagsType"
211               glib:type-name="FooFlagsType"
212               glib:get-type="foo_flags_type_get_type"
213               c:type="FooFlagsType">
214       <member name="first"
215               value="1"
216               c:identifier="FOO_FLAGS_FIRST"
217               glib:nick="first"/>
218       <member name="second"
219               value="2"
220               c:identifier="FOO_FLAGS_SECOND"
221               glib:nick="second"/>
222       <member name="third"
223               value="4"
224               c:identifier="FOO_FLAGS_THIRD"
225               glib:nick="third"/>
226     </bitfield>
227     <interface name="Interface"
228                c:type="FooInterface"
229                glib:type-name="FooInterface"
230                glib:get-type="foo_interface_get_type">
231       <callback name="do_foo" c:type="do_foo">
232         <return-value transfer-ownership="none">
233           <type name="none" c:type="void"/>
234         </return-value>
235         <parameters>
236           <parameter name="self" transfer-ownership="none">
237             <type name="Interface" c:type="FooInterface*"/>
238           </parameter>
239         </parameters>
240       </callback>
241     </interface>
242     <record name="InterfaceIface" c:type="FooInterfaceIface">
243       <field name="parent_iface">
244         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
245       </field>
246       <callback name="do_foo" c:type="do_foo">
247         <return-value transfer-ownership="none">
248           <type name="none" c:type="void"/>
249         </return-value>
250         <parameters>
251           <parameter name="self" transfer-ownership="none">
252             <type name="Interface" c:type="FooInterface*"/>
253           </parameter>
254         </parameters>
255       </callback>
256     </record>
257     <class name="Object"
258            c:type="FooObject"
259            parent="GObject.Object"
260            glib:type-name="FooObject"
261            glib:get-type="foo_object_get_type"
262            glib:class-struct="ObjectClass">
263       <implements name="Interface"/>
264       <constructor name="new" c:identifier="foo_object_new">
265         <return-value transfer-ownership="full">
266           <type name="Object" c:type="FooObject*"/>
267         </return-value>
268       </constructor>
269       <function name="static_meth" c:identifier="foo_object_static_meth">
270         <return-value transfer-ownership="none">
271           <type name="int" c:type="int"/>
272         </return-value>
273       </function>
274       <method name="external_type" c:identifier="foo_object_external_type">
275         <return-value transfer-ownership="full">
276           <type name="utility.Object" c:type="UtilityObject*"/>
277         </return-value>
278       </method>
279       <method name="various" c:identifier="foo_object_various">
280         <return-value transfer-ownership="none">
281           <type name="none" c:type="void"/>
282         </return-value>
283         <parameters>
284           <parameter name="data" transfer-ownership="none">
285             <type name="any" c:type="void*"/>
286           </parameter>
287           <parameter name="some_type" transfer-ownership="none">
288             <type name="GType" c:type="GType"/>
289           </parameter>
290         </parameters>
291       </method>
292       <method name="take_all" c:identifier="foo_object_take_all">
293         <return-value transfer-ownership="none">
294           <type name="none" c:type="void"/>
295         </return-value>
296         <parameters>
297           <parameter name="x" transfer-ownership="none">
298             <type name="int" c:type="int"/>
299           </parameter>
300           <parameter transfer-ownership="none">
301             <varargs>
302             </varargs>
303           </parameter>
304         </parameters>
305       </method>
306       <method name="with_tdef" c:identifier="foo_object_with_tdef">
307         <return-value transfer-ownership="none">
308           <type name="none" c:type="void"/>
309         </return-value>
310         <parameters>
311           <parameter name="blah" transfer-ownership="none">
312             <type name="List" c:type="FooList*"/>
313           </parameter>
314         </parameters>
315       </method>
316       <method name="new_cookie" c:identifier="foo_object_new_cookie">
317         <return-value transfer-ownership="full">
318           <type name="ObjectCookie" c:type="FooObjectCookie"/>
319         </return-value>
320         <parameters>
321           <parameter name="target" transfer-ownership="none">
322             <type name="utf8" c:type="char*"/>
323           </parameter>
324         </parameters>
325       </method>
326       <method name="is_it_time_yet" c:identifier="foo_object_is_it_time_yet">
327         <return-value transfer-ownership="none">
328           <type name="none" c:type="void"/>
329         </return-value>
330         <parameters>
331           <parameter name="time" transfer-ownership="none">
332             <type name="time_t" c:type="time_t"/>
333           </parameter>
334         </parameters>
335       </method>
336       <method name="get_name" c:identifier="foo_object_get_name">
337         <return-value transfer-ownership="none">
338           <type name="utf8" c:type="char*"/>
339         </return-value>
340       </method>
341       <method name="dup_name" c:identifier="foo_object_dup_name">
342         <return-value transfer-ownership="full">
343           <type name="utf8" c:type="char*"/>
344         </return-value>
345       </method>
346       <method name="handle_glyph" c:identifier="foo_object_handle_glyph">
347         <return-value transfer-ownership="none">
348           <type name="none" c:type="void"/>
349         </return-value>
350         <parameters>
351           <parameter name="glyph" transfer-ownership="none">
352             <type name="utility.Glyph" c:type="UtilityGlyph"/>
353           </parameter>
354         </parameters>
355       </method>
356       <property name="string" writable="1" construct="1">
357         <type name="utf8" c:type="gchararray"/>
358       </property>
359       <field name="parent_instance">
360         <type name="GObject.Object" c:type="GObject"/>
361       </field>
362       <field name="some_int">
363         <type name="int" c:type="int"/>
364       </field>
365       <glib:signal name="signal">
366         <return-value transfer-ownership="full">
367           <type name="utf8" c:type="gchararray"/>
368         </return-value>
369         <parameters>
370           <parameter name="object" transfer-ownership="none">
371             <type name="GObject.Object" c:type="GObject"/>
372           </parameter>
373           <parameter name="p0" transfer-ownership="none">
374             <type name="any" c:type="gpointer"/>
375           </parameter>
376         </parameters>
377       </glib:signal>
378     </class>
379     <record name="ObjectClass"
380             c:type="FooObjectClass"
381             glib:is-class-struct-for="Object">
382       <field name="parent_class">
383         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
384       </field>
385       <callback name="virtual_method" c:type="virtual_method">
386         <return-value transfer-ownership="none">
387           <type name="boolean" c:type="gboolean"/>
388         </return-value>
389         <parameters>
390           <parameter name="object" transfer-ownership="none">
391             <type name="Object" c:type="FooObject*"/>
392           </parameter>
393           <parameter name="first_param" transfer-ownership="none">
394             <type name="int" c:type="int"/>
395           </parameter>
396         </parameters>
397       </callback>
398     </record>
399     <record name="Rectangle" c:type="FooRectangle">
400       <field name="x" writable="1">
401         <type name="int" c:type="gint"/>
402       </field>
403       <field name="y" writable="1">
404         <type name="int" c:type="gint"/>
405       </field>
406       <field name="width" writable="1">
407         <type name="int" c:type="gint"/>
408       </field>
409       <field name="height" writable="1">
410         <type name="int" c:type="gint"/>
411       </field>
412       <constructor name="new" c:identifier="foo_rectangle_new">
413         <return-value transfer-ownership="full">
414           <type name="Rectangle" c:type="FooRectangle*"/>
415         </return-value>
416         <parameters>
417           <parameter name="x" transfer-ownership="none">
418             <type name="int" c:type="int"/>
419           </parameter>
420           <parameter name="y" transfer-ownership="none">
421             <type name="int" c:type="int"/>
422           </parameter>
423           <parameter name="width" transfer-ownership="none">
424             <type name="int" c:type="int"/>
425           </parameter>
426           <parameter name="height" transfer-ownership="none">
427             <type name="int" c:type="int"/>
428           </parameter>
429         </parameters>
430       </constructor>
431       <method name="add" c:identifier="foo_rectangle_add">
432         <return-value transfer-ownership="none">
433           <type name="none" c:type="void"/>
434         </return-value>
435         <parameters>
436           <parameter name="r2" transfer-ownership="none">
437             <type name="Rectangle" c:type="FooRectangle*"/>
438           </parameter>
439         </parameters>
440       </method>
441     </record>
442     <constant name="SUCCESS_INT" value="4408">
443       <type name="int"/>
444     </constant>
445     <record name="Struct" c:type="FooStruct">
446       <field name="priv" writable="1">
447         <type name="StructPrivate" c:type="FooStructPrivate*"/>
448       </field>
449       <field name="member" writable="1">
450         <type name="int" c:type="int"/>
451       </field>
452     </record>
453     <record name="StructPrivate" c:type="FooStructPrivate">
454     </record>
455     <interface name="SubInterface"
456                c:type="FooSubInterface"
457                glib:type-name="FooSubInterface"
458                glib:get-type="foo_sub_interface_get_type">
459       <prerequisite name="Interface"/>
460       <method name="do_bar" c:identifier="foo_sub_interface_do_bar">
461         <return-value transfer-ownership="none">
462           <type name="none" c:type="void"/>
463         </return-value>
464       </method>
465       <callback name="do_bar" c:type="do_bar">
466         <return-value transfer-ownership="none">
467           <type name="none" c:type="void"/>
468         </return-value>
469         <parameters>
470           <parameter name="self" transfer-ownership="none">
471             <type name="SubInterface" c:type="FooSubInterface*"/>
472           </parameter>
473         </parameters>
474       </callback>
475     </interface>
476     <record name="SubInterfaceIface" c:type="FooSubInterfaceIface">
477       <field name="parent_iface">
478         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
479       </field>
480       <callback name="do_bar" c:type="do_bar">
481         <return-value transfer-ownership="none">
482           <type name="none" c:type="void"/>
483         </return-value>
484         <parameters>
485           <parameter name="self" transfer-ownership="none">
486             <type name="SubInterface" c:type="FooSubInterface*"/>
487           </parameter>
488         </parameters>
489       </callback>
490     </record>
491     <class name="Subobject"
492            c:type="FooSubobject"
493            parent="Object"
494            abstract="1"
495            glib:type-name="FooSubobject"
496            glib:get-type="foo_subobject_get_type"
497            glib:class-struct="SubobjectClass">
498       <implements name="Interface"/>
499       <constructor name="new" c:identifier="foo_subobject_new">
500         <return-value transfer-ownership="full">
501           <type name="Subobject" c:type="FooSubobject*"/>
502         </return-value>
503       </constructor>
504       <field name="parent_instance">
505         <type name="Object" c:type="FooObject"/>
506       </field>
507     </class>
508     <record name="SubobjectClass"
509             c:type="FooSubobjectClass"
510             glib:is-class-struct-for="Subobject">
511       <field name="parent_class">
512         <type name="ObjectClass" c:type="FooObjectClass"/>
513       </field>
514     </record>
515     <record name="ThingWithArray" c:type="_FooThingWithArray">
516       <field name="x" writable="1">
517         <type name="int" c:type="int"/>
518       </field>
519       <field name="y" writable="1">
520         <type name="int" c:type="int"/>
521       </field>
522       <field name="lines" writable="1">
523         <array zero-terminated="0" c:type="char" fixed-size="80">
524           <type name="int8"/>
525         </array>
526       </field>
527       <field name="data" writable="1">
528         <type name="any" c:type="guchar*"/>
529       </field>
530     </record>
531     <union name="Union" c:type="_FooUnion">
532       <field name="foo" writable="1">
533         <type name="int" c:type="int"/>
534       </field>
535     </union>
536     <record name="UtilityStruct" c:type="FooUtilityStruct">
537       <field name="bar" writable="1">
538         <type name="utility.Struct" c:type="UtilityStruct"/>
539       </field>
540     </record>
541     <callback name="VarargsCallback" c:type="FooVarargsCallback">
542       <return-value transfer-ownership="none">
543         <type name="none" c:type="void"/>
544       </return-value>
545       <parameters>
546         <parameter name="param" transfer-ownership="none">
547           <type name="utf8" c:type="char*"/>
548         </parameter>
549         <parameter transfer-ownership="none">
550           <varargs>
551           </varargs>
552         </parameter>
553       </parameters>
554     </callback>
555     <function name="enum_type_method" c:identifier="foo_enum_type_method">
556       <return-value transfer-ownership="none">
557         <type name="int" c:type="int"/>
558       </return-value>
559       <parameters>
560         <parameter name="foo_enum" transfer-ownership="none">
561           <type name="EnumType" c:type="FooEnumType"/>
562         </parameter>
563       </parameters>
564     </function>
565     <function name="enum_type_returnv" c:identifier="foo_enum_type_returnv">
566       <return-value transfer-ownership="full">
567         <type name="EnumType" c:type="FooEnumType"/>
568       </return-value>
569       <parameters>
570         <parameter name="x" transfer-ownership="none">
571           <type name="int" c:type="int"/>
572         </parameter>
573       </parameters>
574     </function>
575     <function name="init" c:identifier="foo_init">
576       <return-value transfer-ownership="none">
577         <type name="int" c:type="gint"/>
578       </return-value>
579     </function>
580     <function name="method_external_references"
581               c:identifier="foo_method_external_references">
582       <return-value transfer-ownership="none">
583         <type name="none" c:type="void"/>
584       </return-value>
585       <parameters>
586         <parameter name="object" transfer-ownership="none">
587           <type name="utility.Object" c:type="UtilityObject*"/>
588         </parameter>
589         <parameter name="e" transfer-ownership="none">
590           <type name="utility.EnumType" c:type="UtilityEnumType"/>
591         </parameter>
592         <parameter name="f" transfer-ownership="none">
593           <type name="utility.FlagType" c:type="UtilityFlagType"/>
594         </parameter>
595         <parameter name="s" transfer-ownership="none">
596           <type name="utility.Struct" c:type="UtilityStruct"/>
597         </parameter>
598       </parameters>
599     </function>
600     <function name="test_const_char_param"
601               c:identifier="foo_test_const_char_param">
602       <return-value transfer-ownership="none">
603         <type name="none" c:type="void"/>
604       </return-value>
605       <parameters>
606         <parameter name="param" transfer-ownership="none">
607           <type name="utf8" c:type="char*"/>
608         </parameter>
609       </parameters>
610     </function>
611     <function name="test_const_char_retval"
612               c:identifier="foo_test_const_char_retval">
613       <return-value transfer-ownership="none">
614         <type name="utf8" c:type="char*"/>
615       </return-value>
616     </function>
617     <function name="test_const_struct_param"
618               c:identifier="foo_test_const_struct_param">
619       <return-value transfer-ownership="none">
620         <type name="none" c:type="void"/>
621       </return-value>
622       <parameters>
623         <parameter name="param" transfer-ownership="none">
624           <type name="Struct" c:type="FooStruct*"/>
625         </parameter>
626       </parameters>
627     </function>
628     <function name="test_const_struct_retval"
629               c:identifier="foo_test_const_struct_retval">
630       <return-value transfer-ownership="none">
631         <type name="Struct" c:type="FooStruct*"/>
632       </return-value>
633     </function>
634     <function name="test_string_array" c:identifier="foo_test_string_array">
635       <return-value transfer-ownership="none">
636         <type name="none" c:type="void"/>
637       </return-value>
638       <parameters>
639         <parameter name="array" transfer-ownership="none">
640           <array c:type="char**">
641             <type name="utf8"/>
642           </array>
643         </parameter>
644       </parameters>
645     </function>
646     <function name="test_string_array_with_g"
647               c:identifier="foo_test_string_array_with_g">
648       <return-value transfer-ownership="none">
649         <type name="none" c:type="void"/>
650       </return-value>
651       <parameters>
652         <parameter name="array" transfer-ownership="none">
653           <array c:type="gchar**">
654             <type name="utf8"/>
655           </array>
656         </parameter>
657       </parameters>
658     </function>
659     <function name="test_unsigned_qualifier"
660               c:identifier="foo_test_unsigned_qualifier">
661       <return-value transfer-ownership="none">
662         <type name="none" c:type="void"/>
663       </return-value>
664       <parameters>
665         <parameter name="unsigned_param" transfer-ownership="none">
666           <type name="uint" c:type="unsigned int"/>
667         </parameter>
668       </parameters>
669     </function>
670     <function name="test_unsigned_type" c:identifier="foo_test_unsigned_type">
671       <return-value transfer-ownership="none">
672         <type name="none" c:type="void"/>
673       </return-value>
674       <parameters>
675         <parameter name="unsigned_param" transfer-ownership="none">
676           <type name="uint" c:type="unsigned"/>
677         </parameter>
678       </parameters>
679     </function>
680     <function name="test_varargs_callback"
681               c:identifier="foo_test_varargs_callback">
682       <return-value transfer-ownership="none">
683         <type name="none" c:type="void"/>
684       </return-value>
685       <parameters>
686         <parameter name="i" transfer-ownership="none">
687           <type name="int" c:type="gint"/>
688         </parameter>
689         <parameter name="callback" transfer-ownership="none">
690           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
691         </parameter>
692       </parameters>
693     </function>
694     <function name="test_varargs_callback2"
695               c:identifier="foo_test_varargs_callback2">
696       <return-value transfer-ownership="none">
697         <type name="none" c:type="void"/>
698       </return-value>
699       <parameters>
700         <parameter name="callback" transfer-ownership="none">
701           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
702         </parameter>
703       </parameters>
704     </function>
705     <function name="test_varargs_callback3"
706               c:identifier="foo_test_varargs_callback3">
707       <return-value transfer-ownership="none">
708         <type name="none" c:type="void"/>
709       </return-value>
710       <parameters>
711         <parameter name="callback" transfer-ownership="none">
712           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
713         </parameter>
714         <parameter name="callback2" transfer-ownership="none">
715           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
716         </parameter>
717       </parameters>
718     </function>
719   </namespace>
720 </repository>