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