diff dbus-d-javatests/dsrc/DBusTestsInterfaces.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/DBusTestsInterfaces.d	Sat Oct 20 18:07:18 2007 +0200
@@ -0,0 +1,784 @@
+/**
+ * Generated with TioLink
+ * TioLink was written by Frank Benoit <benoit@tionex.de>
+ * http://www.dsource.org/projects/tiolink
+ *
+ * File type: D programming language source code
+ */
+module DBusTestsInterfaces;
+
+public import org.freedesktop.dbus.Struct;
+public import org.freedesktop.dbus.Variant;
+
+import tango.core.Signal;
+import org.freedesktop.dbus.DBus;
+import org.freedesktop.dbus.c.Connection : DBusConnection;
+import org.freedesktop.dbus.c.Message : DBusMessage;
+import org.freedesktop.dbus.c.Shared : DBusHandlerResult;
+
+
+// DBus interfaces
+public interface DBusInterface {
+    // org
+    public interface org {
+        // org.freedesktop
+        public interface freedesktop {
+            // org.freedesktop.DBus
+            public interface DBus {
+                // org.freedesktop.DBus.Peer
+                public interface Peer {
+                    public void Ping();
+                    public char[] GetMachineId();
+                }
+                // org.freedesktop.DBus.Introspectable
+                public interface Introspectable {
+                    public char[] Introspect();
+                }
+                // org.freedesktop.DBus.Properties
+                public interface Properties {
+                    public DBusVariant Get( in char[] intf_name, in char[] prop_name );
+                    public void Set( in char[] intf_name, in char[] prop_name, in DBusVariant prop );
+                    public DBusVariant[ char[] ] GetAll( in char[] intf_name );
+                }
+            }
+        }
+    }
+    // dbustests
+    public interface dbustests {
+        // dbustests.Tests
+        public interface Tests {
+            public void identityVoid();
+            public bool identityBool( in bool input );
+            public byte identityByte( in byte input );
+            public short identityShort( in short input );
+            public ushort identityUShort( in ushort input );
+            public int identityInt( in int input );
+            public uint identityUInt( in uint input );
+            public long identityLong( in long input );
+            public ulong identityULong( in ulong input );
+            public double identityDouble( in double input );
+            public char[] identityString( in char[] input );
+            public DBusVariant identityVariant( in DBusVariant input );
+            public bool[] identityArrayBool( in bool[] input );
+            public byte[] identityArrayByte( in byte[] input );
+            public short[] identityArrayShort( in short[] input );
+            public ushort[] identityArrayUShort( in ushort[] input );
+            public int[] identityArrayInt( in int[] input );
+            public uint[] identityArrayUInt( in uint[] input );
+            public long[] identityArrayLong( in long[] input );
+            public ulong[] identityArrayULong( in ulong[] input );
+            public double[] identityArrayDouble( in double[] input );
+            public char[][] identityArrayString( in char[][] input );
+            public DBusVariant[] identityArrayVariant( in DBusVariant[] input );
+            public long Sum( in int[] input );
+            public uint Sum( in byte[] input );
+            public char[][][ char[] ] InvertMapping( in char[][ char[] ] input );
+            public void DeStruct( in Struct!( char[], uint, short ) input, out char[] res_1, out uint res_2, out short res_3 );
+            public DBusVariant[] Primitize( in DBusVariant input );
+            public bool Invert( in bool input );
+            public tango.core.Signal.Signal!()* signalVoid();
+            public tango.core.Signal.Signal!( int )* signalInt();
+            public tango.core.Signal.Signal!( Struct!( char[], uint, short ) )* signalStruct();
+            public tango.core.Signal.Signal!( Struct!( char[], uint, short )[] )* signalArray();
+            public tango.core.Signal.Signal!( DBusVariant )* signalVariant();
+        }
+    }
+}
+
+
+// Peer implementations
+public interface DBusPeers {
+    // org
+    public class org : DBusPeerObject, DBusInterface.org {
+        // org.freedesktop
+        public class freedesktop : DBusPeerObject, DBusInterface.org.freedesktop {
+            // org.freedesktop.DBus
+            public class DBus : DBusPeerObject, DBusInterface.org.freedesktop.DBus {
+                // org.freedesktop.DBus.Peer
+                public class Peer : DBusPeerObject, DBusInterface.org.freedesktop.DBus.Peer {
+                    public void Ping(){
+                    }
+                    public char[] GetMachineId(){
+                    }
+                }
+                // org.freedesktop.DBus.Introspectable
+                public class Introspectable : DBusPeerObject, DBusInterface.org.freedesktop.DBus.Introspectable {
+                    public char[] Introspect(){
+                    }
+                }
+                // org.freedesktop.DBus.Properties
+                public class Properties : DBusPeerObject, DBusInterface.org.freedesktop.DBus.Properties {
+                    public DBusVariant Get( in char[] intf_name, in char[] prop_name ){
+                    }
+                    public void Set( in char[] intf_name, in char[] prop_name, in DBusVariant prop ){
+                    }
+                    public DBusVariant[ char[] ] GetAll( in char[] intf_name ){
+                    }
+                }
+            }
+        }
+    }
+    // dbustests
+    public class dbustests : DBusPeerObject, DBusInterface.dbustests {
+        // dbustests.Tests
+        public class Tests : DBusPeerObject, DBusInterface.dbustests.Tests {
+            public void identityVoid(){
+            }
+            public bool identityBool( in bool input ){
+            }
+            public byte identityByte( in byte input ){
+            }
+            public short identityShort( in short input ){
+            }
+            public ushort identityUShort( in ushort input ){
+            }
+            public int identityInt( in int input ){
+            }
+            public uint identityUInt( in uint input ){
+            }
+            public long identityLong( in long input ){
+            }
+            public ulong identityULong( in ulong input ){
+            }
+            public double identityDouble( in double input ){
+            }
+            public char[] identityString( in char[] input ){
+            }
+            public DBusVariant identityVariant( in DBusVariant input ){
+            }
+            public bool[] identityArrayBool( in bool[] input ){
+            }
+            public byte[] identityArrayByte( in byte[] input ){
+            }
+            public short[] identityArrayShort( in short[] input ){
+            }
+            public ushort[] identityArrayUShort( in ushort[] input ){
+            }
+            public int[] identityArrayInt( in int[] input ){
+            }
+            public uint[] identityArrayUInt( in uint[] input ){
+            }
+            public long[] identityArrayLong( in long[] input ){
+            }
+            public ulong[] identityArrayULong( in ulong[] input ){
+            }
+            public double[] identityArrayDouble( in double[] input ){
+            }
+            public char[][] identityArrayString( in char[][] input ){
+            }
+            public DBusVariant[] identityArrayVariant( in DBusVariant[] input ){
+            }
+            public long Sum( in int[] input ){
+            }
+            public uint Sum( in byte[] input ){
+            }
+            public char[][][ char[] ] InvertMapping( in char[][ char[] ] input ){
+            }
+            public void DeStruct( in Struct!( char[], uint, short ) input, out char[] res_1, out uint res_2, out short res_3 ){
+            }
+            public DBusVariant[] Primitize( in DBusVariant input ){
+            }
+            public bool Invert( in bool input ){
+            }
+        }
+    }
+}
+
+
+// DBusObject
+public class DBusObject : DBusObjectImpl, DBusInterface.org.freedesktop.DBus.Introspectable {
+    this(){
+        super();
+    }
+    public char[] Introspect(){
+        return super.Introspect();
+    }
+}
+
+
+// DBusPeerObject
+public class DBusPeerObject {
+}
+
+
+private void init_introspectionData(){
+    registerIntrospectionData(
+        DBusInterface.org.freedesktop.DBus.Peer.classinfo,
+            `<interface name="org.freedesktop.DBus.Peer">\n`
+            `  <method name="Ping">\n`
+            `  </method>\n`
+            `  <method name="GetMachineId">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="machine_uuid" />\n`
+            `    <arg  name="machine_uuid" type="s" direction="out" />\n`
+            `  </method>\n`
+            `</interface>\n`);
+    registerIntrospectionData(
+        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`
+            `    <arg  name="xml_data" type="s" direction="out" />\n`
+            `  </method>\n`
+            `</interface>\n`);
+    registerIntrospectionData(
+        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`
+            `    <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`
+            `  </method>\n`
+            `  <method name="Set">\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="in" />\n`
+            `  </method>\n`
+            `  <method name="GetAll">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="allprops" />\n`
+            `    <arg  name="intf_name" type="s" direction="in" />\n`
+            `    <arg  name="allprops" type="a{sv}" direction="out" />\n`
+            `  </method>\n`
+            `</interface>\n`);
+    registerIntrospectionData(
+        DBusInterface.dbustests.Tests.classinfo,
+            `<interface name="dbustests.Tests">\n`
+            `  <method name="identityVoid">\n`
+            `  </method>\n`
+            `  <method name="identityBool">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="b" direction="out" />\n`
+            `    <arg  name="input" type="b" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityByte">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="y" direction="out" />\n`
+            `    <arg  name="input" type="y" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityShort">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="n" direction="out" />\n`
+            `    <arg  name="input" type="n" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityUShort">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="q" direction="out" />\n`
+            `    <arg  name="input" type="q" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityInt">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="i" direction="out" />\n`
+            `    <arg  name="input" type="i" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityUInt">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="u" direction="out" />\n`
+            `    <arg  name="input" type="u" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityLong">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="x" direction="out" />\n`
+            `    <arg  name="input" type="x" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityULong">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="t" direction="out" />\n`
+            `    <arg  name="input" type="t" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityDouble">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="d" direction="out" />\n`
+            `    <arg  name="input" type="d" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityString">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="s" direction="out" />\n`
+            `    <arg  name="input" type="s" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityVariant">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="v" direction="out" />\n`
+            `    <arg  name="input" type="v" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayBool">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="ab" direction="out" />\n`
+            `    <arg  name="input" type="ab" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayByte">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="ay" direction="out" />\n`
+            `    <arg  name="input" type="ay" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayShort">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="an" direction="out" />\n`
+            `    <arg  name="input" type="an" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayUShort">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="aq" direction="out" />\n`
+            `    <arg  name="input" type="aq" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayInt">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="ai" direction="out" />\n`
+            `    <arg  name="input" type="ai" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayUInt">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="au" direction="out" />\n`
+            `    <arg  name="input" type="au" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayLong">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="ax" direction="out" />\n`
+            `    <arg  name="input" type="ax" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayULong">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="at" direction="out" />\n`
+            `    <arg  name="input" type="at" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayDouble">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="ad" direction="out" />\n`
+            `    <arg  name="input" type="ad" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayString">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="as" direction="out" />\n`
+            `    <arg  name="input" type="as" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="identityArrayVariant">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="av" direction="out" />\n`
+            `    <arg  name="input" type="av" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="Sum">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="x" direction="out" />\n`
+            `    <arg  name="input" type="ai" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="Sum">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="u" direction="out" />\n`
+            `    <arg  name="input" type="ay" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="InvertMapping">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="a{sas}" direction="out" />\n`
+            `    <arg  name="input" type="a{ss}" direction="in" />\n`
+            `  </method>\n`
+            `  <method name="DeStruct">\n`
+            `    <arg  name="input" type="(sun)" direction="in" />\n`
+            `    <arg  name="res_1" type="s" direction="out" />\n`
+            `    <arg  name="res_2" type="u" direction="out" />\n`
+            `    <arg  name="res_3" type="n" direction="out" />\n`
+            `  </method>\n`
+            `  <method name="Primitize">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="input" type="v" direction="in" />\n`
+            `    <arg  name="res" type="av" direction="out" />\n`
+            `  </method>\n`
+            `  <method name="Invert">\n`
+            `        <annotation name="org.dsource.tiolink.Returns" value="res" />\n`
+            `    <arg  name="res" type="b" direction="out" />\n`
+            `    <arg  name="input" type="b" direction="in" />\n`
+            `  </method>\n`
+            `</interface>\n`);
+}
+private DBusHandlerResult intfHandler__org_freedesktop_DBus_Peer( DBusConnection* conn, DBusMessage* message, void* user_data ){
+    DBusInterface.org.freedesktop.DBus.Peer o = cast(DBusInterface.org.freedesktop.DBus.Peer)cast(Object)user_data;
+    if( o is null || !checkIntf( "org.freedesktop.DBus.Peer", message) )
+        return DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+    try{
+        char[METHOD_SIG_MAXLENGTH] buf;
+        switch( methodSignature( message, buf ) ){
+        case "Ping|":
+            {
+                o.Ping();
+                sendReply( conn, message );
+            }
+            break;
+        case "GetMachineId|":
+            {
+                Struct!( char[] ) po;
+                po.t[0] = o.GetMachineId();
+                sendReplyData!( char[] )( conn, message, po );
+            }
+            break;
+        default:
+            return DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+        }
+    }
+    catch( Exception e ){
+        sendException( conn, message, e );
+    }
+    return DBusHandlerResult.DBUS_HANDLER_RESULT_HANDLED;
+}
+
+private DBusHandlerResult intfHandler__org_freedesktop_DBus_Introspectable( DBusConnection* conn, DBusMessage* message, void* user_data ){
+    DBusInterface.org.freedesktop.DBus.Introspectable o = cast(DBusInterface.org.freedesktop.DBus.Introspectable)cast(Object)user_data;
+    if( o is null || !checkIntf( "org.freedesktop.DBus.Introspectable", message) )
+        return DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+    try{
+        char[METHOD_SIG_MAXLENGTH] buf;
+        switch( methodSignature( message, buf ) ){
+        case "Introspect|":
+            {
+                Struct!( char[] ) po;
+                po.t[0] = o.Introspect();
+                sendReplyData!( char[] )( conn, message, po );
+            }
+            break;
+        default:
+            return DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+        }
+    }
+    catch( Exception e ){
+        sendException( conn, message, e );
+    }
+    return DBusHandlerResult.DBUS_HANDLER_RESULT_HANDLED;
+}
+
+private DBusHandlerResult intfHandler__org_freedesktop_DBus_Properties( DBusConnection* conn, DBusMessage* message, void* user_data ){
+    DBusInterface.org.freedesktop.DBus.Properties o = cast(DBusInterface.org.freedesktop.DBus.Properties)cast(Object)user_data;
+    if( o is null || !checkIntf( "org.freedesktop.DBus.Properties", message) )
+        return DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+    try{
+        char[METHOD_SIG_MAXLENGTH] buf;
+        switch( methodSignature( message, buf ) ){
+        case "Get|ss":
+            {
+                Struct!( char[], char[] ) pi = getCallValues!( char[], char[] )( message );
+                Struct!( DBusVariant ) po;
+                po.t[0] = o.Get( pi.t[0], pi.t[1] );
+                sendReplyData!( DBusVariant )( conn, message, po );
+            }
+            break;
+        case "Set|ssv":
+            {
+                Struct!( char[], char[], DBusVariant ) pi = getCallValues!( char[], char[], DBusVariant )( message );
+                o.Set( pi.t[0], pi.t[1], pi.t[2] );
+                sendReply( conn, message );
+            }
+            break;
+        case "GetAll|s":
+            {
+                Struct!( char[] ) pi = getCallValues!( char[] )( message );
+                Struct!( DBusVariant[ char[] ] ) po;
+                po.t[0] = o.GetAll( pi.t[0] );
+                sendReplyData!( DBusVariant[ char[] ] )( conn, message, po );
+            }
+            break;
+        default:
+            return DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+        }
+    }
+    catch( Exception e ){
+        sendException( conn, message, e );
+    }
+    return DBusHandlerResult.DBUS_HANDLER_RESULT_HANDLED;
+}
+
+private DBusHandlerResult intfHandler__dbustests_Tests( DBusConnection* conn, DBusMessage* message, void* user_data ){
+    DBusInterface.dbustests.Tests o = cast(DBusInterface.dbustests.Tests)cast(Object)user_data;
+    if( o is null || !checkIntf( "dbustests.Tests", message) )
+        return DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+    try{
+        char[METHOD_SIG_MAXLENGTH] buf;
+        switch( methodSignature( message, buf ) ){
+        case "identityVoid|":
+            {
+                o.identityVoid();
+                sendReply( conn, message );
+            }
+            break;
+        case "identityBool|b":
+            {
+                Struct!( bool ) pi = getCallValues!( bool )( message );
+                Struct!( bool ) po;
+                po.t[0] = o.identityBool( pi.t[0] );
+                sendReplyData!( bool )( conn, message, po );
+            }
+            break;
+        case "identityByte|y":
+            {
+                Struct!( byte ) pi = getCallValues!( byte )( message );
+                Struct!( byte ) po;
+                po.t[0] = o.identityByte( pi.t[0] );
+                sendReplyData!( byte )( conn, message, po );
+            }
+            break;
+        case "identityShort|n":
+            {
+                Struct!( short ) pi = getCallValues!( short )( message );
+                Struct!( short ) po;
+                po.t[0] = o.identityShort( pi.t[0] );
+                sendReplyData!( short )( conn, message, po );
+            }
+            break;
+        case "identityUShort|q":
+            {
+                Struct!( ushort ) pi = getCallValues!( ushort )( message );
+                Struct!( ushort ) po;
+                po.t[0] = o.identityUShort( pi.t[0] );
+                sendReplyData!( ushort )( conn, message, po );
+            }
+            break;
+        case "identityInt|i":
+            {
+                Struct!( int ) pi = getCallValues!( int )( message );
+                Struct!( int ) po;
+                po.t[0] = o.identityInt( pi.t[0] );
+                sendReplyData!( int )( conn, message, po );
+            }
+            break;
+        case "identityUInt|u":
+            {
+                Struct!( uint ) pi = getCallValues!( uint )( message );
+                Struct!( uint ) po;
+                po.t[0] = o.identityUInt( pi.t[0] );
+                sendReplyData!( uint )( conn, message, po );
+            }
+            break;
+        case "identityLong|x":
+            {
+                Struct!( long ) pi = getCallValues!( long )( message );
+                Struct!( long ) po;
+                po.t[0] = o.identityLong( pi.t[0] );
+                sendReplyData!( long )( conn, message, po );
+            }
+            break;
+        case "identityULong|t":
+            {
+                Struct!( ulong ) pi = getCallValues!( ulong )( message );
+                Struct!( ulong ) po;
+                po.t[0] = o.identityULong( pi.t[0] );
+                sendReplyData!( ulong )( conn, message, po );
+            }
+            break;
+        case "identityDouble|d":
+            {
+                Struct!( double ) pi = getCallValues!( double )( message );
+                Struct!( double ) po;
+                po.t[0] = o.identityDouble( pi.t[0] );
+                sendReplyData!( double )( conn, message, po );
+            }
+            break;
+        case "identityString|s":
+            {
+                Struct!( char[] ) pi = getCallValues!( char[] )( message );
+                Struct!( char[] ) po;
+                po.t[0] = o.identityString( pi.t[0] );
+                sendReplyData!( char[] )( conn, message, po );
+            }
+            break;
+        case "identityVariant|v":
+            {
+                Struct!( DBusVariant ) pi = getCallValues!( DBusVariant )( message );
+                Struct!( DBusVariant ) po;
+                po.t[0] = o.identityVariant( pi.t[0] );
+                sendReplyData!( DBusVariant )( conn, message, po );
+            }
+            break;
+        case "identityArrayBool|ab":
+            {
+                Struct!( bool[] ) pi = getCallValues!( bool[] )( message );
+                Struct!( bool[] ) po;
+                po.t[0] = o.identityArrayBool( pi.t[0] );
+                sendReplyData!( bool[] )( conn, message, po );
+            }
+            break;
+        case "identityArrayByte|ay":
+            {
+                Struct!( byte[] ) pi = getCallValues!( byte[] )( message );
+                Struct!( byte[] ) po;
+                po.t[0] = o.identityArrayByte( pi.t[0] );
+                sendReplyData!( byte[] )( conn, message, po );
+            }
+            break;
+        case "identityArrayShort|an":
+            {
+                Struct!( short[] ) pi = getCallValues!( short[] )( message );
+                Struct!( short[] ) po;
+                po.t[0] = o.identityArrayShort( pi.t[0] );
+                sendReplyData!( short[] )( conn, message, po );
+            }
+            break;
+        case "identityArrayUShort|aq":
+            {
+                Struct!( ushort[] ) pi = getCallValues!( ushort[] )( message );
+                Struct!( ushort[] ) po;
+                po.t[0] = o.identityArrayUShort( pi.t[0] );
+                sendReplyData!( ushort[] )( conn, message, po );
+            }
+            break;
+        case "identityArrayInt|ai":
+            {
+                Struct!( int[] ) pi = getCallValues!( int[] )( message );
+                Struct!( int[] ) po;
+                po.t[0] = o.identityArrayInt( pi.t[0] );
+                sendReplyData!( int[] )( conn, message, po );
+            }
+            break;
+        case "identityArrayUInt|au":
+            {
+                Struct!( uint[] ) pi = getCallValues!( uint[] )( message );
+                Struct!( uint[] ) po;
+                po.t[0] = o.identityArrayUInt( pi.t[0] );
+                sendReplyData!( uint[] )( conn, message, po );
+            }
+            break;
+        case "identityArrayLong|ax":
+            {
+                Struct!( long[] ) pi = getCallValues!( long[] )( message );
+                Struct!( long[] ) po;
+                po.t[0] = o.identityArrayLong( pi.t[0] );
+                sendReplyData!( long[] )( conn, message, po );
+            }
+            break;
+        case "identityArrayULong|at":
+            {
+                Struct!( ulong[] ) pi = getCallValues!( ulong[] )( message );
+                Struct!( ulong[] ) po;
+                po.t[0] = o.identityArrayULong( pi.t[0] );
+                sendReplyData!( ulong[] )( conn, message, po );
+            }
+            break;
+        case "identityArrayDouble|ad":
+            {
+                Struct!( double[] ) pi = getCallValues!( double[] )( message );
+                Struct!( double[] ) po;
+                po.t[0] = o.identityArrayDouble( pi.t[0] );
+                sendReplyData!( double[] )( conn, message, po );
+            }
+            break;
+        case "identityArrayString|as":
+            {
+                Struct!( char[][] ) pi = getCallValues!( char[][] )( message );
+                Struct!( char[][] ) po;
+                po.t[0] = o.identityArrayString( pi.t[0] );
+                sendReplyData!( char[][] )( conn, message, po );
+            }
+            break;
+        case "identityArrayVariant|av":
+            {
+                Struct!( DBusVariant[] ) pi = getCallValues!( DBusVariant[] )( message );
+                Struct!( DBusVariant[] ) po;
+                po.t[0] = o.identityArrayVariant( pi.t[0] );
+                sendReplyData!( DBusVariant[] )( conn, message, po );
+            }
+            break;
+        case "Sum|ai":
+            {
+                Struct!( int[] ) pi = getCallValues!( int[] )( message );
+                Struct!( long ) po;
+                po.t[0] = o.Sum( pi.t[0] );
+                sendReplyData!( long )( conn, message, po );
+            }
+            break;
+        case "Sum|ay":
+            {
+                Struct!( byte[] ) pi = getCallValues!( byte[] )( message );
+                Struct!( uint ) po;
+                po.t[0] = o.Sum( pi.t[0] );
+                sendReplyData!( uint )( conn, message, po );
+            }
+            break;
+        case "InvertMapping|a{ss}":
+            {
+                Struct!( char[][ char[] ] ) pi = getCallValues!( char[][ char[] ] )( message );
+                Struct!( char[][][ char[] ] ) po;
+                po.t[0] = o.InvertMapping( pi.t[0] );
+                sendReplyData!( char[][][ char[] ] )( conn, message, po );
+            }
+            break;
+        case "DeStruct|(sun)":
+            {
+                Struct!( Struct!( char[], uint, short ) ) pi = getCallValues!( Struct!( char[], uint, short ) )( message );
+                Struct!( char[], uint, short ) po;
+                o.DeStruct( pi.t[0], po.t[0], po.t[1], po.t[2] );
+                sendReplyData!( char[], uint, short )( conn, message, po );
+            }
+            break;
+        case "Primitize|v":
+            {
+                Struct!( DBusVariant ) pi = getCallValues!( DBusVariant )( message );
+                Struct!( DBusVariant[] ) po;
+                po.t[0] = o.Primitize( pi.t[0] );
+                sendReplyData!( DBusVariant[] )( conn, message, po );
+            }
+            break;
+        case "Invert|b":
+            {
+                Struct!( bool ) pi = getCallValues!( bool )( message );
+                Struct!( bool ) po;
+                po.t[0] = o.Invert( pi.t[0] );
+                sendReplyData!( bool )( conn, message, po );
+            }
+            break;
+        case "signalVoid>":
+            {
+                o.signalVoid().opCall();
+            }
+            break;
+        case "signalInt>i":
+            {
+                Struct!( int ) pi = getCallValues!( int )( message );
+                o.signalInt().opCall( pi.t[0] );
+            }
+            break;
+        case "signalStruct>(sun)":
+            {
+                Struct!( Struct!( char[], uint, short ) ) pi = getCallValues!( Struct!( char[], uint, short ) )( message );
+                o.signalStruct().opCall( pi.t[0] );
+            }
+            break;
+        case "signalArray>a(sun)":
+            {
+                Struct!( Struct!( char[], uint, short )[] ) pi = getCallValues!( Struct!( char[], uint, short )[] )( message );
+                o.signalArray().opCall( pi.t[0] );
+            }
+            break;
+        case "signalVariant>v":
+            {
+                Struct!( DBusVariant ) pi = getCallValues!( DBusVariant )( message );
+                o.signalVariant().opCall( pi.t[0] );
+            }
+            break;
+        default:
+            return DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+        }
+    }
+    catch( Exception e ){
+        sendException( conn, message, e );
+    }
+    return DBusHandlerResult.DBUS_HANDLER_RESULT_HANDLED;
+}
+
+private void init_handlers(){
+    registerHandler(
+        DBusInterface.org.freedesktop.DBus.Peer.classinfo,
+            & intfHandler__org_freedesktop_DBus_Peer );
+    registerHandler(
+        DBusInterface.org.freedesktop.DBus.Introspectable.classinfo,
+            & intfHandler__org_freedesktop_DBus_Introspectable );
+    registerHandler(
+        DBusInterface.org.freedesktop.DBus.Properties.classinfo,
+            & intfHandler__org_freedesktop_DBus_Properties );
+    registerHandler(
+        DBusInterface.dbustests.Tests.classinfo,
+            & intfHandler__dbustests_Tests );
+}
+
+static this(){
+    init_introspectionData();
+    init_handlers();
+}
+