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