// **********************************************************************
//
// 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_OBNaming_skel_h__
#define __OB_OBNaming_skel_h__

#include <OB/OBNaming.h>

#include <OB/CosNaming_skel.h>
#include <OB/BindingListener_skel.h>

#ifndef OB_NAMING_IMPORT
#   ifdef OB_DLL
#      define OB_NAMING_IMPORT __declspec(dllimport)
#   else
#      define OB_NAMING_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:omg.org/CosNaming:1.0
//
namespace POA_CosNaming
{

//
// IDL:ooc.com/CosNaming/OBNamingContext:1.0
//
class OBNamingContext : virtual public POA_CosNaming::NamingContextExt
{
    OBNamingContext(const OBNamingContext&);
    void operator=(const OBNamingContext&);

protected:

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/list_extended:1.0
    //
    void _OB_op_list_extended(OB::Upcall_ptr);

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/rename:1.0
    //
    void _OB_op_rename(OB::Upcall_ptr);

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/add_listener:1.0
    //
    void _OB_op_add_listener(OB::Upcall_ptr);

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/remove_listener:1.0
    //
    void _OB_op_remove_listener(OB::Upcall_ptr);

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/callbacks_active:1.0
    //
    void _OB_op_callbacks_active(OB::Upcall_ptr);

public:

    OBNamingContext() { }

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

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

    CosNaming::OBNamingContext_ptr _this();

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

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/list_extended:1.0
    //
    virtual ::CosNaming::OBNamingContext::ExtendedBindingList* list_extended()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/rename:1.0
    //
    virtual void rename(const ::CosNaming::Name& old_name,
                        const ::CosNaming::Name& new_name)
        throw(CosNaming::NamingContext::NotFound,
              CosNaming::NamingContext::AlreadyBound,
              CosNaming::NamingContext::CannotProceed,
              CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/add_listener:1.0
    //
    virtual ::CORBA::Boolean add_listener(::CosNaming::BindingListener_ptr listener)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/remove_listener:1.0
    //
    virtual ::CORBA::Boolean remove_listener(::CosNaming::BindingListener_ptr listener)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/callbacks_active:1.0
    //
    virtual ::CORBA::Boolean callbacks_active()
        throw(::CORBA::SystemException) = 0;
};

} // End of namespace POA_CosNaming

//
// IDL:omg.org/CosNaming:1.0
//
namespace OBDirectStubImpl_CosNaming
{

//
// IDL:ooc.com/CosNaming/OBNamingContext:1.0
//
class OBNamingContext : virtual public OBStubImpl_CosNaming::OBNamingContext,
                        virtual public OBDirectStubImpl_CosNaming::NamingContextExt
{
    OBNamingContext(const OBNamingContext&);
    void operator=(const OBNamingContext&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    OBNamingContext() { }

#endif

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

    friend class POA_CosNaming::OBNamingContext;

public:

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/list_extended:1.0
    //
    virtual ::CosNaming::OBNamingContext::ExtendedBindingList* list_extended();

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/rename:1.0
    //
    virtual void rename(const ::CosNaming::Name& old_name,
                        const ::CosNaming::Name& new_name);

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/add_listener:1.0
    //
    virtual ::CORBA::Boolean add_listener(::CosNaming::BindingListener_ptr listener);

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/remove_listener:1.0
    //
    virtual ::CORBA::Boolean remove_listener(::CosNaming::BindingListener_ptr listener);

    //
    // IDL:ooc.com/CosNaming/OBNamingContext/callbacks_active:1.0
    //
    virtual ::CORBA::Boolean callbacks_active();
};

} // End of namespace OBDirectStubImpl_CosNaming

#endif
