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