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 <emphasis>documentation</emphasis> 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"/>
14 <arg name="response" direction="out" type="s">
15 <annotation name="org.gtk.GDBus.DocString" value="out param doc"/>
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" />
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" />
63 <method name="RequestSignalEmission">
64 <arg direction="in" type="i" name="which_one" />
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"/>
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" />
83 <signal name="AnotherSignal">
84 <arg type="s" name="word" />
87 <property name="y" type="y" access="readwrite">
88 <annotation name="org.gtk.GDBus.DocString" value="<para>Property docs, yah...</para><para>Second paragraph.</para>"/>
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"/>
109 <property name="quiet" type="s" access="readwrite">
110 <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
112 <property name="quiet_too" type="s" access="readwrite">
113 <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
116 <!-- unset properties -->
117 <property name="unset_i" type="i" access="readwrite"/>
118 <property name="unset_d" type="d" access="readwrite"/>
119 <property name="unset_s" type="s" access="readwrite"/>
120 <property name="unset_o" type="o" access="readwrite"/>
121 <property name="unset_g" type="g" access="readwrite"/>
122 <property name="unset_ay" type="ay" access="readwrite"/>
123 <property name="unset_as" type="as" access="readwrite"/>
124 <property name="unset_ao" type="ao" access="readwrite"/>
125 <property name="unset_ag" type="ag" access="readwrite"/>
126 <property name="unset_struct" type="(idsogayasaoag)" access="readwrite"/>
127 </interface> <!-- End org.project.Bar -->
130 <interface name="org.project.Bar.Frobnicator">
131 <method name="RandomMethod"/>
135 <interface name="org.project.Baz">
138 <!-- Outside D-Bus prefix -->
139 <interface name="com.acme.Coyote">
141 <method name="Sleep"/>
142 <method name="Attack"/>
143 <signal name="Surprised"/>
144 <property name="Mood" type="s" access="read"/>
147 <!-- force various names -->
148 <interface name="com.acme.Rocket">
149 <!-- Forcing the typename via an annotation -->
150 <annotation name="org.gtk.GDBus.C.Name" value="Rocket123"/>
152 <!-- ditto method -->
153 <method name="Ignite">
154 <annotation name="org.gtk.GDBus.C.Name" value="ignite_xyz"/>
157 <!-- ditto signal -->
158 <signal name="Exploded">
159 <annotation name="org.gtk.GDBus.C.Name" value="exploded-xyz"/>
162 <!-- ditto property -->
163 <property name="Speed" type="d" access="read">
164 <annotation name="org.gtk.GDBus.C.Name" value="speed-xyz"/>
167 <property name="Direction" type="(ddd)" access="read"/>
169 <!-- Check there's no conflict with the GType iface_name_get_type() function -->
170 <property name="Type" type="s" access="read"/>
173 <!-- Test interface for forcing use of GVariant -->
174 <interface name="org.project.Bat">
176 <!-- Forcing GVariant for types that would be mapped -->
177 <method name="ForceMethod">
178 <arg name="force_in_i" type="i" direction="in">
179 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
181 <arg name="force_in_s" type="s" direction="in">
182 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
184 <arg name="force_in_ay" type="ay" direction="in">
185 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
187 <arg name="force_in_struct" type="(i)" direction="in">
188 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
190 <arg name="force_out_i" type="i" direction="out">
191 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
193 <arg name="force_out_s" type="s" direction="out">
194 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
196 <arg name="force_out_ay" type="ay" direction="out">
197 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
199 <arg name="force_out_struct" type="(i)" direction="out">
200 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
204 <signal name="ForceSignal">
205 <arg name="force_i" type="i">
206 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
208 <arg name="force_s" type="s">
209 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
211 <arg name="force_ay" type="ay">
212 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
214 <arg name="force_struct" type="(i)">
215 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
219 <property name="force_i" type="i" access="readwrite">
220 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
222 <property name="force_s" type="s" access="readwrite">
223 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
225 <property name="force_ay" type="ay" access="readwrite">
226 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
228 <property name="force_struct" type="(i)" access="readwrite">
229 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
232 </interface> <!-- End org.project.Bat -->
234 <!-- Test interface for g-authorized-method -->
235 <interface name="org.project.Authorize">
236 <method name="CheckNotAuthorized"/>
237 <method name="CheckAuthorized"/>
238 <method name="CheckNotAuthorizedFromObject"/>
239 </interface> <!-- End org.project.Authorize -->
241 <!-- Test interfaces for handling methods in a thread -->
242 <interface name="org.project.MethodThreads">
243 <method name="GetSelf">
244 <arg name="self_pointer" direction="out" type="s"/>
246 </interface> <!-- End org.project.MethodThreads -->
249 org.project.InlineDocs:
250 @short_description: The short description
252 Here is the <emphasis>longer</emphasis> description.
256 <interface name="org.project.InlineDocs">
260 @greeting: The docs for greeting parameter.
261 @response: The docs for response parameter.
263 The docs for the actual method.
267 Test of inline links: The #org.project.Bar D-Bus interface,
268 org.project.Bar.HelloWorld() method, the
269 #org.project.Bar::TestSignal, the
270 #org.project.InlineDocs:Property3 property.
272 <method name="FooMethod">
273 <arg name="greeting" direction="in" type="s"/>
274 <arg name="response" direction="out" type="s"/>
277 <!-- Method2: foo -->
278 <method name="Method2">
279 <arg name="greeting" direction="in" type="s"/>
280 <arg name="response" direction="out" type="s"/>
285 @blah: The docs for blah parameter.
286 @boo: The docs for boo parameter.
288 The docs for the actual signal.
290 <signal name="BarSignal">
291 <!-- Non-Doc comment -->
292 <arg name="blah" type="s"/>
293 <arg name="boo" type="s"/>
296 <!-- BazProperty: The docs for the property. -->
297 <property name="BazProperty" type="s" access="read"/>
299 <!-- Property2: Another property
300 This should be a new paragraph.
302 <property name="Property2" type="s" access="read"/>
306 This should NOT be a new paragraph.
308 <property name="Property3" type="s" access="read"/>
311 First line. With trailing whitespace.
312 Second line (same paragraph).
314 <property name="Property4" type="s" access="read"/>
317 First line (second paragraph). With trailing whitespace.
318 Second line (same paragraph).
321 2 should include indented space
327 <property name="Property5" type="s" access="read"/>
332 Here's some fancy use of XML inside the comment.
335 <term><option>namespace</option></term>
337 <para>The namespace to use for generated code. In CamelCase format.</para>
341 <term><option>output-prefix</option></term>
344 A prefix to use for all generated files. Defaults to <filename>generated</filename>.
350 <property name="FancyProperty" type="s" access="read"/>
353 <interface name="ChangingInterfaceV1">
354 <method name="FooMethod"/>
355 <method name="BarMethod"/>
356 <method name="BazMethod"/>
357 <signal name="FooSignal"/>
358 <signal name="BarSignal"/>
359 <signal name="BazSignal"/>
362 <!-- ChangingInterfaceV2:
364 <interface name="ChangingInterfaceV2">
369 <signal name="NewSignalIn2"/>
374 <method name="NewMethodIn2"/>
376 <!-- reverse order -->
377 <signal name="BazSignal"/>
378 <signal name="BarSignal"/>
379 <signal name="FooSignal"/>
380 <method name="BazMethod"/>
381 <method name="BarMethod"/>
382 <method name="FooMethod"/>
385 <!-- ChangingInterfaceV10:
387 <interface name="ChangingInterfaceV10">
392 <signal name="AddedSignalIn10"/>
393 <method name="AddedMethodIn10">
394 <annotation name="org.gtk.GDBus.Since" value="10.0"/>
401 <signal name="NewSignalIn2"/>
406 <method name="NewMethodIn2"/>
408 <!-- reverse order -->
409 <signal name="BazSignal"/>
410 <signal name="BarSignal"/>
411 <signal name="FooSignal"/>
412 <method name="BazMethod"/>
413 <method name="BarMethod"/>
414 <method name="FooMethod"/>
417 <interface name="TestUglyCaseInterface">
418 <annotation name="org.gtk.GDBus.C.Name" value="TesT_ugly_CASE_Interface"/>
420 <method name="GetiSCSIServers">
421 <annotation name="org.gtk.GDBus.C.Name" value="Get_iSCSI_Servers"/>
424 <signal name="serversUPDATEDNOW">
425 <annotation name="org.gtk.GDBus.C.Name" value="Servers_UPDATED_NOW"/>
428 <property name="UGLYNAME" type="i" access="readwrite">
429 <annotation name="org.gtk.GDBus.C.Name" value="UGLY_NAME"/>
435 @short_description: A an example of an deprecated interface
437 This is an example of a deprecated interface.
439 <interface name="OldieInterface">
440 <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
443 <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
447 <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
450 <property name="Bat" type="i" access="readwrite">
451 <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
455 <!-- ensure we don't choke on unknown/unexpected XML tags or unknown/unexpected attribyutes (#650874) -->
456 <interface name="UnknownXmlTags" unexpected="boo">
458 <anotherTagWeIgnore>yadaydaydaydayda</anotherTagWeIgnore>
460 <method name="CanSetTimezone" also_unexpected="1">
461 <annotation name="org.freedesktop.DBus.GLib.Async" value="" also_unexpected="1">
464 <arg name="value" direction="out" type="i" also_unexpected="1">
469 <signal name="SomeSignal" also_unexpected="1">
472 <property name="SomeProperty" type="s" access="readwrite" also_unexpected="1">
478 <interface name="test.FDPassing">
479 <method name="HelloFD">
480 <annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
481 <arg name="greeting" direction="in" type="s"/>
482 <arg name="response" direction="out" type="s"/>
484 <method name="NoAnnotation">
485 <arg name="greeting" direction="in" type="h"/>
486 <arg name="greeting_locale" direction="in" type="s"/>
487 <arg name="response" direction="out" type="h"/>
488 <arg name="response_locale" direction="out" type="s"/>
490 <method name="NoAnnotationNested">
491 <arg name="files" type="a{sh}" direction="in"/>
495 <interface name="Naming">
496 <property name="Type" type="i" access="readwrite"/>