glib/gio/tests/test-codegen.xml
Thomas Jost 5731f06541
gdbus-codegen: honor "Property.EmitsChangedSignal" annotations
Co-Authored-by: Andy Holmes <andrew.g.r.holmes@gmail.com>
2018-12-19 11:06:31 +01:00

491 lines
17 KiB
XML

<node>
<!-- Fully Loaded Interface -->
<interface name="org.project.Bar">
<annotation name="org.gtk.GDBus.DocString" value="The org.project.Bar interface is very complicated."/>
<annotation name="org.gtk.GDBus.DocString.Short" value="Brief interface doc string"/>
<method name="HelloWorld">
<annotation name="org.gtk.GDBus.DocString" value="Method &lt;emphasis&gt;documentation&lt;/emphasis&gt; blablablabla."/>
<annotation name="ExistingAnnotation" value="blah"/>
<annotation name="org.gtk.GDBus.ExistingInternalAnnotation" value="booh"/>
<arg name="greeting" direction="in" type="s">
<annotation name="org.gtk.GDBus.DocString" value="in param doc"/>
</arg>
<arg name="response" direction="out" type="s">
<annotation name="org.gtk.GDBus.DocString" value="out param doc"/>
</arg>
</method>
<method name="TestPrimitiveTypes">
<arg direction="in" type="y" name="val_byte" />
<arg direction="in" type="b" name="val_boolean" />
<arg direction="in" type="n" name="val_int16" />
<arg direction="in" type="q" name="val_uint16" />
<arg direction="in" type="i" name="val_int32" />
<arg direction="in" type="u" name="val_uint32" />
<arg direction="in" type="x" name="val_int64" />
<arg direction="in" type="t" name="val_uint64" />
<arg direction="in" type="d" name="val_double" />
<arg direction="in" type="s" name="val_string" />
<arg direction="in" type="o" name="val_objpath" />
<arg direction="in" type="g" name="val_signature" />
<arg direction="in" type="ay" name="val_bytestring" />
<arg direction="out" type="y" name="ret_byte" />
<arg direction="out" type="b" name="ret_boolean" />
<arg direction="out" type="n" name="ret_int16" />
<arg direction="out" type="q" name="ret_uint16" />
<arg direction="out" type="i" name="ret_int32" />
<arg direction="out" type="u" name="ret_uint32" />
<arg direction="out" type="x" name="ret_int64" />
<arg direction="out" type="t" name="ret_uint64" />
<arg direction="out" type="d" name="ret_double" />
<arg direction="out" type="s" name="ret_string" />
<arg direction="out" type="o" name="ret_objpath" />
<arg direction="out" type="g" name="ret_signature" />
<arg direction="out" type="ay" name="ret_bytestring" />
</method>
<method name="TestNonPrimitiveTypes">
<arg direction="in" type="a{ss}" name="dict_s_to_s" />
<arg direction="in" type="a{s(ii)}" name="dict_s_to_pairs" />
<arg direction="in" type="(iss)" name="a_struct" />
<arg direction="in" type="as" name="array_of_strings" />
<arg direction="out" type="as" name="ret_array_of_strings" />
<arg direction="in" type="ao" name="array_of_objpaths" />
<arg direction="out" type="ao" name="ret_array_of_objpaths" />
<arg direction="in" type="ag" name="array_of_signatures" />
<arg direction="out" type="ag" name="ret_array_of_signatures" />
<arg direction="in" type="aay" name="array_of_bytestrings" />
<arg direction="out" type="aay" name="ret_array_of_bytestrings" />
<arg direction="out" type="ay" name="result" />
</method>
<method name="RequestSignalEmission">
<arg direction="in" type="i" name="which_one" />
</method>
<method name="RequestMultiPropertyMods"/>
<method name="UnimplementedMethod"/>
<method name="PropertyCancellation"/>
<signal name="TestSignal">
<annotation name="org.gtk.GDBus.DocString" value="Signal documentation."/>
<arg type="i" name="val_int32">
<annotation name="org.gtk.GDBus.DocString" value="Signal param docs"/>
</arg>
<arg type="as" name="array_of_strings" />
<arg type="aay" name="array_of_bytestrings" />
<arg type="a{s(ii)}" name="dict_s_to_pairs" />
</signal>
<signal name="AnotherSignal">
<arg type="s" name="word" />
</signal>
<property name="y" type="y" access="readwrite">
<annotation name="org.gtk.GDBus.DocString" value="&lt;para&gt;Property docs, yah...&lt;/para&gt;&lt;para&gt;Second paragraph.&lt;/para&gt;"/>
</property>
<property name="b" type="b" access="readwrite"/>
<property name="n" type="n" access="readwrite"/>
<property name="q" type="q" access="readwrite"/>
<property name="i" type="i" access="readwrite"/>
<property name="u" type="u" access="readwrite"/>
<property name="x" type="x" access="readwrite"/>
<property name="t" type="t" access="readwrite"/>
<property name="d" type="d" access="readwrite"/>
<property name="s" type="s" access="readwrite"/>
<property name="o" type="o" access="readwrite"/>
<property name="g" type="g" access="readwrite"/>
<property name="ay" type="ay" access="readwrite"/>
<property name="as" type="as" access="readwrite"/>
<property name="aay" type="aay" access="readwrite"/>
<property name="ao" type="ao" access="readwrite"/>
<property name="ag" type="ag" access="readwrite"/>
<property name="FinallyNormalName" type="s" access="readwrite"/>
<property name="ReadonlyProperty" type="s" access="read"/>
<property name="WriteonlyProperty" type="s" access="write"/>
<property name="quiet" type="s" access="readwrite">
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
</property>
<property name="quiet_too" type="s" access="readwrite">
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
</property>
<!-- unset properties -->
<property name="unset_i" type="i" access="readwrite"/>
<property name="unset_d" type="d" access="readwrite"/>
<property name="unset_s" type="s" access="readwrite"/>
<property name="unset_o" type="o" access="readwrite"/>
<property name="unset_g" type="g" access="readwrite"/>
<property name="unset_ay" type="ay" access="readwrite"/>
<property name="unset_as" type="as" access="readwrite"/>
<property name="unset_ao" type="ao" access="readwrite"/>
<property name="unset_ag" type="ag" access="readwrite"/>
<property name="unset_struct" type="(idsogayasaoag)" access="readwrite"/>
</interface> <!-- End org.project.Bar -->
<!-- Namespaced -->
<interface name="org.project.Bar.Frobnicator">
<method name="RandomMethod"/>
</interface>
<!-- Empty -->
<interface name="org.project.Baz">
</interface>
<!-- Outside D-Bus prefix -->
<interface name="com.acme.Coyote">
<method name="Run"/>
<method name="Sleep"/>
<method name="Attack"/>
<signal name="Surprised"/>
<property name="Mood" type="s" access="read"/>
</interface>
<!-- force various names -->
<interface name="com.acme.Rocket">
<!-- Forcing the typename via an annotation -->
<annotation name="org.gtk.GDBus.C.Name" value="Rocket123"/>
<!-- ditto method -->
<method name="Ignite">
<annotation name="org.gtk.GDBus.C.Name" value="ignite_xyz"/>
</method>
<!-- ditto signal -->
<signal name="Exploded">
<annotation name="org.gtk.GDBus.C.Name" value="exploded-xyz"/>
</signal>
<!-- ditto property -->
<property name="Speed" type="d" access="read">
<annotation name="org.gtk.GDBus.C.Name" value="speed-xyz"/>
</property>
<property name="Direction" type="(ddd)" access="read"/>
<!-- Check there's no conflict with the GType iface_name_get_type() function -->
<property name="Type" type="s" access="read"/>
</interface>
<!-- Test interface for forcing use of GVariant -->
<interface name="org.project.Bat">
<!-- Forcing GVariant for types that would be mapped -->
<method name="ForceMethod">
<arg name="force_in_i" type="i" direction="in">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_in_s" type="s" direction="in">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_in_ay" type="ay" direction="in">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_in_struct" type="(i)" direction="in">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_out_i" type="i" direction="out">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_out_s" type="s" direction="out">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_out_ay" type="ay" direction="out">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_out_struct" type="(i)" direction="out">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
</method>
<signal name="ForceSignal">
<arg name="force_i" type="i">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_s" type="s">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_ay" type="ay">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg name="force_struct" type="(i)">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
</signal>
<property name="force_i" type="i" access="readwrite">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</property>
<property name="force_s" type="s" access="readwrite">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</property>
<property name="force_ay" type="ay" access="readwrite">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</property>
<property name="force_struct" type="(i)" access="readwrite">
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</property>
</interface> <!-- End org.project.Bat -->
<!-- Test interface for g-authorized-method -->
<interface name="org.project.Authorize">
<method name="CheckNotAuthorized"/>
<method name="CheckAuthorized"/>
<method name="CheckNotAuthorizedFromObject"/>
</interface> <!-- End org.project.Authorize -->
<!-- Test interfaces for handling methods in a thread -->
<interface name="org.project.MethodThreads">
<method name="GetSelf">
<arg name="self_pointer" direction="out" type="s"/>
</method>
</interface> <!-- End org.project.MethodThreads -->
<!--
org.project.InlineDocs:
@short_description: The short description
Here is the <emphasis>longer</emphasis> description.
With lots of stuff.
-->
<interface name="org.project.InlineDocs">
<!--
FooMethod:
@greeting: The docs for greeting parameter.
@response: The docs for response parameter.
The docs for the actual method.
Multi-paragraph.
Test of inline links: The #org.project.Bar D-Bus interface,
org.project.Bar.HelloWorld() method, the
#org.project.Bar::TestSignal, the
#org.project.InlineDocs:Property3 property.
-->
<method name="FooMethod">
<arg name="greeting" direction="in" type="s"/>
<arg name="response" direction="out" type="s"/>
</method>
<!-- Method2: foo -->
<method name="Method2">
<arg name="greeting" direction="in" type="s"/>
<arg name="response" direction="out" type="s"/>
</method>
<!--
BarSignal:
@blah: The docs for blah parameter.
@boo: The docs for boo parameter.
The docs for the actual signal.
-->
<signal name="BarSignal">
<!-- Non-Doc comment -->
<arg name="blah" type="s"/>
<arg name="boo" type="s"/>
</signal>
<!-- BazProperty: The docs for the property. -->
<property name="BazProperty" type="s" access="read"/>
<!-- Property2: Another property
This should be a new paragraph.
-->
<property name="Property2" type="s" access="read"/>
<!-- Property3:
First line.
This should NOT be a new paragraph.
-->
<property name="Property3" type="s" access="read"/>
<!-- Property4:
First line. With trailing whitespace.
Second line (same paragraph).
-->
<property name="Property4" type="s" access="read"/>
<!-- Property5: Foo
First line (second paragraph). With trailing whitespace.
Second line (same paragraph).
<programlisting>
1 program listing
2 should include indented space
3
4
5
</programlisting>
-->
<property name="Property5" type="s" access="read"/>
<!--
FancyProperty:
Here's some fancy use of XML inside the comment.
<variablelist>
<varlistentry>
<term><option>namespace</option></term>
<listitem>
<para>The namespace to use for generated code. In CamelCase format.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>output-prefix</option></term>
<listitem>
<para>
A prefix to use for all generated files. Defaults to <filename>generated</filename>.
</para>
</listitem>
</varlistentry>
</variablelist>
-->
<property name="FancyProperty" type="s" access="read"/>
</interface>
<interface name="ChangingInterfaceV1">
<method name="FooMethod"/>
<method name="BarMethod"/>
<method name="BazMethod"/>
<signal name="FooSignal"/>
<signal name="BarSignal"/>
<signal name="BazSignal"/>
</interface>
<!-- ChangingInterfaceV2:
-->
<interface name="ChangingInterfaceV2">
<!--
NewSignalIn2:
@since: 2.0
-->
<signal name="NewSignalIn2"/>
<!--
NewMethodIn2:
@since: 2.0
-->
<method name="NewMethodIn2"/>
<!-- reverse order -->
<signal name="BazSignal"/>
<signal name="BarSignal"/>
<signal name="FooSignal"/>
<method name="BazMethod"/>
<method name="BarMethod"/>
<method name="FooMethod"/>
</interface>
<!-- ChangingInterfaceV10:
-->
<interface name="ChangingInterfaceV10">
<!--
AddedSignalIn10:
@since: 10.0
-->
<signal name="AddedSignalIn10"/>
<method name="AddedMethodIn10">
<annotation name="org.gtk.GDBus.Since" value="10.0"/>
</method>
<!--
NewSignalIn2:
@since: 2.0
-->
<signal name="NewSignalIn2"/>
<!--
NewMethodIn2:
@since: 2.0
-->
<method name="NewMethodIn2"/>
<!-- reverse order -->
<signal name="BazSignal"/>
<signal name="BarSignal"/>
<signal name="FooSignal"/>
<method name="BazMethod"/>
<method name="BarMethod"/>
<method name="FooMethod"/>
</interface>
<interface name="TestUglyCaseInterface">
<annotation name="org.gtk.GDBus.C.Name" value="TesT_ugly_CASE_Interface"/>
<method name="GetiSCSIServers">
<annotation name="org.gtk.GDBus.C.Name" value="Get_iSCSI_Servers"/>
</method>
<signal name="serversUPDATEDNOW">
<annotation name="org.gtk.GDBus.C.Name" value="Servers_UPDATED_NOW"/>
</signal>
<property name="UGLYNAME" type="i" access="readwrite">
<annotation name="org.gtk.GDBus.C.Name" value="UGLY_NAME"/>
</property>
</interface>
<!--
OldieInterface:
@short_description: A an example of an deprecated interface
This is an example of a deprecated interface.
-->
<interface name="OldieInterface">
<annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
<method name="Foo">
<annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
</method>
<signal name="Bar">
<annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
</signal>
<property name="Bat" type="i" access="readwrite">
<annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
</property>
</interface>
<!-- ensure we don't choke on unknown/unexpected XML tags or unknown/unexpected attribyutes (#650874) -->
<interface name="UnknownXmlTags" unexpected="boo">
<someUnknownTag>
<anotherTagWeIgnore>yadaydaydaydayda</anotherTagWeIgnore>
</someUnknownTag>
<method name="CanSetTimezone" also_unexpected="1">
<annotation name="org.freedesktop.DBus.GLib.Async" value="" also_unexpected="1">
<unknownTag/>
</annotation>
<arg name="value" direction="out" type="i" also_unexpected="1">
<unknownTag/>
</arg>
<unknownTag/>
</method>
<signal name="SomeSignal" also_unexpected="1">
<unknownTag/>
</signal>
<property name="SomeProperty" type="s" access="readwrite" also_unexpected="1">
<unknownTag/>
</property>
</interface>
<unknownTag/>
<interface name="FDPassing">
<method name="HelloFD">
<annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
<arg name="greeting" direction="in" type="s"/>
<arg name="response" direction="out" type="s"/>
</method>
</interface>
<interface name="Naming">
<property name="Type" type="i" access="readwrite"/>
</interface>
</node>