changeset 4:427c0332a111

work on DBusTesting
author Frank Benoit <benoit@tionex.de>
date Sun, 21 Oct 2007 14:49:02 +0200
parents c8f7d77e4d4a
children 7c2c75740370
files .hgignore dbus-d-javatests/dbustest.xml dbus-d-javatests/dsrc/DBusTesting.d dbus-d-javatests/dsrc/DBusTestingGen.d dbus-d-javatests/dsrc/dsss.conf dbus-d-javatests/filetree.xml dbus-d-javatests/jsrc/dbustest/DBusTester.java dbus-d/dsrc/dsss.conf dbus-d/dsrc/org/freedesktop/dbus/tool/CreateInterface.d
diffstat 9 files changed, 110 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Sat Oct 20 19:41:51 2007 +0200
+++ b/.hgignore	Sun Oct 21 14:49:02 2007 +0200
@@ -10,4 +10,4 @@
 ^dbus-d-javatests/dsrc/dsss_objs
 ^dbus-d-javatests/dsrc/dsss.last
 ^dbus-d-javatests/dsrc/DHelper
-
+^dbus-d-javatests/dsrc/DBusTesting
--- a/dbus-d-javatests/dbustest.xml	Sat Oct 20 19:41:51 2007 +0200
+++ b/dbus-d-javatests/dbustest.xml	Sun Oct 21 14:49:02 2007 +0200
@@ -8,15 +8,18 @@
     </interface>
     
     <interface name="dbustest.TestControl">
-        <method name="getName">
-            <annotation name="org.dsource.tiolink.Returns" value="res"/>
-            <arg name="res" type="s" direction="out"/>
+        <method name="getCalledTests">
+            <annotation name="org.dsource.dbus.d.Returns" value="res"/>
+            <arg name="res" type="as" direction="out"/>
+        </method>
+        <method name="activateExceptions">
+            <arg name="enable" type="b" direction="in"/>
         </method>
     </interface>
 
     <interface name="dbustest.TestListener">
         <method name="getName">
-            <annotation name="org.dsource.tiolink.Returns" value="res"/>
+            <annotation name="org.dsource.dbus.d.Returns" value="res"/>
             <arg name="res" type="s" direction="out"/>
         </method>
     </interface>
@@ -27,7 +30,7 @@
         </method>
 
         <method name="testI_I">
-            <annotation name="org.dsource.tiolink.Returns" value="res"/>
+            <annotation name="org.dsource.dbus.d.Returns" value="res"/>
             <arg name="res"  type="i" direction="out"/>
             <arg name="arg1" type="i" direction="in" />
         </method>
@@ -40,7 +43,7 @@
         </method>
 
         <method name="testI_I">
-            <annotation name="org.dsource.tiolink.Returns" value="res"/>
+            <annotation name="org.dsource.dbus.d.Returns" value="res"/>
             <arg name="res"  type="i" direction="out"/>
             <arg name="arg1" type="i" direction="in" />
         </method>
--- a/dbus-d-javatests/dsrc/DBusTesting.d	Sat Oct 20 19:41:51 2007 +0200
+++ b/dbus-d-javatests/dsrc/DBusTesting.d	Sun Oct 21 14:49:02 2007 +0200
@@ -2,10 +2,31 @@
 module DBusTesting;
 
 import tango.sys.Environment;
+import tango.io.Stdout;
+import tango.core.Exception;
+
+import org.freedesktop.dbus.DBus;
 
 import DBusTestingGen;
 
+bool exceptionsActive = false;
+char[][] called;
+void checkCall( char[] name ){
+	called ~= name.dup;
+	if( exceptionsActive ){
+		throw new TracedException( "Test Exception thrown" );
+	}
+}
 
+class Dimpl : DBusInterface.dbustest.DImpl {
+	public void testV_V(){
+		checkCall( "testV_V" );
+	}
+	public int testI_I( in int arg1 ){
+		checkCall( "testI_I" );
+		return arg1 + 1234;
+	}
+}
 
 
 
@@ -13,16 +34,16 @@
 	
 	char[] address = Environment.get( "DBUS_ADDRESS" );
 	if( ! address ){
-	    Cout( "Environment variable DBUS_ADDRESS not set" ).newline;
+		Stdout.formatln( "Environment variable DBUS_ADDRESS not set" );
 		return 1;
 	}
-    Cout( "D-App started").newline;
-    DBus.DirectConnection dc = new DBus.DirectConnection( args[1] );
-    Cout("D-App connected").newline;
+    Stdout.formatln( "D-App started");
+    DirectConnection dc = new DirectConnection( args[1] );
+    Stdout.formatln("D-App connected");
 //    auto o = new MyDataFileSystem();
 //    o.registerDBusObject( dc.conn );
 //    Cout("Export obj : ")( o.getDBusInstanceName() ).newline;
     dc.mainLoop();
-    Cout("D-App disconnected").newline;
+    Stdout.formatln("D-App disconnected");
     return 0;
 }
--- a/dbus-d-javatests/dsrc/DBusTestingGen.d	Sat Oct 20 19:41:51 2007 +0200
+++ b/dbus-d-javatests/dsrc/DBusTestingGen.d	Sun Oct 21 14:49:02 2007 +0200
@@ -89,7 +89,7 @@
             "  <method name=\"Ping\">\\n"
             "  </method>\\n"
             "  <method name=\"GetMachineId\">\\n"
-            "        <annotation name=\"org.dsource.tiolink.Returns\" value=\"machine_uuid\" />\\n"
+            "        <annotation name=\"org.dsource.dbus.d.Returns\" value=\"machine_uuid\" />\\n"
             "    <arg  name=\"machine_uuid\" type=\"s\" direction=\"out\" />\\n"
             "  </method>\\n"
             "</interface>\\n");
@@ -97,7 +97,7 @@
         DBusInterface.org.freedesktop.DBus.Introspectable.classinfo,
             "<interface name=\"org.freedesktop.DBus.Introspectable\">\\n"
             "  <method name=\"Introspect\">\\n"
-            "        <annotation name=\"org.dsource.tiolink.Returns\" value=\"xml_data\" />\\n"
+            "        <annotation name=\"org.dsource.dbus.d.Returns\" value=\"xml_data\" />\\n"
             "    <arg  name=\"xml_data\" type=\"s\" direction=\"out\" />\\n"
             "  </method>\\n"
             "</interface>\\n");
@@ -105,7 +105,7 @@
         DBusInterface.org.freedesktop.DBus.Properties.classinfo,
             "<interface name=\"org.freedesktop.DBus.Properties\">\\n"
             "  <method name=\"Get\">\\n"
-            "        <annotation name=\"org.dsource.tiolink.Returns\" value=\"prop\" />\\n"
+            "        <annotation name=\"org.dsource.dbus.d.Returns\" value=\"prop\" />\\n"
             "    <arg  name=\"intf_name\" type=\"s\" direction=\"in\" />\\n"
             "    <arg  name=\"prop_name\" type=\"s\" direction=\"in\" />\\n"
             "    <arg  name=\"prop\" type=\"v\" direction=\"out\" />\\n"
@@ -116,7 +116,7 @@
             "    <arg  name=\"prop\" type=\"v\" direction=\"in\" />\\n"
             "  </method>\\n"
             "  <method name=\"GetAll\">\\n"
-            "        <annotation name=\"org.dsource.tiolink.Returns\" value=\"allprops\" />\\n"
+            "        <annotation name=\"org.dsource.dbus.d.Returns\" value=\"allprops\" />\\n"
             "    <arg  name=\"intf_name\" type=\"s\" direction=\"in\" />\\n"
             "    <arg  name=\"allprops\" type=\"a{sv}\" direction=\"out\" />\\n"
             "  </method>\\n"
@@ -132,7 +132,7 @@
         DBusInterface.dbustest.TestControl.classinfo,
             "<interface name=\"dbustest.TestControl\">\\n"
             "  <method name=\"getName\">\\n"
-            "        <annotation name=\"org.dsource.tiolink.Returns\" value=\"res\" />\\n"
+            "        <annotation name=\"org.dsource.dbus.d.Returns\" value=\"res\" />\\n"
             "    <arg  name=\"res\" type=\"s\" direction=\"out\" />\\n"
             "  </method>\\n"
             "</interface>\\n");
@@ -140,7 +140,7 @@
         DBusInterface.dbustest.TestListener.classinfo,
             "<interface name=\"dbustest.TestListener\">\\n"
             "  <method name=\"getName\">\\n"
-            "        <annotation name=\"org.dsource.tiolink.Returns\" value=\"res\" />\\n"
+            "        <annotation name=\"org.dsource.dbus.d.Returns\" value=\"res\" />\\n"
             "    <arg  name=\"res\" type=\"s\" direction=\"out\" />\\n"
             "  </method>\\n"
             "</interface>\\n");
@@ -150,7 +150,7 @@
             "  <method name=\"testV_V\">\\n"
             "  </method>\\n"
             "  <method name=\"testI_I\">\\n"
-            "        <annotation name=\"org.dsource.tiolink.Returns\" value=\"res\" />\\n"
+            "        <annotation name=\"org.dsource.dbus.d.Returns\" value=\"res\" />\\n"
             "    <arg  name=\"res\" type=\"i\" direction=\"out\" />\\n"
             "    <arg  name=\"arg1\" type=\"i\" direction=\"in\" />\\n"
             "  </method>\\n"
@@ -161,7 +161,7 @@
             "  <method name=\"testV_V\">\\n"
             "  </method>\\n"
             "  <method name=\"testI_I\">\\n"
-            "        <annotation name=\"org.dsource.tiolink.Returns\" value=\"res\" />\\n"
+            "        <annotation name=\"org.dsource.dbus.d.Returns\" value=\"res\" />\\n"
             "    <arg  name=\"res\" type=\"i\" direction=\"out\" />\\n"
             "    <arg  name=\"arg1\" type=\"i\" direction=\"in\" />\\n"
             "  </method>\\n"
--- a/dbus-d-javatests/dsrc/dsss.conf	Sat Oct 20 19:41:51 2007 +0200
+++ b/dbus-d-javatests/dsrc/dsss.conf	Sun Oct 21 14:49:02 2007 +0200
@@ -16,6 +16,21 @@
 target=DBusTests
 version(linux){
     buildflags+=/Dater/ext/flectioned/flectioned.d
+    buildflags+=$LIB_PREFIX/libSDD-tango-*.a
+    buildflags+=-I../../dbus-d/dsrc
+    buildflags+=-L-ldbus-1
+}
+version(Windows){
+    buildflags+=-S..\libs
+    buildflags+=-ll"libdbus-1"
+    buildflags+=-L/SUBSYSTEM:console:5
+}
+
+[DBusTesting.d]
+target=DBusTesting
+version(linux){
+    buildflags+=$INCLUDE_PREFIX/cn/kuehne/flectioned.d
+    buildflags+=$LIB_PREFIX/libSDD-tango-*.a
     buildflags+=-I../../dbus-d/dsrc
     buildflags+=-L-ldbus-1
 }
--- a/dbus-d-javatests/filetree.xml	Sat Oct 20 19:41:51 2007 +0200
+++ b/dbus-d-javatests/filetree.xml	Sun Oct 21 14:49:02 2007 +0200
@@ -3,26 +3,26 @@
 
     <interface name="filetree.DataFileSystem">
         <method name="getRoots">
-            <annotation name="org.dsource.tiolink.Returns" value="roots"/>
+            <annotation name="org.dsource.dbus.d.Returns" value="roots"/>
             <arg name="roots" type="ao" direction="out"/>
         </method>
     </interface>
     
     <interface name="filetree.DataItem">
         <method name="getChilds">
-            <annotation name="org.dsource.tiolink.Returns" value="childs"/>
+            <annotation name="org.dsource.dbus.d.Returns" value="childs"/>
             <arg name="childs" type="ao" direction="out"/>
         </method>
         <method name="isFolder">
-            <annotation name="org.dsource.tiolink.Returns" value="res"/>
+            <annotation name="org.dsource.dbus.d.Returns" value="res"/>
             <arg name="res" type="b" direction="out"/>
         </method>
         <method name="isDrive">
-            <annotation name="org.dsource.tiolink.Returns" value="res"/>
+            <annotation name="org.dsource.dbus.d.Returns" value="res"/>
             <arg name="res" type="b" direction="out"/>
         </method>
         <method name="getName">
-            <annotation name="org.dsource.tiolink.Returns" value="res"/>
+            <annotation name="org.dsource.dbus.d.Returns" value="res"/>
             <arg name="res" type="s" direction="out"/>
         </method>
     </interface>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dbus-d-javatests/jsrc/dbustest/DBusTester.java	Sun Oct 21 14:49:02 2007 +0200
@@ -0,0 +1,44 @@
+package dbustest;
+
+import java.io.IOException;
+
+import org.freedesktop.dbus.DirectConnection;
+
+import dbus_d_javahelper.ConsoleProcess;
+import dbus_d_javahelper.DBusDLoader;
+
+public class DBusTester {
+
+	static DirectConnection dc;
+	static ConsoleProcess process;
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		// TODO Auto-generated method stub
+
+		final String address = DirectConnection.createDynamicTCPSession();
+		DBusDLoader busDLoader = new DBusDLoader( "../dsrc/DBusTesting" );
+		try{
+			System.err.println("Java App: start D");
+			DirectConnection dc = busDLoader.startup();
+
+			DataFileSystem rem = (DataFileSystem) dc.getRemoteObject(
+					"/DHelper/MyDataFileSystem/0", DBusTesting.class);
+			
+			System.err.println("Java App: startup complete");
+		}
+		finally{
+			busDLoader.disconnect();
+		}
+	}
+
+}
+
+
+
+
+
+
+ 
\ No newline at end of file
--- a/dbus-d/dsrc/dsss.conf	Sat Oct 20 19:41:51 2007 +0200
+++ b/dbus-d/dsrc/dsss.conf	Sun Oct 21 14:49:02 2007 +0200
@@ -12,6 +12,7 @@
 
 [org/freedesktop/dbus/tool/CreateInterface.d]
 target=../CreateInterface
+buildflags+=$LIB_PREFIX/libSDD-tango-*.a
 
 
 
--- a/dbus-d/dsrc/org/freedesktop/dbus/tool/CreateInterface.d	Sat Oct 20 19:41:51 2007 +0200
+++ b/dbus-d/dsrc/org/freedesktop/dbus/tool/CreateInterface.d	Sun Oct 21 14:49:02 2007 +0200
@@ -47,7 +47,7 @@
 const char[] ID_DIRECTION_IN  = "in";
 const char[] ID_DIRECTION_OUT = "out";
 const char[] ID_TYPE          = "type";
-const char[] ANNO_RETURNS     = "org.dsource.tiolink.Returns";
+const char[] ANNO_RETURNS     = "org.dsource.dbus.d.Returns";
 IntfTree intfTree;
 
 //-----------------------------------------