// **********************************************************************
//
// 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_BootManager_h__
#define __OB_BootManager_h__

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


#include <OB/POACommon.h>
#include <OB/IOP.h>
#include <OB/BootManager_fwd.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 OBStubImpl_OB
{

} // End of namespace OBStubImpl_OB

namespace OBStubImpl_OB
{

} // End of namespace OBStubImpl_OB

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

//
// IDL:ooc.com/OB/BootManager:1.0
//
class BootManager : virtual public ::CORBA::Object
{
    BootManager(const BootManager&);
    void operator=(const BootManager&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    BootManager() { }
    virtual ~BootManager() { }

    typedef BootManager_ptr _ptr_type;
    typedef BootManager_var _var_type;

    static inline BootManager_ptr
    _duplicate(BootManager_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline BootManager_ptr
    _nil()
    {
        return 0;
    }

    static BootManager_ptr _narrow(::CORBA::Object_ptr);

    static BootManager_ptr _narrow(::CORBA::AbstractBase_ptr);


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

        static NotFound* _downcast(::CORBA::Exception*);
        static const NotFound* _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&);

        static void _OB_unmarshal(NotFound&, OB::InputStreamImpl*);
    };

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

        static AlreadyExists* _downcast(::CORBA::Exception*);
        static const AlreadyExists* _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&);

        static void _OB_unmarshal(AlreadyExists&, OB::InputStreamImpl*);
    };

    //
    // IDL:ooc.com/OB/BootManager/add_binding:1.0
    //
    virtual void add_binding(const ::PortableServer::ObjectId& oid,
                             ::CORBA::Object_ptr obj) = 0;

    //
    // IDL:ooc.com/OB/BootManager/remove_binding:1.0
    //
    virtual void remove_binding(const ::PortableServer::ObjectId& oid) = 0;

    //
    // IDL:ooc.com/OB/BootManager/set_locator:1.0
    //
    virtual void set_locator(BootLocator_ptr locator) = 0;
};

//
// IDL:ooc.com/OB/BootLocator:1.0
//
class BootLocator : virtual public ::CORBA::Object
{
    BootLocator(const BootLocator&);
    void operator=(const BootLocator&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    BootLocator() { }
    virtual ~BootLocator() { }

    typedef BootLocator_ptr _ptr_type;
    typedef BootLocator_var _var_type;

    static inline BootLocator_ptr
    _duplicate(BootLocator_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline BootLocator_ptr
    _nil()
    {
        return 0;
    }

    static BootLocator_ptr _narrow(::CORBA::Object_ptr);

    static BootLocator_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:ooc.com/OB/BootLocator/locate:1.0
    //
    virtual void locate(const ::PortableServer::ObjectId& oid,
                        ::CORBA::Object_out obj,
                        ::CORBA::Boolean_out add) = 0;
};

} // End of namespace OB

//
// IDL:ooc.com/OB:1.0
//
namespace OBProxy_OB
{

} // End of namespace OBProxy_OB

//
// IDL:ooc.com/OB:1.0
//
namespace OBStubImpl_OB
{

} // End of namespace OBStubImpl_OB

//
// IDL:ooc.com/OB:1.0
//
namespace OBMarshalStubImpl_OB
{

} // End of namespace OBMarshalStubImpl_OB

//
// IDL:ooc.com/OB:1.0
//
namespace OBV_OB
{

} // End of namespace OBV_OB

//
// IDL:ooc.com/OB/BootManager:1.0
//
namespace CORBA
{

inline void
release(::OB::BootManager_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::OB::BootManager_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:ooc.com/OB/BootLocator:1.0
//
namespace CORBA
{

inline void
release(::OB::BootLocator_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::OB::BootLocator_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

#endif
