diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dbus-d-javatests/dsrc/DBusTests.d	Sat Oct 20 18:07:18 2007 +0200
@@ -0,0 +1,203 @@
+module DBusTests;
+
+import DBusTestsInterfaces;
+import org.freedesktop.dbus.Variant;
+import org.freedesktop.dbus.DBus;
+
+import tango.core.Signal;
+import tango.io.Stdout;
+
+void main(char[][] args) {
+    if( args.length != 2 ){
+            Stderr.formatln( "there is not exaclty one argument" );
+    }
+    Stdout.formatln("... started D app ...");
+    DirectConnection dc = new DirectConnection( args[1] );
+    Stdout.formatln("Connected");
+    auto o = new Tests();
+    o.registerDBusObject( dc.conn );
+    Stdout.formatln("Export obj : {}", o.getDBusInstanceName() );
+Stdout.flush();
+    dc.mainLoop();
+    Stdout.formatln("Disconnected");
+Stdout.flush();
+Stderr.flush();
+}
+
+
+class Tests : DBusObject, DBusInterface.dbustests.Tests {
+    public this(){
+        super();
+        signalVoid().attach( & detectSignalVoid );
+        signalInt().attach( & detectSignalInt );
+        signalStruct().attach( & detectSignalStruct );
+        signalArray().attach( & detectSignalArray );
+    }
+    public void identityVoid(){
+    }
+    public bool identityBool(in bool input ){
+        return input;
+    }
+    public byte identityByte(in byte input ){
+        return input;
+    }
+    public short identityShort(in short input ){
+        return input;
+    }
+    public ushort identityUShort(in ushort input ){
+        return input;
+    }
+    public int identityInt(in int input ){
+        return input;
+    }
+    public uint identityUInt(in uint input ){
+        return input;
+    }
+    public long identityLong(in long input ){
+        //Stdout.formatln( "D: identityLong {}", input ).flush();
+        return input;
+    }
+    public ulong identityULong(in ulong input ){
+        return input;
+    }
+    public double identityDouble(in double input ){
+        return input;
+    }
+    public char[] identityString(in char[] input ){
+        return input;
+    }
+    public DBusVariant identityVariant(in DBusVariant input ){
+        return input;
+    }
+
+    public bool[] identityArrayBool(in bool[] input ){
+        Stdout.formatln( "identityArrayBool length {}", input.length );
+        return input.dup;
+    }
+    public byte[] identityArrayByte(in byte[] input ){
+        return input;
+    }
+    public short[] identityArrayShort(in short[] input ){
+        return input;
+    }
+    public ushort[] identityArrayUShort(in ushort[] input ){
+        return input;
+    }
+    public int[] identityArrayInt(in int[] input ){
+        return input;
+    }
+    public uint[] identityArrayUInt(in uint[] input ){
+        return input;
+    }
+    public long[] identityArrayLong(in long[] input ){
+        return input;
+    }
+    public ulong[] identityArrayULong(in ulong[] input ){
+        return input;
+    }
+    public double[] identityArrayDouble(in double[] input ){
+        return input;
+    }
+    public char[][] identityArrayString(in char[][] input ){
+        return input;
+    }
+    public DBusVariant[] identityArrayVariant(in DBusVariant[] input ){
+        return input;
+    }
+    public long Sum(in int[] input ){
+        long res;
+        foreach( v; input ){
+            res += v;
+        }
+        return res;
+    }
+    public uint Sum(in byte[] input ){
+        long res;
+        foreach( v; input ){
+            res += v;
+        }
+        return res;
+    }
+    public char[][][ char[] ] InvertMapping(in char[][ char[] ] input ){
+        Stderr.formatln( "InvertMapping();" ).flush;
+        char[][][ char[] ] res;
+        foreach( k, v; input ){
+            if( v in res ){
+                char[][] data = res[ v ];
+                data ~= k.dup;
+                res[ v ] = data;
+            }
+            else{
+                res[ v.dup ] = [k.dup];
+            }
+        }
+        Stderr.formatln( "InvertMapping();" ).flush;
+        return res;
+    }
+    public void DeStruct(
+        in Struct!( char[], uint, short ) input,
+        out char[] res_1,
+        out uint   res_2,
+        out short  res_3 )
+    {
+        res_1 = input.t[0];
+        res_2 = input.t[1];
+        res_3 = input.t[2];
+    }
+
+    public DBusVariant[] Primitize(in DBusVariant input ){
+        DBusVariant[] res;
+        return null;
+    }
+    public bool Invert(in bool input ){
+        return !input;
+    }
+
+    // ------------------------------------------
+    Signal!() signalVoid_;
+    public Signal!()* signalVoid(){
+        return & signalVoid_;
+    }
+    private void detectSignalVoid(){
+        Stdout.formatln( "signalVoid();" );
+    }
+    // ------------------------------------------
+    Signal!( int ) signalInt_;
+    public Signal!( int )* signalInt(){
+        return & signalInt_;
+    }
+    private void detectSignalInt( int v ){
+        Stdout.formatln( "signalInt({});", v );
+    }
+    // ------------------------------------------
+    Signal!( Struct!( char[], uint, short ) ) signalStruct_;
+    public Signal!( Struct!( char[], uint, short ) )* signalStruct(){
+        return & signalStruct_;
+    }
+    private void detectSignalStruct( Struct!( char[], uint, short ) value ){
+        Stdout.formatln( "signalStruct( Struct!( {}, {}, {} ) );", value.t[0], value.t[1], value.t[2] );
+    }
+    // ------------------------------------------
+    Signal!( Struct!( char[], uint, short )[] ) signalArray_;
+    public Signal!( Struct!( char[], uint, short )[] )* signalArray(){
+        return & signalArray_;
+    }
+    private void detectSignalArray(Struct!( char[], uint, short )[] value ){
+        Stdout.formatln( "signalArray() with {} elements", value.length );
+        foreach( v; value ){
+            Stdout.formatln( "  {} {} {}", v.t[0], v.t[1], v.t[2] );
+        }
+        Stdout.flush;
+    }
+    // ------------------------------------------
+    Signal!( DBusVariant ) signalVariant_;
+    public Signal!( DBusVariant )* signalVariant(){
+        return & signalVariant_;
+    }
+    // ------------------------------------------
+
+}
+
+
+
+