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