// **********************************************************************
//
// 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_POAAdapterActivator_h__
#define __OB_POAAdapterActivator_h__

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


#include <OB/POAAdapterActivator_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_PortableServer
{

} // End of namespace OBStubImpl_PortableServer

namespace OBStubImpl_PortableServer
{

} // End of namespace OBStubImpl_PortableServer

//
// IDL:omg.org/PortableServer:2.3
//
namespace PortableServer
{

//
// IDL:omg.org/PortableServer/AdapterActivator:2.3
//
class AdapterActivator : virtual public ::CORBA::Object
{
    AdapterActivator(const AdapterActivator&);
    void operator=(const AdapterActivator&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    AdapterActivator() { }
    virtual ~AdapterActivator() { }

    typedef AdapterActivator_ptr _ptr_type;
    typedef AdapterActivator_var _var_type;

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

    static inline AdapterActivator_ptr
    _nil()
    {
        return 0;
    }

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

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


    //
    // IDL:omg.org/PortableServer/AdapterActivator/unknown_adapter:1.0
    //
    virtual ::CORBA::Boolean unknown_adapter(POA_ptr parent,
                                             const char* name) = 0;
};

} // End of namespace PortableServer

//
// IDL:omg.org/PortableServer:2.3
//
namespace OBProxy_PortableServer
{

} // End of namespace OBProxy_PortableServer

//
// IDL:omg.org/PortableServer:2.3
//
namespace OBStubImpl_PortableServer
{

} // End of namespace OBStubImpl_PortableServer

//
// IDL:omg.org/PortableServer:2.3
//
namespace OBMarshalStubImpl_PortableServer
{

} // End of namespace OBMarshalStubImpl_PortableServer

//
// IDL:omg.org/PortableServer:2.3
//
namespace OBV_PortableServer
{

} // End of namespace OBV_PortableServer

//
// IDL:omg.org/PortableServer/AdapterActivator:2.3
//
namespace CORBA
{

inline void
release(::PortableServer::AdapterActivator_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::PortableServer::AdapterActivator_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

void operator<<=(::CORBA::Any&, PortableServer::AdapterActivator_ptr*);
void operator<<=(::CORBA::Any&, PortableServer::AdapterActivator_ptr);
CORBA::Boolean operator>>=(const ::CORBA::Any&, PortableServer::AdapterActivator_ptr&);

inline void
operator<<=(::CORBA::Any_var& any, PortableServer::AdapterActivator_ptr* val)
{
    any.inout() <<= val;
}

inline void
operator<<=(::CORBA::Any_var& any, PortableServer::AdapterActivator_ptr val)
{
    any.inout() <<= val;
}

inline CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, PortableServer::AdapterActivator_ptr& val)
{
    return any.in() >>= val;
}

#endif
