summaryrefslogtreecommitdiffstats
path: root/src/tests/sbus_codegen_tests.xml
blob: 90e27425414167f025c34da3ae5c06dc5a36f165 (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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!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>

        <!-- Properties with every type of basic argument, so far read only -->
        <property name="byte" type="y" access="read"/>
        <property name="boolean" type="b" access="read"/>
        <property name="int16" type="n" access="read"/>
        <property name="uint16" type="q" access="read"/>
        <property name="int32" type="i" access="read"/>
        <property name="uint32" type="u" access="read"/>
        <property name="int64" type="x" access="read"/>
        <property name="uint64" type="t" access="read"/>
        <property name="double" type="d" access="read"/>
        <property name="string" type="s" access="read"/>
        <property name="object_path" type="o" access="read"/>

        <!-- Special properties to test error codes -->
        <property name="null_string" type="s" access="read"/>
        <property name="null_path" type="o" access="read"/>

        <!-- Property arrays with every type of basic argument except boolean
             which we can't do (yet) -->
        <property name="byte_array" type="ay" access="read"/>
        <property name="int16_array" type="an" access="read"/>
        <property name="uint16_array" type="aq" access="read"/>
        <property name="int32_array" type="ai" access="read"/>
        <property name="uint32_array" type="au" access="read"/>
        <property name="int64_array" type="ax" access="read"/>
        <property name="uint64_array" type="at" access="read"/>
        <property name="double_array" type="ad" access="read"/>
        <property name="string_array" type="as" access="read"/>
        <property name="object_path_array" type="ao" access="read"/>

    </interface>

</node>