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