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