Mercurial > projects > dbus-d
comparison dbus-d-javatests/dsrc/DBusTests.d @ 0:a5576806d36d
recreate repository without any libs for lightweight repository
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 20 Oct 2007 18:07:18 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a5576806d36d |
---|---|
1 module DBusTests; | |
2 | |
3 import DBusTestsInterfaces; | |
4 import org.freedesktop.dbus.Variant; | |
5 import org.freedesktop.dbus.DBus; | |
6 | |
7 import tango.core.Signal; | |
8 import tango.io.Stdout; | |
9 | |
10 void main(char[][] args) { | |
11 if( args.length != 2 ){ | |
12 Stderr.formatln( "there is not exaclty one argument" ); | |
13 } | |
14 Stdout.formatln("... started D app ..."); | |
15 DirectConnection dc = new DirectConnection( args[1] ); | |
16 Stdout.formatln("Connected"); | |
17 auto o = new Tests(); | |
18 o.registerDBusObject( dc.conn ); | |
19 Stdout.formatln("Export obj : {}", o.getDBusInstanceName() ); | |
20 Stdout.flush(); | |
21 dc.mainLoop(); | |
22 Stdout.formatln("Disconnected"); | |
23 Stdout.flush(); | |
24 Stderr.flush(); | |
25 } | |
26 | |
27 | |
28 class Tests : DBusObject, DBusInterface.dbustests.Tests { | |
29 public this(){ | |
30 super(); | |
31 signalVoid().attach( & detectSignalVoid ); | |
32 signalInt().attach( & detectSignalInt ); | |
33 signalStruct().attach( & detectSignalStruct ); | |
34 signalArray().attach( & detectSignalArray ); | |
35 } | |
36 public void identityVoid(){ | |
37 } | |
38 public bool identityBool(in bool input ){ | |
39 return input; | |
40 } | |
41 public byte identityByte(in byte input ){ | |
42 return input; | |
43 } | |
44 public short identityShort(in short input ){ | |
45 return input; | |
46 } | |
47 public ushort identityUShort(in ushort input ){ | |
48 return input; | |
49 } | |
50 public int identityInt(in int input ){ | |
51 return input; | |
52 } | |
53 public uint identityUInt(in uint input ){ | |
54 return input; | |
55 } | |
56 public long identityLong(in long input ){ | |
57 //Stdout.formatln( "D: identityLong {}", input ).flush(); | |
58 return input; | |
59 } | |
60 public ulong identityULong(in ulong input ){ | |
61 return input; | |
62 } | |
63 public double identityDouble(in double input ){ | |
64 return input; | |
65 } | |
66 public char[] identityString(in char[] input ){ | |
67 return input; | |
68 } | |
69 public DBusVariant identityVariant(in DBusVariant input ){ | |
70 return input; | |
71 } | |
72 | |
73 public bool[] identityArrayBool(in bool[] input ){ | |
74 Stdout.formatln( "identityArrayBool length {}", input.length ); | |
75 return input.dup; | |
76 } | |
77 public byte[] identityArrayByte(in byte[] input ){ | |
78 return input; | |
79 } | |
80 public short[] identityArrayShort(in short[] input ){ | |
81 return input; | |
82 } | |
83 public ushort[] identityArrayUShort(in ushort[] input ){ | |
84 return input; | |
85 } | |
86 public int[] identityArrayInt(in int[] input ){ | |
87 return input; | |
88 } | |
89 public uint[] identityArrayUInt(in uint[] input ){ | |
90 return input; | |
91 } | |
92 public long[] identityArrayLong(in long[] input ){ | |
93 return input; | |
94 } | |
95 public ulong[] identityArrayULong(in ulong[] input ){ | |
96 return input; | |
97 } | |
98 public double[] identityArrayDouble(in double[] input ){ | |
99 return input; | |
100 } | |
101 public char[][] identityArrayString(in char[][] input ){ | |
102 return input; | |
103 } | |
104 public DBusVariant[] identityArrayVariant(in DBusVariant[] input ){ | |
105 return input; | |
106 } | |
107 public long Sum(in int[] input ){ | |
108 long res; | |
109 foreach( v; input ){ | |
110 res += v; | |
111 } | |
112 return res; | |
113 } | |
114 public uint Sum(in byte[] input ){ | |
115 long res; | |
116 foreach( v; input ){ | |
117 res += v; | |
118 } | |
119 return res; | |
120 } | |
121 public char[][][ char[] ] InvertMapping(in char[][ char[] ] input ){ | |
122 Stderr.formatln( "InvertMapping();" ).flush; | |
123 char[][][ char[] ] res; | |
124 foreach( k, v; input ){ | |
125 if( v in res ){ | |
126 char[][] data = res[ v ]; | |
127 data ~= k.dup; | |
128 res[ v ] = data; | |
129 } | |
130 else{ | |
131 res[ v.dup ] = [k.dup]; | |
132 } | |
133 } | |
134 Stderr.formatln( "InvertMapping();" ).flush; | |
135 return res; | |
136 } | |
137 public void DeStruct( | |
138 in Struct!( char[], uint, short ) input, | |
139 out char[] res_1, | |
140 out uint res_2, | |
141 out short res_3 ) | |
142 { | |
143 res_1 = input.t[0]; | |
144 res_2 = input.t[1]; | |
145 res_3 = input.t[2]; | |
146 } | |
147 | |
148 public DBusVariant[] Primitize(in DBusVariant input ){ | |
149 DBusVariant[] res; | |
150 return null; | |
151 } | |
152 public bool Invert(in bool input ){ | |
153 return !input; | |
154 } | |
155 | |
156 // ------------------------------------------ | |
157 Signal!() signalVoid_; | |
158 public Signal!()* signalVoid(){ | |
159 return & signalVoid_; | |
160 } | |
161 private void detectSignalVoid(){ | |
162 Stdout.formatln( "signalVoid();" ); | |
163 } | |
164 // ------------------------------------------ | |
165 Signal!( int ) signalInt_; | |
166 public Signal!( int )* signalInt(){ | |
167 return & signalInt_; | |
168 } | |
169 private void detectSignalInt( int v ){ | |
170 Stdout.formatln( "signalInt({});", v ); | |
171 } | |
172 // ------------------------------------------ | |
173 Signal!( Struct!( char[], uint, short ) ) signalStruct_; | |
174 public Signal!( Struct!( char[], uint, short ) )* signalStruct(){ | |
175 return & signalStruct_; | |
176 } | |
177 private void detectSignalStruct( Struct!( char[], uint, short ) value ){ | |
178 Stdout.formatln( "signalStruct( Struct!( {}, {}, {} ) );", value.t[0], value.t[1], value.t[2] ); | |
179 } | |
180 // ------------------------------------------ | |
181 Signal!( Struct!( char[], uint, short )[] ) signalArray_; | |
182 public Signal!( Struct!( char[], uint, short )[] )* signalArray(){ | |
183 return & signalArray_; | |
184 } | |
185 private void detectSignalArray(Struct!( char[], uint, short )[] value ){ | |
186 Stdout.formatln( "signalArray() with {} elements", value.length ); | |
187 foreach( v; value ){ | |
188 Stdout.formatln( " {} {} {}", v.t[0], v.t[1], v.t[2] ); | |
189 } | |
190 Stdout.flush; | |
191 } | |
192 // ------------------------------------------ | |
193 Signal!( DBusVariant ) signalVariant_; | |
194 public Signal!( DBusVariant )* signalVariant(){ | |
195 return & signalVariant_; | |
196 } | |
197 // ------------------------------------------ | |
198 | |
199 } | |
200 | |
201 | |
202 | |
203 |