Mercurial > projects > dbus-d
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_; + } + // ------------------------------------------ + +} + + + +