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