// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 2003
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

// Version: 4.1.3

#ifndef __OB_IMRState_skel_h__
#define __OB_IMRState_skel_h__

#include <OB/IMRState.h>

#include <OB/OADProcessEndpoint_skel.h>
#include <OB/PIORT_skel.h>

#ifndef OB_IMPORT
#   ifdef OB_DLL
#      define OB_IMPORT __declspec(dllimport)
#   else
#      define OB_IMPORT /**/
#   endif
#endif


#ifndef OB_INTEGER_VERSION
#   error No ORBacus version defined! Is <OB/CORBA.h> included?
#endif

#ifndef OB_NO_VERSION_CHECK
#   if (OB_INTEGER_VERSION != 4010300L)
#       error ORBacus version mismatch!
#   endif
#endif

//
// IDL:ooc.com/IMR:1.0
//
namespace POA_IMR
{

//
// IDL:ooc.com/IMR/ActiveState:1.0
//
class ActiveState : virtual public PortableServer::ServantBase
{
    ActiveState(const ActiveState&);
    void operator=(const ActiveState&);

protected:

    //
    // IDL:ooc.com/IMR/ActiveState/set_status:1.0
    //
    void _OB_op_set_status(OB::Upcall_ptr);

    //
    // IDL:ooc.com/IMR/ActiveState/poa_create:1.0
    //
    void _OB_op_poa_create(OB::Upcall_ptr);

    //
    // IDL:ooc.com/IMR/ActiveState/poa_status_update:1.0
    //
    void _OB_op_poa_status_update(OB::Upcall_ptr);

public:

    ActiveState() { }

    virtual ::CORBA::Boolean _is_a(const char*)
        throw(::CORBA::SystemException);

    virtual ::CORBA::RepositoryId _primary_interface(const PortableServer::ObjectId&,
                                                     PortableServer::POA_ptr);

    IMR::ActiveState_ptr _this();

    virtual OB::DirectStubImpl_ptr _OB_createDirectStubImpl(PortableServer::POA_ptr,
                                                            const PortableServer::ObjectId&);
    virtual void _OB_dispatch(OB::Upcall_ptr);

    //
    // IDL:ooc.com/IMR/ActiveState/set_status:1.0
    //
    virtual void set_status(const char* id,
                            ::IMR::ServerStatus status)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:ooc.com/IMR/ActiveState/poa_create:1.0
    //
    virtual ::PortableInterceptor::ObjectReferenceTemplate* poa_create(::IMR::POAStatus state,
                                                                       ::PortableInterceptor::ObjectReferenceTemplate* poa_tmpl)
        throw(IMR::NoSuchPOA,
              ::CORBA::SystemException) = 0;

    //
    // IDL:ooc.com/IMR/ActiveState/poa_status_update:1.0
    //
    virtual void poa_status_update(const ::IMR::POANameSeq& poas,
                                   ::IMR::POAStatus state)
        throw(::CORBA::SystemException) = 0;
};

//
// IDL:ooc.com/IMR/Domain:1.0
//
class Domain : virtual public PortableServer::ServantBase
{
    Domain(const Domain&);
    void operator=(const Domain&);

protected:

    //
    // IDL:ooc.com/IMR/Domain/registerServer:1.0
    //
    void _OB_op_registerServer(OB::Upcall_ptr);

    //
    // IDL:ooc.com/IMR/Domain/startup:1.0
    //
    void _OB_op_startup(OB::Upcall_ptr);

public:

    Domain() { }

    virtual ::CORBA::Boolean _is_a(const char*)
        throw(::CORBA::SystemException);

    virtual ::CORBA::RepositoryId _primary_interface(const PortableServer::ObjectId&,
                                                     PortableServer::POA_ptr);

    IMR::Domain_ptr _this();

    virtual OB::DirectStubImpl_ptr _OB_createDirectStubImpl(PortableServer::POA_ptr,
                                                            const PortableServer::ObjectId&);
    virtual void _OB_dispatch(OB::Upcall_ptr);

    //
    // IDL:ooc.com/IMR/Domain/registerServer:1.0
    //
    virtual void registerServer(const char* name,
                                const char* exec,
                                const char* host)
        throw(IMR::ServerAlreadyRegistered,
              ::CORBA::SystemException) = 0;

    //
    // IDL:ooc.com/IMR/Domain/startup:1.0
    //
    virtual ::IMR::ActiveState_ptr startup(const char* serverId,
                                           const char* instance,
                                           ::PortableInterceptor::ObjectReferenceTemplate* root_tmpl,
                                           ::OAD::ProcessEndpointManager_out endpoint)
        throw(IMR::NoSuchServer,
              IMR::NoSuchOAD,
              IMR::OADNotRunning,
              ::CORBA::SystemException) = 0;
};

} // End of namespace POA_IMR

//
// IDL:ooc.com/IMR:1.0
//
namespace OBDirectStubImpl_IMR
{

//
// IDL:ooc.com/IMR/ActiveState:1.0
//
class ActiveState : virtual public OBStubImpl_IMR::ActiveState,
                    virtual public OB::DirectStubImpl
{
    ActiveState(const ActiveState&);
    void operator=(const ActiveState&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    ActiveState() { }

#endif

    ActiveState(PortableServer::POA_ptr,
                const PortableServer::ObjectId&,
                PortableServer::ServantBase*);

    friend class POA_IMR::ActiveState;

public:

    //
    // IDL:ooc.com/IMR/ActiveState/set_status:1.0
    //
    virtual void set_status(const char* id,
                            ::IMR::ServerStatus status);

    //
    // IDL:ooc.com/IMR/ActiveState/poa_create:1.0
    //
    virtual ::PortableInterceptor::ObjectReferenceTemplate* poa_create(::IMR::POAStatus state,
                                                                       ::PortableInterceptor::ObjectReferenceTemplate* poa_tmpl);

    //
    // IDL:ooc.com/IMR/ActiveState/poa_status_update:1.0
    //
    virtual void poa_status_update(const ::IMR::POANameSeq& poas,
                                   ::IMR::POAStatus state);
};

//
// IDL:ooc.com/IMR/Domain:1.0
//
class Domain : virtual public OBStubImpl_IMR::Domain,
               virtual public OB::DirectStubImpl
{
    Domain(const Domain&);
    void operator=(const Domain&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    Domain() { }

#endif

    Domain(PortableServer::POA_ptr,
           const PortableServer::ObjectId&,
           PortableServer::ServantBase*);

    friend class POA_IMR::Domain;

public:

    //
    // IDL:ooc.com/IMR/Domain/registerServer:1.0
    //
    virtual void registerServer(const char* name,
                                const char* exec,
                                const char* host);

    //
    // IDL:ooc.com/IMR/Domain/startup:1.0
    //
    virtual ::IMR::ActiveState_ptr startup(const char* serverId,
                                           const char* instance,
                                           ::PortableInterceptor::ObjectReferenceTemplate* root_tmpl,
                                           ::OAD::ProcessEndpointManager_out endpoint);
};

} // End of namespace OBDirectStubImpl_IMR

#endif
