Mercurial > projects > dbus-d
annotate dbus-d-javatests/jsrc/dbustest/DBusTester.java @ 6:963d271f7c25
disabled event stuff, to have working example
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 28 Oct 2007 19:35:38 +0100 |
parents | 7c2c75740370 |
children |
rev | line source |
---|---|
4 | 1 package dbustest; |
2 | |
3 import org.freedesktop.dbus.DirectConnection; | |
5 | 4 import org.freedesktop.dbus.UInt16; |
5 import org.freedesktop.dbus.UInt32; | |
6 import org.freedesktop.dbus.UInt64; | |
4 | 7 |
8 import dbus_d_javahelper.DBusDLoader; | |
9 | |
10 public class DBusTester { | |
11 | |
5 | 12 static int handledCounter; |
4 | 13 |
5 | 14 private static void ensure( boolean cond, String msg ){ |
15 if( !cond ){ | |
16 throw new RuntimeException( msg ); | |
17 } | |
18 } | |
6
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
19 |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
20 // private static void ensureEqualLists( List<String> list1, String[] list2 ){ |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
21 // Collections.sort(list1); |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
22 // ensure( list1.size() == list2.length, "List sizes are not equal" ); |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
23 // for( int i = 0; i < list1.size(); i++ ){ |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
24 // ensure( list1.get(i).equals(list2[i]), "List content is not equal" ); |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
25 // } |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
26 // } |
5 | 27 |
4 | 28 public static void main(String[] args) { |
29 | |
5 | 30 // instantiate the DBusDLoader and give the path to the D executable. |
31 // In case you want to run from a jar, the executable can be placed in | |
32 // the jar and an optional resource path can be given. | |
33 DBusDLoader busDLoader = new DBusDLoader( "dsrc/DBusTesting" ); | |
34 | |
4 | 35 try{ |
5 | 36 |
37 // Start the D app and use the returned connection | |
4 | 38 System.err.println("Java App: start D"); |
39 DirectConnection dc = busDLoader.startup(); | |
40 | |
5 | 41 // e.g. get an Object that is exported by the D app. |
42 DImpl rem = (DImpl) dc.getRemoteObject( | |
43 "/DBusTesting/Dimpl/0", DImpl.class); | |
44 | |
45 | |
46 // Test calling D | |
47 | |
48 // 1. void func(void) | |
49 rem.testV_V(); | |
50 | |
51 // 2. int func( int ) | |
52 { | |
53 int res = rem.testI_I( 4321 ); | |
54 System.out.printf( "testI_I( 4321 ) => %d\n", res ); | |
55 } | |
4 | 56 |
5 | 57 // 3. more simple arguments |
58 { | |
59 NTuple10<Boolean, Byte, Short, UInt16, Integer, UInt32, Long, UInt64, Double, String> res = | |
60 rem.testParamAllSimpleTyes( | |
61 true, | |
62 (byte)100, | |
63 (short)1000, | |
64 new UInt16( 20000 ), | |
65 2000000000, | |
66 new UInt32( 4000000000l ), | |
67 9223372036854775806L, | |
68 new UInt64( "18446744073709551614" ), | |
69 1.0, | |
70 "ABCabc" ); | |
71 ensure( res.a == false, "bool" ); | |
72 ensure( res.b == 101, "byte" ); | |
73 ensure( res.c == 1001, "short" ); | |
74 ensure( res.d.equals( new UInt16( 20001 )), "ushort" ); | |
75 ensure( res.e == 2000000001, "int" ); | |
76 ensure( res.f.equals( new UInt32( 4000000001L )), "uint" ); | |
77 ensure( res.g == 9223372036854775807L, "long" ); | |
78 ensure( res.h.equals( new UInt64( "18446744073709551615" )), "ulong" ); | |
79 ensure( res.i == 1.0, "double" ); | |
80 ensure( res.j.equals( "cbaCBA" ), "string" ); | |
81 } | |
6
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
82 |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
83 // // 4. cause the test object to generate signal |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
84 // DBusSigHandler<testSigI> handler = new DBusSigHandler<DImpl.testSigI>(){ |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
85 // public void handle(testSigI s) { |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
86 // handledCounter++; |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
87 // } |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
88 // }; |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
89 // dc.addSigHandler( DImpl.testSigI.class, handler ); |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
90 // |
963d271f7c25
disabled event stuff, to have working example
Frank Benoit <benoit@tionex.de>
parents:
5
diff
changeset
|
91 // rem.triggerSignal( 10 ); |
5 | 92 |
93 Thread.sleep(100); | |
94 System.out.printf( "HandledCounter: %d\n", handledCounter ); | |
4 | 95 System.err.println("Java App: startup complete"); |
5 | 96 } catch (Exception e) { |
97 e.printStackTrace(); | |
4 | 98 } |
99 finally{ | |
100 busDLoader.disconnect(); | |
101 } | |
102 } | |
103 } | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 |