// **********************************************************************
//
// 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_CosNaming_skel_h__
#define __OB_CosNaming_skel_h__

#include <OB/CosNaming.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:omg.org/CosNaming/NamingContext:1.0
//
class NamingContext : virtual public PortableServer::ServantBase
{
    NamingContext(const NamingContext&);
    void operator=(const NamingContext&);

protected:

    //
    // IDL:omg.org/CosNaming/NamingContext/bind:1.0
    //
    void _OB_op_bind(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContext/rebind:1.0
    //
    void _OB_op_rebind(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContext/bind_context:1.0
    //
    void _OB_op_bind_context(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContext/rebind_context:1.0
    //
    void _OB_op_rebind_context(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContext/resolve:1.0
    //
    void _OB_op_resolve(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContext/unbind:1.0
    //
    void _OB_op_unbind(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContext/new_context:1.0
    //
    void _OB_op_new_context(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContext/bind_new_context:1.0
    //
    void _OB_op_bind_new_context(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContext/destroy:1.0
    //
    void _OB_op_destroy(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContext/list:1.0
    //
    void _OB_op_list(OB::Upcall_ptr);

public:

    NamingContext() { }

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

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

    CosNaming::NamingContext_ptr _this();

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

    //
    // IDL:omg.org/CosNaming/NamingContext/bind:1.0
    //
    virtual void bind(const ::CosNaming::Name& n,
                      ::CORBA::Object_ptr obj)
        throw(CosNaming::NamingContext::NotFound,
              CosNaming::NamingContext::CannotProceed,
              CosNaming::NamingContext::InvalidName,
              CosNaming::NamingContext::AlreadyBound,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContext/rebind:1.0
    //
    virtual void rebind(const ::CosNaming::Name& n,
                        ::CORBA::Object_ptr obj)
        throw(CosNaming::NamingContext::NotFound,
              CosNaming::NamingContext::CannotProceed,
              CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContext/bind_context:1.0
    //
    virtual void bind_context(const ::CosNaming::Name& n,
                              ::CosNaming::NamingContext_ptr nc)
        throw(CosNaming::NamingContext::NotFound,
              CosNaming::NamingContext::CannotProceed,
              CosNaming::NamingContext::InvalidName,
              CosNaming::NamingContext::AlreadyBound,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContext/rebind_context:1.0
    //
    virtual void rebind_context(const ::CosNaming::Name& n,
                                ::CosNaming::NamingContext_ptr nc)
        throw(CosNaming::NamingContext::NotFound,
              CosNaming::NamingContext::CannotProceed,
              CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContext/resolve:1.0
    //
    virtual ::CORBA::Object_ptr resolve(const ::CosNaming::Name& n)
        throw(CosNaming::NamingContext::NotFound,
              CosNaming::NamingContext::CannotProceed,
              CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContext/unbind:1.0
    //
    virtual void unbind(const ::CosNaming::Name& n)
        throw(CosNaming::NamingContext::NotFound,
              CosNaming::NamingContext::CannotProceed,
              CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContext/new_context:1.0
    //
    virtual ::CosNaming::NamingContext_ptr new_context()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContext/bind_new_context:1.0
    //
    virtual ::CosNaming::NamingContext_ptr bind_new_context(const ::CosNaming::Name& n)
        throw(CosNaming::NamingContext::NotFound,
              CosNaming::NamingContext::AlreadyBound,
              CosNaming::NamingContext::CannotProceed,
              CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContext/destroy:1.0
    //
    virtual void destroy()
        throw(CosNaming::NamingContext::NotEmpty,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContext/list:1.0
    //
    virtual void list(::CORBA::ULong how_many,
                      ::CosNaming::BindingList_out bl,
                      ::CosNaming::BindingIterator_out bi)
        throw(::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosNaming/BindingIterator:1.0
//
class BindingIterator : virtual public PortableServer::ServantBase
{
    BindingIterator(const BindingIterator&);
    void operator=(const BindingIterator&);

protected:

    //
    // IDL:omg.org/CosNaming/BindingIterator/next_one:1.0
    //
    void _OB_op_next_one(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/BindingIterator/next_n:1.0
    //
    void _OB_op_next_n(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/BindingIterator/destroy:1.0
    //
    void _OB_op_destroy(OB::Upcall_ptr);

public:

    BindingIterator() { }

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

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

    CosNaming::BindingIterator_ptr _this();

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

    //
    // IDL:omg.org/CosNaming/BindingIterator/next_one:1.0
    //
    virtual ::CORBA::Boolean next_one(::CosNaming::Binding_out b)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/BindingIterator/next_n:1.0
    //
    virtual ::CORBA::Boolean next_n(::CORBA::ULong how_many,
                                    ::CosNaming::BindingList_out bl)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/BindingIterator/destroy:1.0
    //
    virtual void destroy()
        throw(::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosNaming/NamingContextExt:1.0
//
class NamingContextExt : virtual public POA_CosNaming::NamingContext
{
    NamingContextExt(const NamingContextExt&);
    void operator=(const NamingContextExt&);

protected:

    //
    // IDL:omg.org/CosNaming/NamingContextExt/to_string:1.0
    //
    void _OB_op_to_string(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContextExt/to_name:1.0
    //
    void _OB_op_to_name(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContextExt/to_url:1.0
    //
    void _OB_op_to_url(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosNaming/NamingContextExt/resolve_str:1.0
    //
    void _OB_op_resolve_str(OB::Upcall_ptr);

public:

    NamingContextExt() { }

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

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

    CosNaming::NamingContextExt_ptr _this();

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

    //
    // IDL:omg.org/CosNaming/NamingContextExt/to_string:1.0
    //
    virtual ::CosNaming::NamingContextExt::StringName to_string(const ::CosNaming::Name& n)
        throw(CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContextExt/to_name:1.0
    //
    virtual ::CosNaming::Name* to_name(const char* sn)
        throw(CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContextExt/to_url:1.0
    //
    virtual ::CosNaming::NamingContextExt::URLString to_url(const char* addr,
                                                            const char* sn)
        throw(CosNaming::NamingContextExt::InvalidAddress,
              CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosNaming/NamingContextExt/resolve_str:1.0
    //
    virtual ::CORBA::Object_ptr resolve_str(const char* sn)
        throw(CosNaming::NamingContext::NotFound,
              CosNaming::NamingContext::CannotProceed,
              CosNaming::NamingContext::InvalidName,
              ::CORBA::SystemException) = 0;
};

} // End of namespace POA_CosNaming

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

//
// IDL:omg.org/CosNaming/NamingContext:1.0
//
class NamingContext : virtual public OBStubImpl_CosNaming::NamingContext,
                      virtual public OB::DirectStubImpl
{
    NamingContext(const NamingContext&);
    void operator=(const NamingContext&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    NamingContext() { }

#endif

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

    friend class POA_CosNaming::NamingContext;

public:

    //
    // IDL:omg.org/CosNaming/NamingContext/bind:1.0
    //
    virtual void bind(const ::CosNaming::Name& n,
                      ::CORBA::Object_ptr obj);

    //
    // IDL:omg.org/CosNaming/NamingContext/rebind:1.0
    //
    virtual void rebind(const ::CosNaming::Name& n,
                        ::CORBA::Object_ptr obj);

    //
    // IDL:omg.org/CosNaming/NamingContext/bind_context:1.0
    //
    virtual void bind_context(const ::CosNaming::Name& n,
                              ::CosNaming::NamingContext_ptr nc);

    //
    // IDL:omg.org/CosNaming/NamingContext/rebind_context:1.0
    //
    virtual void rebind_context(const ::CosNaming::Name& n,
                                ::CosNaming::NamingContext_ptr nc);

    //
    // IDL:omg.org/CosNaming/NamingContext/resolve:1.0
    //
    virtual ::CORBA::Object_ptr resolve(const ::CosNaming::Name& n);

    //
    // IDL:omg.org/CosNaming/NamingContext/unbind:1.0
    //
    virtual void unbind(const ::CosNaming::Name& n);

    //
    // IDL:omg.org/CosNaming/NamingContext/new_context:1.0
    //
    virtual ::CosNaming::NamingContext_ptr new_context();

    //
    // IDL:omg.org/CosNaming/NamingContext/bind_new_context:1.0
    //
    virtual ::CosNaming::NamingContext_ptr bind_new_context(const ::CosNaming::Name& n);

    //
    // IDL:omg.org/CosNaming/NamingContext/destroy:1.0
    //
    virtual void destroy();

    //
    // IDL:omg.org/CosNaming/NamingContext/list:1.0
    //
    virtual void list(::CORBA::ULong how_many,
                      ::CosNaming::BindingList_out bl,
                      ::CosNaming::BindingIterator_out bi);
};

//
// IDL:omg.org/CosNaming/BindingIterator:1.0
//
class BindingIterator : virtual public OBStubImpl_CosNaming::BindingIterator,
                        virtual public OB::DirectStubImpl
{
    BindingIterator(const BindingIterator&);
    void operator=(const BindingIterator&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    BindingIterator() { }

#endif

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

    friend class POA_CosNaming::BindingIterator;

public:

    //
    // IDL:omg.org/CosNaming/BindingIterator/next_one:1.0
    //
    virtual ::CORBA::Boolean next_one(::CosNaming::Binding_out b);

    //
    // IDL:omg.org/CosNaming/BindingIterator/next_n:1.0
    //
    virtual ::CORBA::Boolean next_n(::CORBA::ULong how_many,
                                    ::CosNaming::BindingList_out bl);

    //
    // IDL:omg.org/CosNaming/BindingIterator/destroy:1.0
    //
    virtual void destroy();
};

//
// IDL:omg.org/CosNaming/NamingContextExt:1.0
//
class NamingContextExt : virtual public OBStubImpl_CosNaming::NamingContextExt,
                         virtual public OBDirectStubImpl_CosNaming::NamingContext
{
    NamingContextExt(const NamingContextExt&);
    void operator=(const NamingContextExt&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    NamingContextExt() { }

#endif

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

    friend class POA_CosNaming::NamingContextExt;

public:

    //
    // IDL:omg.org/CosNaming/NamingContextExt/to_string:1.0
    //
    virtual ::CosNaming::NamingContextExt::StringName to_string(const ::CosNaming::Name& n);

    //
    // IDL:omg.org/CosNaming/NamingContextExt/to_name:1.0
    //
    virtual ::CosNaming::Name* to_name(const char* sn);

    //
    // IDL:omg.org/CosNaming/NamingContextExt/to_url:1.0
    //
    virtual ::CosNaming::NamingContextExt::URLString to_url(const char* addr,
                                                            const char* sn);

    //
    // IDL:omg.org/CosNaming/NamingContextExt/resolve_str:1.0
    //
    virtual ::CORBA::Object_ptr resolve_str(const char* sn);
};

} // End of namespace OBDirectStubImpl_CosNaming

#endif
