view 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 source

/**
 * 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();
}