// **********************************************************************
//
// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
//
// Ice version 3.6.3
//
// <auto-generated>
//
// Generated from file `obsControl.ice'
//
// Warning: do not edit this file.
//
// </auto-generated>
//

#include <obsControl.h>
#include <IceUtil/PushDisableWarnings.h>
#include <Ice/LocalException.h>
#include <Ice/ObjectFactory.h>
#include <Ice/Outgoing.h>
#include <Ice/OutgoingAsync.h>
#include <Ice/BasicStream.h>
#include <IceUtil/Iterator.h>
#include <IceUtil/PopDisableWarnings.h>

#ifndef ICE_IGNORE_VERSION
#   if ICE_INT_VERSION / 100 != 306
#       error Ice version mismatch!
#   endif
#   if ICE_INT_VERSION % 100 > 50
#       error Beta header file detected
#   endif
#   if ICE_INT_VERSION % 100 < 3
#       error Ice patch level mismatch!
#   endif
#endif

namespace
{

namespace
{

const ::std::string __sharknir__obsControl__Sequencer__setupMotion_name = "setupMotion";

const ::std::string __sharknir__obsControl__Sequencer__setupMotionDict_name = "setupMotionDict";

const ::std::string __sharknir__obsControl__Sequencer__initMotion_name = "initMotion";

const ::std::string __sharknir__obsControl__Sequencer__setupTracking_name = "setupTracking";

const ::std::string __sharknir__obsControl__Sequencer__setupCalibUnitDict_name = "setupCalibUnitDict";

const ::std::string __sharknir__obsControl__Sequencer__instrumentSetup_name = "instrumentSetup";

const ::std::string __sharknir__obsControl__Sequencer__emergencyAbort_name = "emergencyAbort";

const ::std::string __sharknir__obsControl__Sequencer__scicamExpose_name = "scicamExpose";

const ::std::string __sharknir__obsControl__Sequencer__scicamSaveFITS_name = "scicamSaveFITS";

const ::std::string __sharknir__obsControl__Sequencer__scicamGetFITSname_name = "scicamGetFITSname";

const ::std::string __sharknir__obsControl__Sequencer__BinocularControl_name = "BinocularControl";

const ::std::string __sharknir__obsControl__Sequencer__PresetTelescopeNoAO_name = "PresetTelescopeNoAO";

const ::std::string __sharknir__obsControl__Sequencer__PresetTelescopeWithAO_name = "PresetTelescopeWithAO";

const ::std::string __sharknir__obsControl__Sequencer__RunAO_name = "RunAO";

const ::std::string __sharknir__obsControl__Sequencer__SendWavefront_name = "SendWavefront";

const ::std::string __sharknir__obsControl__Sequencer__MoveFocus_name = "MoveFocus";

const ::std::string __sharknir__obsControl__motionControl__setupMotion_name = "setupMotion";

const ::std::string __sharknir__obsControl__trackControl__setupTracking_name = "setupTracking";

const ::std::string __sharknir__obsControl__calibrationControl__setupCalibration_name = "setupCalibration";

}

}
::IceProxy::Ice::Object* ::IceProxy::sharknir::obsControl::upCast(::IceProxy::sharknir::obsControl::Sequencer* p) { return p; }

void
::IceProxy::sharknir::obsControl::__read(::IceInternal::BasicStream* __is, ::IceInternal::ProxyHandle< ::IceProxy::sharknir::obsControl::Sequencer>& v)
{
    ::Ice::ObjectPrx proxy;
    __is->read(proxy);
    if(!proxy)
    {
        v = 0;
    }
    else
    {
        v = new ::IceProxy::sharknir::obsControl::Sequencer;
        v->__copyFrom(proxy);
    }
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::setupMotion(const ::sharknir::dictNonSciAssembly& __p_dictNonSci, const ::std::string& __p_strSetup, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__setupMotion_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__setupMotion_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dictNonSci);
        __os->write(__p_strSetup);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_setupMotion(const ::sharknir::dictNonSciAssembly& __p_dictNonSci, const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__setupMotion_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__setupMotion_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__setupMotion_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dictNonSci);
        __os->write(__p_strSetup);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_setupMotion(const ::sharknir::dictNonSciAssembly& __p_dictNonSci, const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_setupMotion(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_setupMotion(__p_dictNonSci, __p_strSetup, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_setupMotion(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__setupMotion_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::setupMotionDict(const ::sharknir::dictSetupPos& __p_dSetupPos, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__setupMotionDict_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__setupMotionDict_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dSetupPos);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_setupMotionDict(const ::sharknir::dictSetupPos& __p_dSetupPos, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__setupMotionDict_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__setupMotionDict_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__setupMotionDict_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dSetupPos);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_setupMotionDict(const ::sharknir::dictSetupPos& __p_dSetupPos, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_setupMotionDict(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_setupMotionDict(__p_dSetupPos, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_setupMotionDict(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__setupMotionDict_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::initMotion(const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__initMotion_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__initMotion_name, ::Ice::Normal, __ctx);
    __og.writeEmptyParams();
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_initMotion(const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__initMotion_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__initMotion_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__initMotion_name, ::Ice::Normal, __ctx);
        __result->writeEmptyParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_initMotion(const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_initMotion(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_initMotion(__ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_initMotion(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__initMotion_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::setupTracking(const ::std::string& __p_strSetup, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__setupTracking_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__setupTracking_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_strSetup);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_setupTracking(const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__setupTracking_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__setupTracking_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__setupTracking_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_strSetup);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_setupTracking(const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_setupTracking(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_setupTracking(__p_strSetup, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_setupTracking(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__setupTracking_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::setupCalibUnitDict(const ::sharknir::dictSetupPos& __p_dSetupPos, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__setupCalibUnitDict_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__setupCalibUnitDict_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dSetupPos);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_setupCalibUnitDict(const ::sharknir::dictSetupPos& __p_dSetupPos, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__setupCalibUnitDict_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__setupCalibUnitDict_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__setupCalibUnitDict_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dSetupPos);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_setupCalibUnitDict(const ::sharknir::dictSetupPos& __p_dSetupPos, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_setupCalibUnitDict(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_setupCalibUnitDict(__p_dSetupPos, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_setupCalibUnitDict(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__setupCalibUnitDict_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::instrumentSetup(const ::sharknir::dictSetupNamedPos& __p_dSetupNamedPos, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__instrumentSetup_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__instrumentSetup_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dSetupNamedPos);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_instrumentSetup(const ::sharknir::dictSetupNamedPos& __p_dSetupNamedPos, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__instrumentSetup_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__instrumentSetup_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__instrumentSetup_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dSetupNamedPos);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_instrumentSetup(const ::sharknir::dictSetupNamedPos& __p_dSetupNamedPos, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_instrumentSetup(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_instrumentSetup(__p_dSetupNamedPos, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_instrumentSetup(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__instrumentSetup_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::emergencyAbort(const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__emergencyAbort_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__emergencyAbort_name, ::Ice::Normal, __ctx);
    __og.writeEmptyParams();
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_emergencyAbort(const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__emergencyAbort_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__emergencyAbort_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__emergencyAbort_name, ::Ice::Normal, __ctx);
        __result->writeEmptyParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_emergencyAbort(const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_emergencyAbort(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_emergencyAbort(__ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_emergencyAbort(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__emergencyAbort_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::scicamExpose(::Ice::Double __p_dit, ::Ice::Int __p_ndit, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__scicamExpose_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__scicamExpose_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dit);
        __os->write(__p_ndit);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_scicamExpose(::Ice::Double __p_dit, ::Ice::Int __p_ndit, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__scicamExpose_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__scicamExpose_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__scicamExpose_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dit);
        __os->write(__p_ndit);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_scicamExpose(::Ice::Double __p_dit, ::Ice::Int __p_ndit, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_scicamExpose(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_scicamExpose(__p_dit, __p_ndit, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_scicamExpose(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__scicamExpose_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::scicamSaveFITS(const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__scicamSaveFITS_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__scicamSaveFITS_name, ::Ice::Normal, __ctx);
    __og.writeEmptyParams();
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_scicamSaveFITS(const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__scicamSaveFITS_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__scicamSaveFITS_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__scicamSaveFITS_name, ::Ice::Normal, __ctx);
        __result->writeEmptyParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_scicamSaveFITS(const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_scicamSaveFITS(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_scicamSaveFITS(__ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_scicamSaveFITS(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__scicamSaveFITS_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::scicamGetFITSname(::std::string& __p_FITSname, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__scicamGetFITSname_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__scicamGetFITSname_name, ::Ice::Idempotent, __ctx);
    __og.writeEmptyParams();
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__p_FITSname);
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_scicamGetFITSname(const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__scicamGetFITSname_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__scicamGetFITSname_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__scicamGetFITSname_name, ::Ice::Idempotent, __ctx);
        __result->writeEmptyParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_scicamGetFITSname(const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int, const ::std::string&)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int, const ::std::string&)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::std::string __p_FITSname;
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_scicamGetFITSname(__p_FITSname, __result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret, __p_FITSname);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int, const ::std::string&)> _response;
    };
    return begin_scicamGetFITSname(__ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_scicamGetFITSname(::std::string& __p_FITSname, const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__scicamGetFITSname_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__p_FITSname);
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::BinocularControl(const ::std::string& __p_flag, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__BinocularControl_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__BinocularControl_name, ::Ice::Idempotent, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_flag);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_BinocularControl(const ::std::string& __p_flag, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__BinocularControl_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__BinocularControl_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__BinocularControl_name, ::Ice::Idempotent, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_flag);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_BinocularControl(const ::std::string& __p_flag, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_BinocularControl(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_BinocularControl(__p_flag, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_BinocularControl(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__BinocularControl_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::PresetTelescopeNoAO(const ::lbto::position2& __p_target, const ::lbto::position2& __p_guide, const ::std::string& __p_telescopeMode, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__PresetTelescopeNoAO_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__PresetTelescopeNoAO_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_target);
        __os->write(__p_guide);
        __os->write(__p_telescopeMode);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_PresetTelescopeNoAO(const ::lbto::position2& __p_target, const ::lbto::position2& __p_guide, const ::std::string& __p_telescopeMode, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__PresetTelescopeNoAO_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__PresetTelescopeNoAO_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__PresetTelescopeNoAO_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_target);
        __os->write(__p_guide);
        __os->write(__p_telescopeMode);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_PresetTelescopeNoAO(const ::lbto::position2& __p_target, const ::lbto::position2& __p_guide, const ::std::string& __p_telescopeMode, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_PresetTelescopeNoAO(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_PresetTelescopeNoAO(__p_target, __p_guide, __p_telescopeMode, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_PresetTelescopeNoAO(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__PresetTelescopeNoAO_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::PresetTelescopeWithAO(const ::lbto::position2& __p_target, const ::lbto::position2& __p_guide, const ::lbto::position2& __p_AOreference, const ::std::string& __p_telescopeMode, const ::std::string& __p_AOmode, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__PresetTelescopeWithAO_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__PresetTelescopeWithAO_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_target);
        __os->write(__p_guide);
        __os->write(__p_AOreference);
        __os->write(__p_telescopeMode);
        __os->write(__p_AOmode);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_PresetTelescopeWithAO(const ::lbto::position2& __p_target, const ::lbto::position2& __p_guide, const ::lbto::position2& __p_AOreference, const ::std::string& __p_telescopeMode, const ::std::string& __p_AOmode, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__PresetTelescopeWithAO_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__PresetTelescopeWithAO_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__PresetTelescopeWithAO_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_target);
        __os->write(__p_guide);
        __os->write(__p_AOreference);
        __os->write(__p_telescopeMode);
        __os->write(__p_AOmode);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_PresetTelescopeWithAO(const ::lbto::position2& __p_target, const ::lbto::position2& __p_guide, const ::lbto::position2& __p_AOreference, const ::std::string& __p_telescopeMode, const ::std::string& __p_AOmode, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_PresetTelescopeWithAO(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_PresetTelescopeWithAO(__p_target, __p_guide, __p_AOreference, __p_telescopeMode, __p_AOmode, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_PresetTelescopeWithAO(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__PresetTelescopeWithAO_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::RunAO(const ::std::string& __p_mode, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__RunAO_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__RunAO_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_mode);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_RunAO(const ::std::string& __p_mode, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__RunAO_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__RunAO_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__RunAO_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_mode);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_RunAO(const ::std::string& __p_mode, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_RunAO(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_RunAO(__p_mode, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_RunAO(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__RunAO_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::SendWavefront(const ::lbto::SeqWF& __p_polynom, const ::std::string& __p_ope, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__SendWavefront_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__SendWavefront_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_polynom);
        __os->write(__p_ope);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_SendWavefront(const ::lbto::SeqWF& __p_polynom, const ::std::string& __p_ope, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__SendWavefront_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__SendWavefront_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__SendWavefront_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_polynom);
        __os->write(__p_ope);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_SendWavefront(const ::lbto::SeqWF& __p_polynom, const ::std::string& __p_ope, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_SendWavefront(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_SendWavefront(__p_polynom, __p_ope, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_SendWavefront(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__SendWavefront_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::MoveFocus(const ::std::string& __p_ope, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__Sequencer__MoveFocus_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__Sequencer__MoveFocus_name, ::Ice::Normal, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_ope);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::begin_MoveFocus(const ::std::string& __p_ope, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__Sequencer__MoveFocus_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__Sequencer__MoveFocus_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__Sequencer__MoveFocus_name, ::Ice::Normal, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_ope);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::Sequencer::__begin_MoveFocus(const ::std::string& __p_ope, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::SequencerPrx __proxy = ::sharknir::obsControl::SequencerPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_MoveFocus(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_MoveFocus(__p_ope, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::Sequencer::end_MoveFocus(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__Sequencer__MoveFocus_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

const ::std::string&
IceProxy::sharknir::obsControl::Sequencer::ice_staticId()
{
    return ::sharknir::obsControl::Sequencer::ice_staticId();
}

::IceProxy::Ice::Object*
IceProxy::sharknir::obsControl::Sequencer::__newInstance() const
{
    return new Sequencer;
}
::IceProxy::Ice::Object* ::IceProxy::sharknir::obsControl::upCast(::IceProxy::sharknir::obsControl::motionControl* p) { return p; }

void
::IceProxy::sharknir::obsControl::__read(::IceInternal::BasicStream* __is, ::IceInternal::ProxyHandle< ::IceProxy::sharknir::obsControl::motionControl>& v)
{
    ::Ice::ObjectPrx proxy;
    __is->read(proxy);
    if(!proxy)
    {
        v = 0;
    }
    else
    {
        v = new ::IceProxy::sharknir::obsControl::motionControl;
        v->__copyFrom(proxy);
    }
}

::Ice::Int
IceProxy::sharknir::obsControl::motionControl::setupMotion(const ::sharknir::dictNonSciAssembly& __p_dictNonSci, const ::std::string& __p_strSetup, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__motionControl__setupMotion_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__motionControl__setupMotion_name, ::Ice::Idempotent, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dictNonSci);
        __os->write(__p_strSetup);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::motionControl::begin_setupMotion(const ::sharknir::dictNonSciAssembly& __p_dictNonSci, const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__motionControl__setupMotion_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__motionControl__setupMotion_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__motionControl__setupMotion_name, ::Ice::Idempotent, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dictNonSci);
        __os->write(__p_strSetup);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::motionControl::__begin_setupMotion(const ::sharknir::dictNonSciAssembly& __p_dictNonSci, const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::motionControlPrx __proxy = ::sharknir::obsControl::motionControlPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_setupMotion(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_setupMotion(__p_dictNonSci, __p_strSetup, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::motionControl::end_setupMotion(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__motionControl__setupMotion_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

const ::std::string&
IceProxy::sharknir::obsControl::motionControl::ice_staticId()
{
    return ::sharknir::obsControl::motionControl::ice_staticId();
}

::IceProxy::Ice::Object*
IceProxy::sharknir::obsControl::motionControl::__newInstance() const
{
    return new motionControl;
}
::IceProxy::Ice::Object* ::IceProxy::sharknir::obsControl::upCast(::IceProxy::sharknir::obsControl::trackControl* p) { return p; }

void
::IceProxy::sharknir::obsControl::__read(::IceInternal::BasicStream* __is, ::IceInternal::ProxyHandle< ::IceProxy::sharknir::obsControl::trackControl>& v)
{
    ::Ice::ObjectPrx proxy;
    __is->read(proxy);
    if(!proxy)
    {
        v = 0;
    }
    else
    {
        v = new ::IceProxy::sharknir::obsControl::trackControl;
        v->__copyFrom(proxy);
    }
}

::Ice::Int
IceProxy::sharknir::obsControl::trackControl::setupTracking(const ::std::string& __p_strSetup, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__trackControl__setupTracking_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__trackControl__setupTracking_name, ::Ice::Idempotent, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_strSetup);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::trackControl::begin_setupTracking(const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__trackControl__setupTracking_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__trackControl__setupTracking_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__trackControl__setupTracking_name, ::Ice::Idempotent, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_strSetup);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::trackControl::__begin_setupTracking(const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::trackControlPrx __proxy = ::sharknir::obsControl::trackControlPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_setupTracking(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_setupTracking(__p_strSetup, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::trackControl::end_setupTracking(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__trackControl__setupTracking_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

const ::std::string&
IceProxy::sharknir::obsControl::trackControl::ice_staticId()
{
    return ::sharknir::obsControl::trackControl::ice_staticId();
}

::IceProxy::Ice::Object*
IceProxy::sharknir::obsControl::trackControl::__newInstance() const
{
    return new trackControl;
}
::IceProxy::Ice::Object* ::IceProxy::sharknir::obsControl::upCast(::IceProxy::sharknir::obsControl::calibrationControl* p) { return p; }

void
::IceProxy::sharknir::obsControl::__read(::IceInternal::BasicStream* __is, ::IceInternal::ProxyHandle< ::IceProxy::sharknir::obsControl::calibrationControl>& v)
{
    ::Ice::ObjectPrx proxy;
    __is->read(proxy);
    if(!proxy)
    {
        v = 0;
    }
    else
    {
        v = new ::IceProxy::sharknir::obsControl::calibrationControl;
        v->__copyFrom(proxy);
    }
}

::Ice::Int
IceProxy::sharknir::obsControl::calibrationControl::setupCalibration(const ::sharknir::dictNonSciAssembly& __p_dictNonSci, const ::std::string& __p_strSetup, const ::Ice::Context* __ctx)
{
    __checkTwowayOnly(__sharknir__obsControl__calibrationControl__setupCalibration_name);
    ::IceInternal::Outgoing __og(this, __sharknir__obsControl__calibrationControl__setupCalibration_name, ::Ice::Idempotent, __ctx);
    try
    {
        ::IceInternal::BasicStream* __os = __og.startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dictNonSci);
        __os->write(__p_strSetup);
        __og.endWriteParams();
    }
    catch(const ::Ice::LocalException& __ex)
    {
        __og.abort(__ex);
    }
    if(!__og.invoke())
    {
        try
        {
            __og.throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
            throw __uue;
        }
    }
    ::Ice::Int __ret;
    ::IceInternal::BasicStream* __is = __og.startReadParams();
    __is->read(__ret);
    __og.endReadParams();
    return __ret;
}

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::calibrationControl::begin_setupCalibration(const ::sharknir::dictNonSciAssembly& __p_dictNonSci, const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::CallbackBasePtr& __del, const ::Ice::LocalObjectPtr& __cookie)
{
    __checkAsyncTwowayOnly(__sharknir__obsControl__calibrationControl__setupCalibration_name);
    ::IceInternal::OutgoingAsyncPtr __result = new ::IceInternal::OutgoingAsync(this, __sharknir__obsControl__calibrationControl__setupCalibration_name, __del, __cookie);
    try
    {
        __result->prepare(__sharknir__obsControl__calibrationControl__setupCalibration_name, ::Ice::Idempotent, __ctx);
        ::IceInternal::BasicStream* __os = __result->startWriteParams(::Ice::DefaultFormat);
        __os->write(__p_dictNonSci);
        __os->write(__p_strSetup);
        __result->endWriteParams();
        __result->invoke();
    }
    catch(const ::Ice::Exception& __ex)
    {
        __result->abort(__ex);
    }
    return __result;
}

#ifdef ICE_CPP11

::Ice::AsyncResultPtr
IceProxy::sharknir::obsControl::calibrationControl::__begin_setupCalibration(const ::sharknir::dictNonSciAssembly& __p_dictNonSci, const ::std::string& __p_strSetup, const ::Ice::Context* __ctx, const ::IceInternal::Function<void (::Ice::Int)>& __response, const ::IceInternal::Function<void (const ::Ice::Exception&)>& __exception, const ::IceInternal::Function<void (bool)>& __sent)
{
    class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
    {
    public:

        Cpp11CB(const ::std::function<void (::Ice::Int)>& responseFunc, const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc, const ::std::function<void (bool)>& sentFunc) :
            ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
            _response(responseFunc)
        {
            CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
        }

        virtual void completed(const ::Ice::AsyncResultPtr& __result) const
        {
            ::sharknir::obsControl::calibrationControlPrx __proxy = ::sharknir::obsControl::calibrationControlPrx::uncheckedCast(__result->getProxy());
            ::Ice::Int __ret;
            try
            {
                __ret = __proxy->end_setupCalibration(__result);
            }
            catch(const ::Ice::Exception& ex)
            {
                Cpp11FnCallbackNC::exception(__result, ex);
                return;
            }
            if(_response != nullptr)
            {
                _response(__ret);
            }
        }
    
    private:
        
        ::std::function<void (::Ice::Int)> _response;
    };
    return begin_setupCalibration(__p_dictNonSci, __p_strSetup, __ctx, new Cpp11CB(__response, __exception, __sent));
}
#endif

::Ice::Int
IceProxy::sharknir::obsControl::calibrationControl::end_setupCalibration(const ::Ice::AsyncResultPtr& __result)
{
    ::Ice::AsyncResult::__check(__result, this, __sharknir__obsControl__calibrationControl__setupCalibration_name);
    ::Ice::Int __ret;
    if(!__result->__wait())
    {
        try
        {
            __result->__throwUserException();
        }
        catch(const ::Ice::UserException& __ex)
        {
            throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
        }
    }
    ::IceInternal::BasicStream* __is = __result->__startReadParams();
    __is->read(__ret);
    __result->__endReadParams();
    return __ret;
}

const ::std::string&
IceProxy::sharknir::obsControl::calibrationControl::ice_staticId()
{
    return ::sharknir::obsControl::calibrationControl::ice_staticId();
}

::IceProxy::Ice::Object*
IceProxy::sharknir::obsControl::calibrationControl::__newInstance() const
{
    return new calibrationControl;
}

::Ice::Object* sharknir::obsControl::upCast(::sharknir::obsControl::Sequencer* p) { return p; }

namespace
{
const ::std::string __sharknir__obsControl__Sequencer_ids[2] =
{
    "::Ice::Object",
    "::sharknir::obsControl::Sequencer"
};

}

bool
sharknir::obsControl::Sequencer::ice_isA(const ::std::string& _s, const ::Ice::Current&) const
{
    return ::std::binary_search(__sharknir__obsControl__Sequencer_ids, __sharknir__obsControl__Sequencer_ids + 2, _s);
}

::std::vector< ::std::string>
sharknir::obsControl::Sequencer::ice_ids(const ::Ice::Current&) const
{
    return ::std::vector< ::std::string>(&__sharknir__obsControl__Sequencer_ids[0], &__sharknir__obsControl__Sequencer_ids[2]);
}

const ::std::string&
sharknir::obsControl::Sequencer::ice_id(const ::Ice::Current&) const
{
    return __sharknir__obsControl__Sequencer_ids[1];
}

const ::std::string&
sharknir::obsControl::Sequencer::ice_staticId()
{
#ifdef ICE_HAS_THREAD_SAFE_LOCAL_STATIC
    static const ::std::string typeId = "::sharknir::obsControl::Sequencer";
    return typeId;
#else
    return __sharknir__obsControl__Sequencer_ids[1];
#endif
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___setupMotion(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::sharknir::dictNonSciAssembly __p_dictNonSci;
    ::std::string __p_strSetup;
    __is->read(__p_dictNonSci);
    __is->read(__p_strSetup);
    __inS.endReadParams();
    ::Ice::Int __ret = setupMotion(__p_dictNonSci, __p_strSetup, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___setupMotionDict(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::sharknir::dictSetupPos __p_dSetupPos;
    __is->read(__p_dSetupPos);
    __inS.endReadParams();
    ::Ice::Int __ret = setupMotionDict(__p_dSetupPos, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___initMotion(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    __inS.readEmptyParams();
    ::Ice::Int __ret = initMotion(__current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___setupTracking(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::std::string __p_strSetup;
    __is->read(__p_strSetup);
    __inS.endReadParams();
    ::Ice::Int __ret = setupTracking(__p_strSetup, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___setupCalibUnitDict(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::sharknir::dictSetupPos __p_dSetupPos;
    __is->read(__p_dSetupPos);
    __inS.endReadParams();
    ::Ice::Int __ret = setupCalibUnitDict(__p_dSetupPos, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___instrumentSetup(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::sharknir::dictSetupNamedPos __p_dSetupNamedPos;
    __is->read(__p_dSetupNamedPos);
    __inS.endReadParams();
    ::Ice::Int __ret = instrumentSetup(__p_dSetupNamedPos, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___emergencyAbort(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    __inS.readEmptyParams();
    ::Ice::Int __ret = emergencyAbort(__current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___scicamExpose(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::Ice::Double __p_dit;
    ::Ice::Int __p_ndit;
    __is->read(__p_dit);
    __is->read(__p_ndit);
    __inS.endReadParams();
    ::Ice::Int __ret = scicamExpose(__p_dit, __p_ndit, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___scicamSaveFITS(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    __inS.readEmptyParams();
    ::Ice::Int __ret = scicamSaveFITS(__current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___scicamGetFITSname(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Idempotent, __current.mode);
    __inS.readEmptyParams();
    ::std::string __p_FITSname;
    ::Ice::Int __ret = scicamGetFITSname(__p_FITSname, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__p_FITSname);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___BinocularControl(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Idempotent, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::std::string __p_flag;
    __is->read(__p_flag);
    __inS.endReadParams();
    ::Ice::Int __ret = BinocularControl(__p_flag, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___PresetTelescopeNoAO(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::lbto::position2 __p_target;
    ::lbto::position2 __p_guide;
    ::std::string __p_telescopeMode;
    __is->read(__p_target);
    __is->read(__p_guide);
    __is->read(__p_telescopeMode);
    __inS.endReadParams();
    ::Ice::Int __ret = PresetTelescopeNoAO(__p_target, __p_guide, __p_telescopeMode, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___PresetTelescopeWithAO(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::lbto::position2 __p_target;
    ::lbto::position2 __p_guide;
    ::lbto::position2 __p_AOreference;
    ::std::string __p_telescopeMode;
    ::std::string __p_AOmode;
    __is->read(__p_target);
    __is->read(__p_guide);
    __is->read(__p_AOreference);
    __is->read(__p_telescopeMode);
    __is->read(__p_AOmode);
    __inS.endReadParams();
    ::Ice::Int __ret = PresetTelescopeWithAO(__p_target, __p_guide, __p_AOreference, __p_telescopeMode, __p_AOmode, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___RunAO(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::std::string __p_mode;
    __is->read(__p_mode);
    __inS.endReadParams();
    ::Ice::Int __ret = RunAO(__p_mode, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___SendWavefront(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::lbto::SeqWF __p_polynom;
    ::std::string __p_ope;
    __is->read(__p_polynom);
    __is->read(__p_ope);
    __inS.endReadParams();
    ::Ice::Int __ret = SendWavefront(__p_polynom, __p_ope, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::___MoveFocus(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Normal, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::std::string __p_ope;
    __is->read(__p_ope);
    __inS.endReadParams();
    ::Ice::Int __ret = MoveFocus(__p_ope, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

namespace
{
const ::std::string __sharknir__obsControl__Sequencer_all[] =
{
    "BinocularControl",
    "MoveFocus",
    "PresetTelescopeNoAO",
    "PresetTelescopeWithAO",
    "RunAO",
    "SendWavefront",
    "emergencyAbort",
    "ice_id",
    "ice_ids",
    "ice_isA",
    "ice_ping",
    "initMotion",
    "instrumentSetup",
    "scicamExpose",
    "scicamGetFITSname",
    "scicamSaveFITS",
    "setupCalibUnitDict",
    "setupMotion",
    "setupMotionDict",
    "setupTracking"
};

}

::Ice::DispatchStatus
sharknir::obsControl::Sequencer::__dispatch(::IceInternal::Incoming& in, const ::Ice::Current& current)
{
    ::std::pair< const ::std::string*, const ::std::string*> r = ::std::equal_range(__sharknir__obsControl__Sequencer_all, __sharknir__obsControl__Sequencer_all + 20, current.operation);
    if(r.first == r.second)
    {
        throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
    }

    switch(r.first - __sharknir__obsControl__Sequencer_all)
    {
        case 0:
        {
            return ___BinocularControl(in, current);
        }
        case 1:
        {
            return ___MoveFocus(in, current);
        }
        case 2:
        {
            return ___PresetTelescopeNoAO(in, current);
        }
        case 3:
        {
            return ___PresetTelescopeWithAO(in, current);
        }
        case 4:
        {
            return ___RunAO(in, current);
        }
        case 5:
        {
            return ___SendWavefront(in, current);
        }
        case 6:
        {
            return ___emergencyAbort(in, current);
        }
        case 7:
        {
            return ___ice_id(in, current);
        }
        case 8:
        {
            return ___ice_ids(in, current);
        }
        case 9:
        {
            return ___ice_isA(in, current);
        }
        case 10:
        {
            return ___ice_ping(in, current);
        }
        case 11:
        {
            return ___initMotion(in, current);
        }
        case 12:
        {
            return ___instrumentSetup(in, current);
        }
        case 13:
        {
            return ___scicamExpose(in, current);
        }
        case 14:
        {
            return ___scicamGetFITSname(in, current);
        }
        case 15:
        {
            return ___scicamSaveFITS(in, current);
        }
        case 16:
        {
            return ___setupCalibUnitDict(in, current);
        }
        case 17:
        {
            return ___setupMotion(in, current);
        }
        case 18:
        {
            return ___setupMotionDict(in, current);
        }
        case 19:
        {
            return ___setupTracking(in, current);
        }
    }

    assert(false);
    throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
}

void
sharknir::obsControl::Sequencer::__writeImpl(::IceInternal::BasicStream* __os) const
{
    __os->startWriteSlice(ice_staticId(), -1, true);
    __os->endWriteSlice();
}

void
sharknir::obsControl::Sequencer::__readImpl(::IceInternal::BasicStream* __is)
{
    __is->startReadSlice();
    __is->endReadSlice();
}

void 
sharknir::obsControl::__patch(SequencerPtr& handle, const ::Ice::ObjectPtr& v)
{
    handle = ::sharknir::obsControl::SequencerPtr::dynamicCast(v);
    if(v && !handle)
    {
        IceInternal::Ex::throwUOE(::sharknir::obsControl::Sequencer::ice_staticId(), v);
    }
}

::Ice::Object* sharknir::obsControl::upCast(::sharknir::obsControl::motionControl* p) { return p; }

namespace
{
const ::std::string __sharknir__obsControl__motionControl_ids[2] =
{
    "::Ice::Object",
    "::sharknir::obsControl::motionControl"
};

}

bool
sharknir::obsControl::motionControl::ice_isA(const ::std::string& _s, const ::Ice::Current&) const
{
    return ::std::binary_search(__sharknir__obsControl__motionControl_ids, __sharknir__obsControl__motionControl_ids + 2, _s);
}

::std::vector< ::std::string>
sharknir::obsControl::motionControl::ice_ids(const ::Ice::Current&) const
{
    return ::std::vector< ::std::string>(&__sharknir__obsControl__motionControl_ids[0], &__sharknir__obsControl__motionControl_ids[2]);
}

const ::std::string&
sharknir::obsControl::motionControl::ice_id(const ::Ice::Current&) const
{
    return __sharknir__obsControl__motionControl_ids[1];
}

const ::std::string&
sharknir::obsControl::motionControl::ice_staticId()
{
#ifdef ICE_HAS_THREAD_SAFE_LOCAL_STATIC
    static const ::std::string typeId = "::sharknir::obsControl::motionControl";
    return typeId;
#else
    return __sharknir__obsControl__motionControl_ids[1];
#endif
}

::Ice::DispatchStatus
sharknir::obsControl::motionControl::___setupMotion(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Idempotent, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::sharknir::dictNonSciAssembly __p_dictNonSci;
    ::std::string __p_strSetup;
    __is->read(__p_dictNonSci);
    __is->read(__p_strSetup);
    __inS.endReadParams();
    ::Ice::Int __ret = setupMotion(__p_dictNonSci, __p_strSetup, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

namespace
{
const ::std::string __sharknir__obsControl__motionControl_all[] =
{
    "ice_id",
    "ice_ids",
    "ice_isA",
    "ice_ping",
    "setupMotion"
};

}

::Ice::DispatchStatus
sharknir::obsControl::motionControl::__dispatch(::IceInternal::Incoming& in, const ::Ice::Current& current)
{
    ::std::pair< const ::std::string*, const ::std::string*> r = ::std::equal_range(__sharknir__obsControl__motionControl_all, __sharknir__obsControl__motionControl_all + 5, current.operation);
    if(r.first == r.second)
    {
        throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
    }

    switch(r.first - __sharknir__obsControl__motionControl_all)
    {
        case 0:
        {
            return ___ice_id(in, current);
        }
        case 1:
        {
            return ___ice_ids(in, current);
        }
        case 2:
        {
            return ___ice_isA(in, current);
        }
        case 3:
        {
            return ___ice_ping(in, current);
        }
        case 4:
        {
            return ___setupMotion(in, current);
        }
    }

    assert(false);
    throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
}

void
sharknir::obsControl::motionControl::__writeImpl(::IceInternal::BasicStream* __os) const
{
    __os->startWriteSlice(ice_staticId(), -1, true);
    __os->endWriteSlice();
}

void
sharknir::obsControl::motionControl::__readImpl(::IceInternal::BasicStream* __is)
{
    __is->startReadSlice();
    __is->endReadSlice();
}

void 
sharknir::obsControl::__patch(motionControlPtr& handle, const ::Ice::ObjectPtr& v)
{
    handle = ::sharknir::obsControl::motionControlPtr::dynamicCast(v);
    if(v && !handle)
    {
        IceInternal::Ex::throwUOE(::sharknir::obsControl::motionControl::ice_staticId(), v);
    }
}

::Ice::Object* sharknir::obsControl::upCast(::sharknir::obsControl::trackControl* p) { return p; }

namespace
{
const ::std::string __sharknir__obsControl__trackControl_ids[2] =
{
    "::Ice::Object",
    "::sharknir::obsControl::trackControl"
};

}

bool
sharknir::obsControl::trackControl::ice_isA(const ::std::string& _s, const ::Ice::Current&) const
{
    return ::std::binary_search(__sharknir__obsControl__trackControl_ids, __sharknir__obsControl__trackControl_ids + 2, _s);
}

::std::vector< ::std::string>
sharknir::obsControl::trackControl::ice_ids(const ::Ice::Current&) const
{
    return ::std::vector< ::std::string>(&__sharknir__obsControl__trackControl_ids[0], &__sharknir__obsControl__trackControl_ids[2]);
}

const ::std::string&
sharknir::obsControl::trackControl::ice_id(const ::Ice::Current&) const
{
    return __sharknir__obsControl__trackControl_ids[1];
}

const ::std::string&
sharknir::obsControl::trackControl::ice_staticId()
{
#ifdef ICE_HAS_THREAD_SAFE_LOCAL_STATIC
    static const ::std::string typeId = "::sharknir::obsControl::trackControl";
    return typeId;
#else
    return __sharknir__obsControl__trackControl_ids[1];
#endif
}

::Ice::DispatchStatus
sharknir::obsControl::trackControl::___setupTracking(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Idempotent, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::std::string __p_strSetup;
    __is->read(__p_strSetup);
    __inS.endReadParams();
    ::Ice::Int __ret = setupTracking(__p_strSetup, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

namespace
{
const ::std::string __sharknir__obsControl__trackControl_all[] =
{
    "ice_id",
    "ice_ids",
    "ice_isA",
    "ice_ping",
    "setupTracking"
};

}

::Ice::DispatchStatus
sharknir::obsControl::trackControl::__dispatch(::IceInternal::Incoming& in, const ::Ice::Current& current)
{
    ::std::pair< const ::std::string*, const ::std::string*> r = ::std::equal_range(__sharknir__obsControl__trackControl_all, __sharknir__obsControl__trackControl_all + 5, current.operation);
    if(r.first == r.second)
    {
        throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
    }

    switch(r.first - __sharknir__obsControl__trackControl_all)
    {
        case 0:
        {
            return ___ice_id(in, current);
        }
        case 1:
        {
            return ___ice_ids(in, current);
        }
        case 2:
        {
            return ___ice_isA(in, current);
        }
        case 3:
        {
            return ___ice_ping(in, current);
        }
        case 4:
        {
            return ___setupTracking(in, current);
        }
    }

    assert(false);
    throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
}

void
sharknir::obsControl::trackControl::__writeImpl(::IceInternal::BasicStream* __os) const
{
    __os->startWriteSlice(ice_staticId(), -1, true);
    __os->endWriteSlice();
}

void
sharknir::obsControl::trackControl::__readImpl(::IceInternal::BasicStream* __is)
{
    __is->startReadSlice();
    __is->endReadSlice();
}

void 
sharknir::obsControl::__patch(trackControlPtr& handle, const ::Ice::ObjectPtr& v)
{
    handle = ::sharknir::obsControl::trackControlPtr::dynamicCast(v);
    if(v && !handle)
    {
        IceInternal::Ex::throwUOE(::sharknir::obsControl::trackControl::ice_staticId(), v);
    }
}

::Ice::Object* sharknir::obsControl::upCast(::sharknir::obsControl::calibrationControl* p) { return p; }

namespace
{
const ::std::string __sharknir__obsControl__calibrationControl_ids[2] =
{
    "::Ice::Object",
    "::sharknir::obsControl::calibrationControl"
};

}

bool
sharknir::obsControl::calibrationControl::ice_isA(const ::std::string& _s, const ::Ice::Current&) const
{
    return ::std::binary_search(__sharknir__obsControl__calibrationControl_ids, __sharknir__obsControl__calibrationControl_ids + 2, _s);
}

::std::vector< ::std::string>
sharknir::obsControl::calibrationControl::ice_ids(const ::Ice::Current&) const
{
    return ::std::vector< ::std::string>(&__sharknir__obsControl__calibrationControl_ids[0], &__sharknir__obsControl__calibrationControl_ids[2]);
}

const ::std::string&
sharknir::obsControl::calibrationControl::ice_id(const ::Ice::Current&) const
{
    return __sharknir__obsControl__calibrationControl_ids[1];
}

const ::std::string&
sharknir::obsControl::calibrationControl::ice_staticId()
{
#ifdef ICE_HAS_THREAD_SAFE_LOCAL_STATIC
    static const ::std::string typeId = "::sharknir::obsControl::calibrationControl";
    return typeId;
#else
    return __sharknir__obsControl__calibrationControl_ids[1];
#endif
}

::Ice::DispatchStatus
sharknir::obsControl::calibrationControl::___setupCalibration(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
{
    __checkMode(::Ice::Idempotent, __current.mode);
    ::IceInternal::BasicStream* __is = __inS.startReadParams();
    ::sharknir::dictNonSciAssembly __p_dictNonSci;
    ::std::string __p_strSetup;
    __is->read(__p_dictNonSci);
    __is->read(__p_strSetup);
    __inS.endReadParams();
    ::Ice::Int __ret = setupCalibration(__p_dictNonSci, __p_strSetup, __current);
    ::IceInternal::BasicStream* __os = __inS.__startWriteParams(::Ice::DefaultFormat);
    __os->write(__ret);
    __inS.__endWriteParams(true);
    return ::Ice::DispatchOK;
}

namespace
{
const ::std::string __sharknir__obsControl__calibrationControl_all[] =
{
    "ice_id",
    "ice_ids",
    "ice_isA",
    "ice_ping",
    "setupCalibration"
};

}

::Ice::DispatchStatus
sharknir::obsControl::calibrationControl::__dispatch(::IceInternal::Incoming& in, const ::Ice::Current& current)
{
    ::std::pair< const ::std::string*, const ::std::string*> r = ::std::equal_range(__sharknir__obsControl__calibrationControl_all, __sharknir__obsControl__calibrationControl_all + 5, current.operation);
    if(r.first == r.second)
    {
        throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
    }

    switch(r.first - __sharknir__obsControl__calibrationControl_all)
    {
        case 0:
        {
            return ___ice_id(in, current);
        }
        case 1:
        {
            return ___ice_ids(in, current);
        }
        case 2:
        {
            return ___ice_isA(in, current);
        }
        case 3:
        {
            return ___ice_ping(in, current);
        }
        case 4:
        {
            return ___setupCalibration(in, current);
        }
    }

    assert(false);
    throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
}

void
sharknir::obsControl::calibrationControl::__writeImpl(::IceInternal::BasicStream* __os) const
{
    __os->startWriteSlice(ice_staticId(), -1, true);
    __os->endWriteSlice();
}

void
sharknir::obsControl::calibrationControl::__readImpl(::IceInternal::BasicStream* __is)
{
    __is->startReadSlice();
    __is->endReadSlice();
}

void 
sharknir::obsControl::__patch(calibrationControlPtr& handle, const ::Ice::ObjectPtr& v)
{
    handle = ::sharknir::obsControl::calibrationControlPtr::dynamicCast(v);
    if(v && !handle)
    {
        IceInternal::Ex::throwUOE(::sharknir::obsControl::calibrationControl::ice_staticId(), v);
    }
}
