// **********************************************************************
//
// 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_IMRTypes_h__
#define __OB_IMRTypes_h__

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


#include <OB/Types.h>

#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

namespace IMR
{

} // End of namespace IMR

namespace IMR
{

} // End of namespace IMR

namespace OBStubImpl_IMR
{

} // End of namespace OBStubImpl_IMR

namespace OBStubImpl_IMR
{

} // End of namespace OBStubImpl_IMR

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

//
// IDL:ooc.com/IMR/ProcessID:1.0
//
typedef ::CORBA::ULong ProcessID;
typedef ::CORBA::ULong_out ProcessID_out;

//
// IDL:ooc.com/IMR/POAName:1.0
//
typedef OB::StrSeq< CORBA::OBUnique_StringSeq > POAName;
typedef OB::SeqVar< OB::StrSeq< CORBA::OBUnique_StringSeq > > POAName_var;
typedef OB::SeqOut< OB::StrSeq< CORBA::OBUnique_StringSeq > > POAName_out;

//
// IDL:ooc.com/IMR/POANameSeq:1.0
//
class OBUnique_POANameSeq { };

typedef OB::VarSeq< OB::StrSeq< CORBA::OBUnique_StringSeq >, OBUnique_POANameSeq > POANameSeq;
typedef OB::SeqVar< OB::VarSeq< OB::StrSeq< CORBA::OBUnique_StringSeq >, OBUnique_POANameSeq > > POANameSeq_var;
typedef OB::SeqOut< OB::VarSeq< OB::StrSeq< CORBA::OBUnique_StringSeq >, OBUnique_POANameSeq > > POANameSeq_out;

//
// IDL:ooc.com/IMR/ArgList:1.0
//
typedef OB::StrSeq< CORBA::OBUnique_StringSeq > ArgList;
typedef OB::SeqVar< OB::StrSeq< CORBA::OBUnique_StringSeq > > ArgList_var;
typedef OB::SeqOut< OB::StrSeq< CORBA::OBUnique_StringSeq > > ArgList_out;

//
// IDL:ooc.com/IMR/NoSuchOAD:1.0
//
struct NoSuchOAD : public ::CORBA::UserException
{
    NoSuchOAD() { }
    NoSuchOAD(const NoSuchOAD&);
    NoSuchOAD& operator=(const NoSuchOAD&);

    static NoSuchOAD* _downcast(::CORBA::Exception*);
    static const NoSuchOAD* _downcast(const ::CORBA::Exception*);
    virtual const char* _name() const;
    virtual void _raise() const { throw *this; }
    virtual const char* _rep_id() const;
    virtual char* _to_string() const;

    virtual ::CORBA::Exception* _OB_clone() const;
    virtual void _OB_insertInAny(::CORBA::Any&);

    OB::StrForStruct name;

    NoSuchOAD(const char*);

    virtual void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(NoSuchOAD&, OB::InputStreamImpl*);
};

//
// IDL:ooc.com/IMR/NoSuchServer:1.0
//
struct NoSuchServer : public ::CORBA::UserException
{
    NoSuchServer() { }
    NoSuchServer(const NoSuchServer&);
    NoSuchServer& operator=(const NoSuchServer&);

    static NoSuchServer* _downcast(::CORBA::Exception*);
    static const NoSuchServer* _downcast(const ::CORBA::Exception*);
    virtual const char* _name() const;
    virtual void _raise() const { throw *this; }
    virtual const char* _rep_id() const;
    virtual char* _to_string() const;

    virtual ::CORBA::Exception* _OB_clone() const;
    virtual void _OB_insertInAny(::CORBA::Any&);

    OB::StrForStruct name;

    NoSuchServer(const char*);

    virtual void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(NoSuchServer&, OB::InputStreamImpl*);
};

//
// IDL:ooc.com/IMR/OADNotRunning:1.0
//
struct OADNotRunning : public ::CORBA::UserException
{
    OADNotRunning() { }
    OADNotRunning(const OADNotRunning&);
    OADNotRunning& operator=(const OADNotRunning&);

    static OADNotRunning* _downcast(::CORBA::Exception*);
    static const OADNotRunning* _downcast(const ::CORBA::Exception*);
    virtual const char* _name() const;
    virtual void _raise() const { throw *this; }
    virtual const char* _rep_id() const;
    virtual char* _to_string() const;

    virtual ::CORBA::Exception* _OB_clone() const;
    virtual void _OB_insertInAny(::CORBA::Any&);

    OB::StrForStruct host;

    OADNotRunning(const char*);

    virtual void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(OADNotRunning&, OB::InputStreamImpl*);
};

//
// IDL:ooc.com/IMR/NoSuchPOA:1.0
//
struct NoSuchPOA : public ::CORBA::UserException
{
    NoSuchPOA() { }
    NoSuchPOA(const NoSuchPOA&);
    NoSuchPOA& operator=(const NoSuchPOA&);

    static NoSuchPOA* _downcast(::CORBA::Exception*);
    static const NoSuchPOA* _downcast(const ::CORBA::Exception*);
    virtual const char* _name() const;
    virtual void _raise() const { throw *this; }
    virtual const char* _rep_id() const;
    virtual char* _to_string() const;

    virtual ::CORBA::Exception* _OB_clone() const;
    virtual void _OB_insertInAny(::CORBA::Any&);

    POAName poa;

    NoSuchPOA(const POAName&);

    virtual void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(NoSuchPOA&, OB::InputStreamImpl*);
};

//
// IDL:ooc.com/IMR/ServerAlreadyRegistered:1.0
//
struct ServerAlreadyRegistered : public ::CORBA::UserException
{
    ServerAlreadyRegistered() { }
    ServerAlreadyRegistered(const ServerAlreadyRegistered&);
    ServerAlreadyRegistered& operator=(const ServerAlreadyRegistered&);

    static ServerAlreadyRegistered* _downcast(::CORBA::Exception*);
    static const ServerAlreadyRegistered* _downcast(const ::CORBA::Exception*);
    virtual const char* _name() const;
    virtual void _raise() const { throw *this; }
    virtual const char* _rep_id() const;
    virtual char* _to_string() const;

    virtual ::CORBA::Exception* _OB_clone() const;
    virtual void _OB_insertInAny(::CORBA::Any&);

    OB::StrForStruct name;

    ServerAlreadyRegistered(const char*);

    virtual void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(ServerAlreadyRegistered&, OB::InputStreamImpl*);
};

//
// IDL:ooc.com/IMR/ServerActivationMode:1.0
//
enum ServerActivationMode
{
    SHARED,
    PERSISTENT
};

typedef ServerActivationMode& ServerActivationMode_out;

//
// IDL:ooc.com/IMR/ServerStatus:1.0
//
enum ServerStatus
{
    FORKED,
    STARTING,
    RUNNING,
    STOPPING,
    STOPPED
};

typedef ServerStatus& ServerStatus_out;

//
// IDL:ooc.com/IMR/ServerID:1.0
//
typedef ::CORBA::Long ServerID;
typedef ::CORBA::Long_out ServerID_out;

//
// IDL:ooc.com/IMR/POAStatus:1.0
//
enum POAStatus
{
    INACTIVE,
    ACTIVE,
    HOLDING,
    DISCARDING,
    NON_EXISTENT
};

typedef POAStatus& POAStatus_out;

} // End of namespace IMR

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

} // End of namespace OBProxy_IMR

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

} // End of namespace OBStubImpl_IMR

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

} // End of namespace OBMarshalStubImpl_IMR

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

} // End of namespace OBV_IMR

#endif
