Bug 556795 - Fix char ** regression
[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>
19           <type name="none" c:type="void"/>
20         </return-value>
21         <parameters>
22           <parameter name="self">
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>
34           <type name="none" c:type="void"/>
35         </return-value>
36         <parameters>
37           <parameter name="self">
38             <type name="Interface" c:type="FooInterface*"/>
39           </parameter>
40         </parameters>
41       </callback>
42     </record>
43     <class name="Object"
44            c:type="FooObject"
45            parent="GObject.Object"
46            glib:type-name="FooObject"
47            glib:get-type="foo_object_get_type">
48       <implements name="Interface"/>
49       <constructor name="new" c:identifier="foo_object_new">
50         <return-value>
51           <type name="Object" c:type="FooObject*"/>
52         </return-value>
53       </constructor>
54       <method name="external_type" c:identifier="foo_object_external_type">
55         <return-value>
56           <type name="utility.Object" c:type="UtilityObject*"/>
57         </return-value>
58       </method>
59       <method name="various" c:identifier="foo_object_various">
60         <return-value>
61           <type name="none" c:type="void"/>
62         </return-value>
63         <parameters>
64           <parameter name="data">
65             <type name="any" c:type="void*"/>
66           </parameter>
67           <parameter name="some_type">
68             <type name="GType" c:type="GType"/>
69           </parameter>
70         </parameters>
71       </method>
72       <method name="take_all" c:identifier="foo_object_take_all">
73         <return-value>
74           <type name="none" c:type="void"/>
75         </return-value>
76         <parameters>
77           <parameter name="x">
78             <type name="int" c:type="int"/>
79           </parameter>
80           <parameter>
81             <varargs>
82             </varargs>
83           </parameter>
84         </parameters>
85       </method>
86       <method name="with_tdef" c:identifier="foo_object_with_tdef">
87         <return-value>
88           <type name="none" c:type="void"/>
89         </return-value>
90         <parameters>
91           <parameter name="blah">
92             <type name="List" c:type="FooList*"/>
93           </parameter>
94         </parameters>
95       </method>
96       <method name="new_cookie" c:identifier="foo_object_new_cookie">
97         <return-value>
98           <type name="ObjectCookie" c:type="FooObjectCookie"/>
99         </return-value>
100         <parameters>
101           <parameter name="target" transfer-ownership="none">
102             <type name="utf8" c:type="char*"/>
103           </parameter>
104         </parameters>
105       </method>
106       <method name="is_it_time_yet" c:identifier="foo_object_is_it_time_yet">
107         <return-value>
108           <type name="none" c:type="void"/>
109         </return-value>
110         <parameters>
111           <parameter name="time">
112             <type name="time_t" c:type="time_t"/>
113           </parameter>
114         </parameters>
115       </method>
116       <method name="get_name" c:identifier="foo_object_get_name">
117         <return-value transfer-ownership="none">
118           <type name="utf8" c:type="char*"/>
119         </return-value>
120       </method>
121       <method name="dup_name" c:identifier="foo_object_dup_name">
122         <return-value transfer-ownership="full">
123           <type name="utf8" c:type="char*"/>
124         </return-value>
125       </method>
126       <method name="handle_glyph" c:identifier="foo_object_handle_glyph">
127         <return-value>
128           <type name="none" c:type="void"/>
129         </return-value>
130         <parameters>
131           <parameter name="glyph">
132             <type name="utility.Glyph" c:type="UtilityGlyph"/>
133           </parameter>
134         </parameters>
135       </method>
136       <property name="string" writable="1" construct="1">
137         <type name="utf8" c:type="gchararray"/>
138       </property>
139       <field name="parent_instance">
140         <type name="GObject.Object" c:type="GObject"/>
141       </field>
142       <callback name="virtual_method" c:type="virtual_method">
143         <return-value>
144           <type name="boolean" c:type="gboolean"/>
145         </return-value>
146         <parameters>
147           <parameter name="object">
148             <type name="Object" c:type="FooObject*"/>
149           </parameter>
150           <parameter name="first_param">
151             <type name="int" c:type="int"/>
152           </parameter>
153         </parameters>
154       </callback>
155       <glib:signal name="signal">
156         <return-value transfer-ownership="full">
157           <type name="utf8" c:type="gchararray"/>
158         </return-value>
159         <parameters>
160           <parameter name="object">
161             <type name="GObject.Object" c:type="GObject"/>
162           </parameter>
163           <parameter name="p0">
164             <type name="any" c:type="gpointer"/>
165           </parameter>
166         </parameters>
167       </glib:signal>
168     </class>
169     <record name="ObjectClass" c:type="FooObjectClass">
170       <field name="parent_class">
171         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
172       </field>
173       <callback name="virtual_method" c:type="virtual_method">
174         <return-value>
175           <type name="boolean" c:type="gboolean"/>
176         </return-value>
177         <parameters>
178           <parameter name="object">
179             <type name="Object" c:type="FooObject*"/>
180           </parameter>
181           <parameter name="first_param">
182             <type name="int" c:type="int"/>
183           </parameter>
184         </parameters>
185       </callback>
186     </record>
187     <class name="Subobject"
188            c:type="FooSubobject"
189            parent="Object"
190            glib:type-name="FooSubobject"
191            glib:get-type="foo_subobject_get_type">
192       <implements name="Interface"/>
193       <constructor name="new" c:identifier="foo_subobject_new">
194         <return-value>
195           <type name="Subobject" c:type="FooSubobject*"/>
196         </return-value>
197       </constructor>
198       <field name="parent_instance">
199         <type name="Object" c:type="FooObject"/>
200       </field>
201     </class>
202     <record name="SubobjectClass" c:type="FooSubobjectClass">
203       <field name="parent_class">
204         <type name="ObjectClass" c:type="FooObjectClass"/>
205       </field>
206     </record>
207     <function name="init" c:identifier="foo_init">
208       <return-value>
209         <type name="int" c:type="gint"/>
210       </return-value>
211     </function>
212     <enumeration name="EnumType"
213                  glib:type-name="FooEnumType"
214                  glib:get-type="foo_enum_type_get_type"
215                  c:type="FooEnumType">
216       <member name="alpha"
217               value="0"
218               c:identifier="FOO_ENUM_ALPHA"
219               glib:nick="alpha"/>
220       <member name="beta"
221               value="1"
222               c:identifier="FOO_ENUM_BETA"
223               glib:nick="beta"/>
224       <member name="delta"
225               value="2"
226               c:identifier="FOO_ENUM_DELTA"
227               glib:nick="delta"/>
228     </enumeration>
229     <function name="enum_type_method" c:identifier="foo_enum_type_method">
230       <return-value>
231         <type name="int" c:type="int"/>
232       </return-value>
233       <parameters>
234         <parameter name="foo_enum">
235           <type name="EnumType" c:type="FooEnumType"/>
236         </parameter>
237       </parameters>
238     </function>
239     <function name="enum_type_returnv" c:identifier="foo_enum_type_returnv">
240       <return-value>
241         <type name="EnumType" c:type="FooEnumType"/>
242       </return-value>
243       <parameters>
244         <parameter name="x">
245           <type name="int" c:type="int"/>
246         </parameter>
247       </parameters>
248     </function>
249     <bitfield name="FlagsType"
250               glib:type-name="FooFlagsType"
251               glib:get-type="foo_flags_type_get_type"
252               c:type="FooFlagsType">
253       <member name="first"
254               value="1"
255               c:identifier="FOO_FLAGS_FIRST"
256               glib:nick="first"/>
257       <member name="second"
258               value="2"
259               c:identifier="FOO_FLAGS_SECOND"
260               glib:nick="second"/>
261       <member name="third"
262               value="4"
263               c:identifier="FOO_FLAGS_THIRD"
264               glib:nick="third"/>
265     </bitfield>
266     <enumeration name="EnumNoType" c:type="FooEnumNoType">
267       <member name="un" value="1" c:identifier="FOO_ENUM_UN"/>
268       <member name="deux" value="2" c:identifier="FOO_ENUM_DEUX"/>
269       <member name="trois" value="3" c:identifier="FOO_ENUM_TROIS"/>
270       <member name="neuf" value="9" c:identifier="FOO_ENUM_NEUF"/>
271     </enumeration>
272     <enumeration name="EnumFullname" c:type="FooEnumFullname">
273       <member name="one" value="1" c:identifier="FOO_ENUM_FULLNAME_ONE"/>
274       <member name="two" value="2" c:identifier="FOO_ENUM_FULLNAME_TWO"/>
275       <member name="three" value="3" c:identifier="FOO_ENUM_FULLNAME_THREE"/>
276     </enumeration>
277     <record name="Boxed"
278             c:type="FooBoxed"
279             glib:type-name="FooBoxed"
280             glib:get-type="foo_boxed_get_type">
281       <constructor name="new" c:identifier="foo_boxed_new">
282         <return-value>
283           <type name="Boxed" c:type="FooBoxed*"/>
284         </return-value>
285       </constructor>
286       <method name="method" c:identifier="foo_boxed_method">
287         <return-value>
288           <type name="none" c:type="void"/>
289         </return-value>
290       </method>
291     </record>
292     <record name="DBusData"
293             c:type="FooDBusData"
294             glib:type-name="FooDBusData"
295             glib:get-type="foo_dbus_data_get_type">
296       <method name="method" c:identifier="foo_dbus_data_method">
297         <return-value>
298           <type name="none" c:type="void"/>
299         </return-value>
300       </method>
301     </record>
302     <callback name="Callback" c:type="FooCallback">
303       <return-value>
304         <type name="boolean" c:type="gboolean"/>
305       </return-value>
306       <parameters>
307         <parameter name="foo">
308           <type name="Object" c:type="FooObject*"/>
309         </parameter>
310         <parameter name="b">
311           <type name="boolean" c:type="gboolean"/>
312         </parameter>
313         <parameter name="data">
314           <type name="any" c:type="gpointer"/>
315         </parameter>
316       </parameters>
317     </callback>
318     <record name="Struct" c:type="FooStruct">
319       <field name="priv" writable="1">
320         <type name="StructPrivate" c:type="FooStructPrivate*"/>
321       </field>
322       <field name="member" writable="1">
323         <type name="int" c:type="int"/>
324       </field>
325     </record>
326     <record name="StructPrivate" c:type="FooStructPrivate">
327     </record>
328     <record name="Rectangle" c:type="FooRectangle">
329       <field name="x" writable="1">
330         <type name="int" c:type="gint"/>
331       </field>
332       <field name="y" writable="1">
333         <type name="int" c:type="gint"/>
334       </field>
335       <field name="width" writable="1">
336         <type name="int" c:type="gint"/>
337       </field>
338       <field name="height" writable="1">
339         <type name="int" c:type="gint"/>
340       </field>
341     </record>
342     <function name="method_external_references"
343               c:identifier="foo_method_external_references">
344       <return-value>
345         <type name="none" c:type="void"/>
346       </return-value>
347       <parameters>
348         <parameter name="object">
349           <type name="utility.Object" c:type="UtilityObject*"/>
350         </parameter>
351         <parameter name="e">
352           <type name="utility.EnumType" c:type="UtilityEnumType"/>
353         </parameter>
354         <parameter name="f">
355           <type name="utility.FlagType" c:type="UtilityFlagType"/>
356         </parameter>
357         <parameter name="s">
358           <type name="utility.Struct" c:type="UtilityStruct"/>
359         </parameter>
360       </parameters>
361     </function>
362     <function name="rectangle_add" c:identifier="foo_rectangle_add">
363       <return-value>
364         <type name="none" c:type="void"/>
365       </return-value>
366       <parameters>
367         <parameter name="r1">
368           <type name="Rectangle" c:type="FooRectangle*"/>
369         </parameter>
370         <parameter name="r2">
371           <type name="Rectangle" c:type="FooRectangle*"/>
372         </parameter>
373       </parameters>
374     </function>
375     <function name="rectangle_new" c:identifier="foo_rectangle_new">
376       <return-value>
377         <type name="Rectangle" c:type="FooRectangle*"/>
378       </return-value>
379       <parameters>
380         <parameter name="x">
381           <type name="int" c:type="int"/>
382         </parameter>
383         <parameter name="y">
384           <type name="int" c:type="int"/>
385         </parameter>
386         <parameter name="width">
387           <type name="int" c:type="int"/>
388         </parameter>
389         <parameter name="height">
390           <type name="int" c:type="int"/>
391         </parameter>
392       </parameters>
393     </function>
394     <record name="EventAny" c:type="FooEventAny">
395       <field name="send_event" writable="1">
396         <type name="int8" c:type="gint8"/>
397       </field>
398     </record>
399     <record name="EventExpose" c:type="FooEventExpose">
400       <field name="send_event" writable="1">
401         <type name="int8" c:type="gint8"/>
402       </field>
403       <field name="count" writable="1">
404         <type name="int" c:type="gint"/>
405       </field>
406     </record>
407     <union name="Event" c:type="FooEvent">
408       <field name="type" writable="1">
409         <type name="int" c:type="int"/>
410       </field>
411       <field name="any" writable="1">
412         <type name="EventAny" c:type="FooEventAny"/>
413       </field>
414       <field name="expose" writable="1">
415         <type name="EventExpose" c:type="FooEventExpose"/>
416       </field>
417     </union>
418     <record name="BRect"
419             c:type="FooBRect"
420             glib:type-name="FooBRect"
421             glib:get-type="foo_brect_get_type">
422       <field name="x" writable="1">
423         <type name="double" c:type="double"/>
424       </field>
425       <field name="y" writable="1">
426         <type name="double" c:type="double"/>
427       </field>
428       <constructor name="new" c:identifier="foo_brect_new">
429         <return-value>
430           <type name="BRect" c:type="FooBRect*"/>
431         </return-value>
432         <parameters>
433           <parameter name="x">
434             <type name="double" c:type="double"/>
435           </parameter>
436           <parameter name="y">
437             <type name="double" c:type="double"/>
438           </parameter>
439         </parameters>
440       </constructor>
441       <method name="add" c:identifier="foo_brect_add">
442         <return-value>
443           <type name="none" c:type="void"/>
444         </return-value>
445         <parameters>
446           <parameter name="b2">
447             <type name="BRect" c:type="FooBRect*"/>
448           </parameter>
449         </parameters>
450       </method>
451     </record>
452     <union name="BUnion"
453            c:type="FooBUnion"
454            glib:type-name="FooBUnion"
455            glib:get-type="foo_bunion_get_type">
456       <field name="type" writable="1">
457         <type name="int" c:type="int"/>
458       </field>
459       <field name="v" writable="1">
460         <type name="double" c:type="double"/>
461       </field>
462       <field name="rect" writable="1">
463         <type name="BRect" c:type="FooBRect*"/>
464       </field>
465       <constructor name="new" c:identifier="foo_bunion_new">
466         <return-value>
467           <type name="BUnion" c:type="FooBUnion*"/>
468         </return-value>
469       </constructor>
470       <method name="get_contained_type"
471               c:identifier="foo_bunion_get_contained_type">
472         <return-value>
473           <type name="int" c:type="int"/>
474         </return-value>
475       </method>
476     </union>
477     <union name="Union" c:type="_FooUnion">
478       <field name="foo" writable="1">
479         <type name="int" c:type="int"/>
480       </field>
481     </union>
482     <function name="test_unsigned_qualifier"
483               c:identifier="foo_test_unsigned_qualifier">
484       <return-value>
485         <type name="none" c:type="void"/>
486       </return-value>
487       <parameters>
488         <parameter name="unsigned_param">
489           <type name="uint" c:type="unsigned int"/>
490         </parameter>
491       </parameters>
492     </function>
493     <function name="test_unsigned_type" c:identifier="foo_test_unsigned_type">
494       <return-value>
495         <type name="none" c:type="void"/>
496       </return-value>
497       <parameters>
498         <parameter name="unsigned_param">
499           <type name="uint" c:type="unsigned"/>
500         </parameter>
501       </parameters>
502     </function>
503     <function name="test_string_array" c:identifier="foo_test_string_array">
504       <return-value>
505         <type name="none" c:type="void"/>
506       </return-value>
507       <parameters>
508         <parameter name="array">
509           <array c:type="char**">
510             <type name="utf8"/>
511           </array>
512         </parameter>
513       </parameters>
514     </function>
515     <constant name="SUCCESS_INT" value="4408">
516       <type name="int"/>
517     </constant>
518   </namespace>
519 </repository>