Merge branch 'g-clear-pointer-no-side-effects' into 'master'
[glib.git] / gio / tests / test-codegen.xml
blob885a21f7788f035da0f2f2599c56e23d144d9fba
1 <node>
2   <!-- Fully Loaded Interface -->
3   <interface name="org.project.Bar">
4     <annotation name="org.gtk.GDBus.DocString" value="The org.project.Bar interface is very complicated."/>
5     <annotation name="org.gtk.GDBus.DocString.Short" value="Brief interface doc string"/>
7     <method name="HelloWorld">
8       <annotation name="org.gtk.GDBus.DocString" value="Method &lt;emphasis&gt;documentation&lt;/emphasis&gt; blablablabla."/>
9       <annotation name="ExistingAnnotation" value="blah"/>
10       <annotation name="org.gtk.GDBus.ExistingInternalAnnotation" value="booh"/>
11       <arg name="greeting" direction="in" type="s">
12         <annotation name="org.gtk.GDBus.DocString" value="in param doc"/>
13       </arg>
14       <arg name="response" direction="out" type="s">
15         <annotation name="org.gtk.GDBus.DocString" value="out param doc"/>
16       </arg>
17     </method>
19     <method name="TestPrimitiveTypes">
20       <arg direction="in"  type="y" name="val_byte" />
21       <arg direction="in"  type="b" name="val_boolean" />
22       <arg direction="in"  type="n" name="val_int16" />
23       <arg direction="in"  type="q" name="val_uint16" />
24       <arg direction="in"  type="i" name="val_int32" />
25       <arg direction="in"  type="u" name="val_uint32" />
26       <arg direction="in"  type="x" name="val_int64" />
27       <arg direction="in"  type="t" name="val_uint64" />
28       <arg direction="in"  type="d" name="val_double" />
29       <arg direction="in"  type="s" name="val_string" />
30       <arg direction="in"  type="o" name="val_objpath" />
31       <arg direction="in"  type="g" name="val_signature" />
32       <arg direction="in"  type="ay" name="val_bytestring" />
33       <arg direction="out" type="y" name="ret_byte" />
34       <arg direction="out" type="b" name="ret_boolean" />
35       <arg direction="out" type="n" name="ret_int16" />
36       <arg direction="out" type="q" name="ret_uint16" />
37       <arg direction="out" type="i" name="ret_int32" />
38       <arg direction="out" type="u" name="ret_uint32" />
39       <arg direction="out" type="x" name="ret_int64" />
40       <arg direction="out" type="t" name="ret_uint64" />
41       <arg direction="out" type="d" name="ret_double" />
42       <arg direction="out" type="s" name="ret_string" />
43       <arg direction="out" type="o" name="ret_objpath" />
44       <arg direction="out" type="g" name="ret_signature" />
45       <arg direction="out" type="ay" name="ret_bytestring" />
46     </method>
48     <method name="TestNonPrimitiveTypes">
49       <arg direction="in" type="a{ss}" name="dict_s_to_s" />
50       <arg direction="in" type="a{s(ii)}" name="dict_s_to_pairs" />
51       <arg direction="in" type="(iss)" name="a_struct" />
52       <arg direction="in" type="as" name="array_of_strings" />
53       <arg direction="out" type="as" name="ret_array_of_strings" />
54       <arg direction="in" type="ao" name="array_of_objpaths" />
55       <arg direction="out" type="ao" name="ret_array_of_objpaths" />
56       <arg direction="in" type="ag" name="array_of_signatures" />
57       <arg direction="out" type="ag" name="ret_array_of_signatures" />
58       <arg direction="in" type="aay" name="array_of_bytestrings" />
59       <arg direction="out" type="aay" name="ret_array_of_bytestrings" />
60       <arg direction="out" type="ay" name="result" />
61     </method>
63     <method name="RequestSignalEmission">
64       <arg direction="in" type="i" name="which_one" />
65     </method>
67     <method name="RequestMultiPropertyMods"/>
69     <method name="UnimplementedMethod"/>
71     <method name="PropertyCancellation"/>
73     <signal name="TestSignal">
74       <annotation name="org.gtk.GDBus.DocString" value="Signal documentation."/>
75       <arg type="i" name="val_int32">
76         <annotation name="org.gtk.GDBus.DocString" value="Signal param docs"/>
77       </arg>
78       <arg type="as" name="array_of_strings" />
79       <arg type="aay" name="array_of_bytestrings" />
80       <arg type="a{s(ii)}" name="dict_s_to_pairs" />
81     </signal>
83     <signal name="AnotherSignal">
84       <arg type="s" name="word" />
85     </signal>
87     <property name="y" type="y" access="readwrite">
88       <annotation name="org.gtk.GDBus.DocString" value="&lt;para&gt;Property docs, yah...&lt;/para&gt;&lt;para&gt;Second paragraph.&lt;/para&gt;"/>
89     </property>
90     <property name="b" type="b" access="readwrite"/>
91     <property name="n" type="n" access="readwrite"/>
92     <property name="q" type="q" access="readwrite"/>
93     <property name="i" type="i" access="readwrite"/>
94     <property name="u" type="u" access="readwrite"/>
95     <property name="x" type="x" access="readwrite"/>
96     <property name="t" type="t" access="readwrite"/>
97     <property name="d" type="d" access="readwrite"/>
98     <property name="s" type="s" access="readwrite"/>
99     <property name="o" type="o" access="readwrite"/>
100     <property name="g" type="g" access="readwrite"/>
101     <property name="ay" type="ay" access="readwrite"/>
102     <property name="as" type="as" access="readwrite"/>
103     <property name="aay" type="aay" access="readwrite"/>
104     <property name="ao" type="ao" access="readwrite"/>
105     <property name="ag" type="ag" access="readwrite"/>
106     <property name="FinallyNormalName" type="s" access="readwrite"/>
107     <property name="ReadonlyProperty" type="s" access="read"/>
108     <property name="WriteonlyProperty" type="s" access="write"/>
110     <!-- unset properties -->
111     <property name="unset_i" type="i" access="readwrite"/>
112     <property name="unset_d" type="d" access="readwrite"/>
113     <property name="unset_s" type="s" access="readwrite"/>
114     <property name="unset_o" type="o" access="readwrite"/>
115     <property name="unset_g" type="g" access="readwrite"/>
116     <property name="unset_ay" type="ay" access="readwrite"/>
117     <property name="unset_as" type="as" access="readwrite"/>
118     <property name="unset_ao" type="ao" access="readwrite"/>
119     <property name="unset_ag" type="ag" access="readwrite"/>
120     <property name="unset_struct" type="(idsogayasaoag)" access="readwrite"/>
121   </interface> <!-- End org.project.Bar -->
123   <!-- Namespaced -->
124   <interface name="org.project.Bar.Frobnicator">
125     <method name="RandomMethod"/>
126   </interface>
128   <!-- Empty -->
129   <interface name="org.project.Baz">
130   </interface>
132   <!-- Outside D-Bus prefix -->
133   <interface name="com.acme.Coyote">
134     <method name="Run"/>
135     <method name="Sleep"/>
136     <method name="Attack"/>
137     <signal name="Surprised"/>
138     <property name="Mood" type="s" access="read"/>
139   </interface>
141   <!-- force various names -->
142   <interface name="com.acme.Rocket">
143     <!-- Forcing the typename via an annotation -->
144     <annotation name="org.gtk.GDBus.C.Name" value="Rocket123"/>
146     <!-- ditto method -->
147     <method name="Ignite">
148       <annotation name="org.gtk.GDBus.C.Name" value="ignite_xyz"/>
149     </method>
151     <!-- ditto signal -->
152     <signal name="Exploded">
153       <annotation name="org.gtk.GDBus.C.Name" value="exploded-xyz"/>
154     </signal>
156     <!-- ditto property -->
157     <property name="Speed" type="d" access="read">
158       <annotation name="org.gtk.GDBus.C.Name" value="speed-xyz"/>
159     </property>
161     <property name="Direction" type="(ddd)" access="read"/>
163     <!-- Check there's no conflict with the GType iface_name_get_type() function -->
164     <property name="Type" type="s" access="read"/>
165   </interface>
167   <!-- Test interface for forcing use of GVariant -->
168   <interface name="org.project.Bat">
170     <!-- Forcing GVariant for types that would be mapped -->
171     <method name="ForceMethod">
172       <arg name="force_in_i" type="i" direction="in">
173         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
174       </arg>
175       <arg name="force_in_s" type="s" direction="in">
176         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
177       </arg>
178       <arg name="force_in_ay" type="ay" direction="in">
179         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
180       </arg>
181       <arg name="force_in_struct" type="(i)" direction="in">
182         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
183       </arg>
184       <arg name="force_out_i" type="i" direction="out">
185         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
186       </arg>
187       <arg name="force_out_s" type="s" direction="out">
188         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
189       </arg>
190       <arg name="force_out_ay" type="ay" direction="out">
191         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
192       </arg>
193       <arg name="force_out_struct" type="(i)" direction="out">
194         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
195       </arg>
196     </method>
198     <signal name="ForceSignal">
199       <arg name="force_i" type="i">
200         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
201       </arg>
202       <arg name="force_s" type="s">
203         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
204       </arg>
205       <arg name="force_ay" type="ay">
206         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
207       </arg>
208       <arg name="force_struct" type="(i)">
209         <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
210       </arg>
211     </signal>
213     <property name="force_i" type="i" access="readwrite">
214       <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
215     </property>
216     <property name="force_s" type="s" access="readwrite">
217       <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
218     </property>
219     <property name="force_ay" type="ay" access="readwrite">
220       <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
221     </property>
222     <property name="force_struct" type="(i)" access="readwrite">
223       <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
224     </property>
226   </interface> <!-- End org.project.Bat -->
228   <!-- Test interface for g-authorized-method -->
229   <interface name="org.project.Authorize">
230     <method name="CheckNotAuthorized"/>
231     <method name="CheckAuthorized"/>
232     <method name="CheckNotAuthorizedFromObject"/>
233   </interface> <!-- End org.project.Authorize -->
235   <!-- Test interfaces for handling methods in a thread -->
236   <interface name="org.project.MethodThreads">
237     <method name="GetSelf">
238       <arg name="self_pointer" direction="out" type="s"/>
239     </method>
240   </interface> <!-- End org.project.MethodThreads -->
242   <!--
243     org.project.InlineDocs:
244     @short_description: The short description
246     Here is the <emphasis>longer</emphasis> description.
248     With lots of stuff.
249   -->
250   <interface name="org.project.InlineDocs">
252     <!--
253       FooMethod:
254       @greeting: The docs for greeting parameter.
255       @response: The docs for response parameter.
257       The docs for the actual method.
259       Multi-paragraph.
261       Test of inline links: The #org.project.Bar D-Bus interface,
262       org.project.Bar.HelloWorld() method, the
263       #org.project.Bar::TestSignal, the
264       #org.project.InlineDocs:Property3 property.
265     -->
266     <method name="FooMethod">
267       <arg name="greeting" direction="in" type="s"/>
268       <arg name="response" direction="out" type="s"/>
269     </method>
271     <!-- Method2: foo -->
272     <method name="Method2">
273       <arg name="greeting" direction="in" type="s"/>
274       <arg name="response" direction="out" type="s"/>
275     </method>
277     <!--
278       BarSignal:
279       @blah: The docs for blah parameter.
280       @boo: The docs for boo parameter.
282       The docs for the actual signal.
283     -->
284     <signal name="BarSignal">
285       <!-- Non-Doc comment -->
286       <arg name="blah" type="s"/>
287       <arg name="boo" type="s"/>
288     </signal>
290     <!-- BazProperty: The docs for the property. -->
291     <property name="BazProperty" type="s" access="read"/>
293     <!-- Property2: Another property
294          This should be a new paragraph.
295     -->
296     <property name="Property2" type="s" access="read"/>
298     <!-- Property3:
299          First line.
300          This should NOT be a new paragraph.
301     -->
302     <property name="Property3" type="s" access="read"/>
304     <!-- Property4:  
305          First line. With trailing whitespace.  
306          Second line (same paragraph).  
307     -->
308     <property name="Property4" type="s" access="read"/>
310     <!-- Property5: Foo  
311          First line (second paragraph). With trailing whitespace.  
312          Second line (same paragraph).  
313 <programlisting>
314 1 program listing
315  2 should include indented space
316   3
317    4
318     5
319 </programlisting>
320     -->
321     <property name="Property5" type="s" access="read"/>
324     <!--
325       FancyProperty:
326       Here's some fancy use of XML inside the comment.
327       <variablelist>
328         <varlistentry>
329           <term><option>namespace</option></term>
330           <listitem>
331             <para>The namespace to use for generated code. In CamelCase format.</para>
332           </listitem>
333         </varlistentry>
334         <varlistentry>
335           <term><option>output-prefix</option></term>
336           <listitem>
337             <para>
338               A prefix to use for all generated files. Defaults to <filename>generated</filename>.
339             </para>
340           </listitem>
341         </varlistentry>
342       </variablelist>
343     -->
344     <property name="FancyProperty" type="s" access="read"/>
345   </interface>
347   <interface name="ChangingInterfaceV1">
348     <method name="FooMethod"/>
349     <method name="BarMethod"/>
350     <method name="BazMethod"/>
351     <signal name="FooSignal"/>
352     <signal name="BarSignal"/>
353     <signal name="BazSignal"/>
354   </interface>
356   <!-- ChangingInterfaceV2:
357   -->
358   <interface name="ChangingInterfaceV2">
359     <!--
360       NewSignalIn2:
361       @since: 2.0
362     -->
363     <signal name="NewSignalIn2"/>
364     <!--
365       NewMethodIn2:
366       @since: 2.0
367     -->
368     <method name="NewMethodIn2"/>
370     <!-- reverse order -->
371     <signal name="BazSignal"/>
372     <signal name="BarSignal"/>
373     <signal name="FooSignal"/>
374     <method name="BazMethod"/>
375     <method name="BarMethod"/>
376     <method name="FooMethod"/>
377   </interface>
379   <!-- ChangingInterfaceV10:
380   -->
381   <interface name="ChangingInterfaceV10">
382     <!--
383       AddedSignalIn10:
384       @since: 10.0
385     -->
386     <signal name="AddedSignalIn10"/>
387     <method name="AddedMethodIn10">
388       <annotation name="org.gtk.GDBus.Since" value="10.0"/>
389     </method>
391     <!--
392       NewSignalIn2:
393       @since: 2.0
394     -->
395     <signal name="NewSignalIn2"/>
396     <!--
397       NewMethodIn2:
398       @since: 2.0
399     -->
400     <method name="NewMethodIn2"/>
402     <!-- reverse order -->
403     <signal name="BazSignal"/>
404     <signal name="BarSignal"/>
405     <signal name="FooSignal"/>
406     <method name="BazMethod"/>
407     <method name="BarMethod"/>
408     <method name="FooMethod"/>
409   </interface>
411   <interface name="TestUglyCaseInterface">
412     <annotation name="org.gtk.GDBus.C.Name" value="TesT_ugly_CASE_Interface"/>
414     <method name="GetiSCSIServers">
415       <annotation name="org.gtk.GDBus.C.Name" value="Get_iSCSI_Servers"/>
416     </method>
418     <signal name="serversUPDATEDNOW">
419       <annotation name="org.gtk.GDBus.C.Name" value="Servers_UPDATED_NOW"/>
420     </signal>
422     <property name="UGLYNAME" type="i" access="readwrite">
423       <annotation name="org.gtk.GDBus.C.Name" value="UGLY_NAME"/>
424     </property>
425   </interface>
427   <!--
428     OldieInterface:
429     @short_description: A an example of an deprecated interface
431     This is an example of a deprecated interface.
432     -->
433   <interface name="OldieInterface">
434     <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
436     <method name="Foo">
437       <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
438     </method>
440     <signal name="Bar">
441       <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
442     </signal>
444     <property name="Bat" type="i" access="readwrite">
445       <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
446     </property>
447   </interface>
449   <!-- ensure we don't choke on unknown/unexpected XML tags or unknown/unexpected attribyutes (#650874) -->
450   <interface name="UnknownXmlTags" unexpected="boo">
451     <someUnknownTag>
452       <anotherTagWeIgnore>yadaydaydaydayda</anotherTagWeIgnore>
453     </someUnknownTag>
454     <method name="CanSetTimezone" also_unexpected="1">
455       <annotation name="org.freedesktop.DBus.GLib.Async" value="" also_unexpected="1">
456         <unknownTag/>
457       </annotation>
458       <arg name="value" direction="out" type="i" also_unexpected="1">
459         <unknownTag/>
460       </arg>
461       <unknownTag/>
462     </method>
463     <signal name="SomeSignal" also_unexpected="1">
464       <unknownTag/>
465     </signal>
466     <property name="SomeProperty" type="s" access="readwrite" also_unexpected="1">
467       <unknownTag/>
468     </property>
469   </interface>
470   <unknownTag/>
472   <interface name="FDPassing">
473     <method name="HelloFD">
474       <annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
475       <arg name="greeting" direction="in" type="s"/>
476       <arg name="response" direction="out" type="s"/>
477     </method>
478   </interface>
480   <interface name="Naming">
481     <property name="Type" type="i" access="readwrite"/>
482   </interface>
484 </node>