summaryrefslogtreecommitdiffstats
path: root/src/tests/sbus_codegen_tests.xml
blob: 83807b9c287f633ad59398519a7520e667003f00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
    <!--
      This file should exercise as many aspects of the sbus_codegen as
      possible. See sbus_codegen_test.c for verification.
    -->

    <!--
      This is an interface, it will get a sbus_interface_meta struct.
      Its name will be com_planetexpress_Ship__meta, since no c symbol
      is specified.
    -->
    <interface name="com.planetexpress.Ship">
        <!-- A property -->
        <property name="Color" type="s" access="read"/>

        <!-- A method with two in and one out argument -->
        <method name="MoveUniverse">
            <!-- This is a boolean arg -->
            <arg name="smoothly" type="b" direction="in"/>
            <!-- This is an uint32 arg -->
            <arg name="speed_factor" type="u" direction="in"/>
            <!-- This is a string arg -->
            <arg name="where_we_crashed" type="s" direction="out"/>
        </method>

        <!-- A signal with one argument -->
        <signal name="BecameSentient">
            <arg name="gender" type="s"/>
        </signal>

        <!-- A method with a specific c name -->
        <method name="Crash">
            <annotation value="crash_now" name="org.freedesktop.DBus.GLib.CSymbol"/>
            <arg name="where" type="s" direction="in"/>
        </method>

        <!-- A method without a type-safe handler -->
        <method name="Land">
            <annotation name="org.freedesktop.sssd.RawHandler" value="true"/>
        </method>
    </interface>

    <!--
      Another interface. It's C name will be test_pilot, since we've overridden
      the c symbol name.
    -->
    <interface name="com.planetexpress.Pilot">
        <annotation value="test_pilot" name="org.freedesktop.DBus.GLib.CSymbol"/>

        <!-- A property -->
        <property name="FullName" type="s" access="readwrite"/>


        <!-- A simple method -->
        <method name="Blink">
            <!-- This is an uint32 arg -->
            <arg name="duration" type="u" direction="in"/>
            <!-- This is a boolean return value -->
            <arg name="crashed" type="b" direction="out"/>
        </method>

        <!-- A method with every type of basic argument, in both directions -->
        <method name="Eject">
            <arg name="byte" type="y" direction="in"/>
            <arg name="boolean" type="b" direction="in"/>
            <arg name="int16" type="n" direction="in"/>
            <arg name="uint16" type="q" direction="in"/>
            <arg name="int32" type="i" direction="in"/>
            <arg name="uint32" type="u" direction="in"/>
            <arg name="int64" type="x" direction="in"/>
            <arg name="uint64" type="t" direction="in"/>
            <arg name="double" type="d" direction="in"/>
            <arg name="string" type="s" direction="in"/>
            <arg name="object_path" type="o" direction="in"/>
            <arg name="byte_array" type="ay" direction="in"/>
            <arg name="int16_array" type="an" direction="in"/>
            <arg name="uint16_array" type="aq" direction="in"/>
            <arg name="int32_array" type="ai" direction="in"/>
            <arg name="uint32_array" type="au" direction="in"/>
            <arg name="int64_array" type="ax" direction="in"/>
            <arg name="uint64_array" type="at" direction="in"/>
            <arg name="double_array" type="ad" direction="in"/>
            <arg name="string_array" type="as" direction="in"/>
            <arg name="object_path_array" type="ao" direction="in"/>
            <arg name="byte" type="y" direction="out"/>
            <arg name="boolean" type="b" direction="out"/>
            <arg name="int16" type="n" direction="out"/>
            <arg name="uint16" type="q" direction="out"/>
            <arg name="int32" type="i" direction="out"/>
            <arg name="uint32" type="u" direction="out"/>
            <arg name="int64" type="x" direction="out"/>
            <arg name="uint64" type="t" direction="out"/>
            <arg name="double" type="d" direction="out"/>
            <arg name="string" type="s" direction="out"/>
            <arg name="object_path" type="o" direction="out"/>
            <arg name="byte_array" type="ay" direction="out"/>
            <arg name="int16_array" type="an" direction="out"/>
            <arg name="uint16_array" type="aq" direction="out"/>
            <arg name="int32_array" type="ai" direction="out"/>
            <arg name="uint32_array" type="au" direction="out"/>
            <arg name="int64_array" type="ax" direction="out"/>
            <arg name="uint64_array" type="at" direction="out"/>
            <arg name="double_array" type="ad" direction="out"/>
            <arg name="string_array" type="as" direction="out"/>
            <arg name="object_path_array" type="ao" direction="out"/>
        </method>

    </interface>

</node>