// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 1998
// Object-Oriented Concepts, Inc.
// Billerica, MA, USA
//
// Copyright (c) 1998
// Object-Oriented Concepts GmbH
// Ettlingen, Germany
//
// All Rights Reserved
//
// **********************************************************************

// Version: 3.0.1
// License: non-commercial

#include <OB/CORBA.h>
#include "toveswitch_skel.h"

//
// IDL:toveSwitch/userInterface:1.0
//
OBDispatchStatus
toveSwitch_userInterface_skel::_OB_dispatch(const char* _ob_op,
                                            OBBuffer& _ob_buf,
                                            bool _ob_sw,
                                            CORBA_ULong _ob_offIn,
                                            CORBA_ULong _ob_offOut)
{
    if(strcmp(_ob_op, "ledOn") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_Long _ob_a0;
        OBUnmarshal(_ob_a0, _ob_co, _ob_sw);
        CORBA_Long _ob_a1;
        OBUnmarshal(_ob_a1, _ob_co, _ob_sw);

        try
        {
            ledOn(_ob_a0, _ob_a1);

            CORBA_ULong _ob_cnt = _ob_offOut;

            _ob_buf.alloc(_ob_cnt);

            return OBDispatchStatusOK;
        }
        catch(const toveSwitch_InvalidPort& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
        catch(const toveSwitch_InvalidLed& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
    }
    else if(strcmp(_ob_op, "ledOff") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_Long _ob_a0;
        OBUnmarshal(_ob_a0, _ob_co, _ob_sw);
        CORBA_Long _ob_a1;
        OBUnmarshal(_ob_a1, _ob_co, _ob_sw);

        try
        {
            ledOff(_ob_a0, _ob_a1);

            CORBA_ULong _ob_cnt = _ob_offOut;

            _ob_buf.alloc(_ob_cnt);

            return OBDispatchStatusOK;
        }
        catch(const toveSwitch_InvalidPort& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
        catch(const toveSwitch_InvalidLed& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
    }
    else if(strcmp(_ob_op, "ledBlink") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_Long _ob_a0;
        OBUnmarshal(_ob_a0, _ob_co, _ob_sw);
        CORBA_Long _ob_a1;
        OBUnmarshal(_ob_a1, _ob_co, _ob_sw);
        CORBA_Long _ob_a2;
        OBUnmarshal(_ob_a2, _ob_co, _ob_sw);

        try
        {
            ledBlink(_ob_a0, _ob_a1, _ob_a2);

            CORBA_ULong _ob_cnt = _ob_offOut;

            _ob_buf.alloc(_ob_cnt);

            return OBDispatchStatusOK;
        }
        catch(const toveSwitch_InvalidPort& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
        catch(const toveSwitch_InvalidLed& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
    }
    else if(strcmp(_ob_op, "printInfo") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_String_var _ob_a0;
        OBUnmarshal(_ob_a0.inout(), _ob_co, _ob_sw);

        printInfo(_ob_a0.in());

        CORBA_ULong _ob_cnt = _ob_offOut;

        _ob_buf.alloc(_ob_cnt);

        return OBDispatchStatusOK;
    }
    else if(strcmp(_ob_op, "event") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_String_var _ob_a0;
        OBUnmarshal(_ob_a0.inout(), _ob_co, _ob_sw);

        try
        {
            event(_ob_a0.in());

            CORBA_ULong _ob_cnt = _ob_offOut;

            _ob_buf.alloc(_ob_cnt);

            return OBDispatchStatusOK;
        }
        catch(const toveSwitch_InvalidEvent& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
    }
    else
        return CORBA_Object_skel::_OB_dispatch(_ob_op, _ob_buf, _ob_sw, _ob_offIn, _ob_offOut);
}

//
// IDL:toveSwitch/switchInterface:1.0
//
OBDispatchStatus
toveSwitch_switchInterface_skel::_OB_dispatch(const char* _ob_op,
                                              OBBuffer& _ob_buf,
                                              bool _ob_sw,
                                              CORBA_ULong _ob_offIn,
                                              CORBA_ULong _ob_offOut)
{
    if(strcmp(_ob_op, "registerUserInterface") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_Object_var _ob_a0;
        OBUnmarshal(_ob_a0.inout(), _ob_co, _ob_sw);

        try
        {
            registerUserInterface(_ob_a0.in());

            CORBA_ULong _ob_cnt = _ob_offOut;

            _ob_buf.alloc(_ob_cnt);

            return OBDispatchStatusOK;
        }
        catch(const toveSwitch_RegisteringError& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
    }
    else if(strcmp(_ob_op, "unregisterUserInterface") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_Object_var _ob_a0;
        OBUnmarshal(_ob_a0.inout(), _ob_co, _ob_sw);

        try
        {
            unregisterUserInterface(_ob_a0.in());

            CORBA_ULong _ob_cnt = _ob_offOut;

            _ob_buf.alloc(_ob_cnt);

            return OBDispatchStatusOK;
        }
        catch(const toveSwitch_RegisteringError& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
    }
    else if(strcmp(_ob_op, "getValue") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_String_var _ob_a0;
        OBUnmarshal(_ob_a0.inout(), _ob_co, _ob_sw);

        try
        {
            CORBA_String_var _ob_r = getValue(_ob_a0.in());

            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_r.in(), _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_r.in(), _ob_o);

            return OBDispatchStatusOK;
        }
        catch(const toveSwitch_InvalidVariable& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
    }
    else if(strcmp(_ob_op, "setValue") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_String_var _ob_a0;
        OBUnmarshal(_ob_a0.inout(), _ob_co, _ob_sw);
        CORBA_String_var _ob_a1;
        OBUnmarshal(_ob_a1.inout(), _ob_co, _ob_sw);

        try
        {
            setValue(_ob_a0.in(), _ob_a1.in());

            CORBA_ULong _ob_cnt = _ob_offOut;

            _ob_buf.alloc(_ob_cnt);

            return OBDispatchStatusOK;
        }
        catch(const toveSwitch_InvalidValue& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
        catch(const toveSwitch_InvalidVariable& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
    }
    else if(strcmp(_ob_op, "execute") == 0)
    {
        const CORBA_Octet* _ob_co = _ob_buf.data + _ob_offIn;
        CORBA_String_var _ob_a0;
        OBUnmarshal(_ob_a0.inout(), _ob_co, _ob_sw);
        toveSwitch_ParameterList _ob_a1;
        OBUnmarshal(_ob_a1, _ob_co, _ob_sw);

        try
        {
            execute(_ob_a0.in(), _ob_a1);

            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_a1, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_a1, _ob_o);

            return OBDispatchStatusOK;
        }
        catch(const toveSwitch_InvalidCommand& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
        catch(const toveSwitch_InvalidVariable& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
        catch(const toveSwitch_InvalidValue& _ob_except)
        {
            CORBA_ULong _ob_cnt = _ob_offOut;
            OBMarshalCount(_ob_except, _ob_cnt);

            _ob_buf.alloc(_ob_cnt);
            CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
            OBMarshal(_ob_except, _ob_o);

            return OBDispatchStatusExcept;
        }
    }
    else
        return CORBA_Object_skel::_OB_dispatch(_ob_op, _ob_buf, _ob_sw, _ob_offIn, _ob_offOut);
}
