// **********************************************************************
//
// 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_h__
#define __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

namespace CosNaming
{

class NamingContext;
typedef NamingContext* NamingContext_ptr;
typedef NamingContext* NamingContextRef;

OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_NamingContext;

class BindingIterator;
typedef BindingIterator* BindingIterator_ptr;
typedef BindingIterator* BindingIteratorRef;

OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_BindingIterator;

class NamingContextExt;
typedef NamingContextExt* NamingContextExt_ptr;
typedef NamingContextExt* NamingContextExtRef;

OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_NamingContextExt;

} // End of namespace CosNaming

void OBDuplicate(CosNaming::NamingContext_ptr);
void OBRelease(CosNaming::NamingContext_ptr);

void OBMarshal(CosNaming::NamingContext_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(CosNaming::NamingContext_ptr&, OB::InputStreamImpl*);

void OBDuplicate(CosNaming::BindingIterator_ptr);
void OBRelease(CosNaming::BindingIterator_ptr);

void OBMarshal(CosNaming::BindingIterator_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(CosNaming::BindingIterator_ptr&, OB::InputStreamImpl*);

void OBDuplicate(CosNaming::NamingContextExt_ptr);
void OBRelease(CosNaming::NamingContextExt_ptr);

void OBMarshal(CosNaming::NamingContextExt_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(CosNaming::NamingContextExt_ptr&, OB::InputStreamImpl*);

namespace CosNaming
{

typedef OB::ObjVar< NamingContext > NamingContext_var;
typedef OB::ObjOut< NamingContext > NamingContext_out;

typedef OB::ObjVar< BindingIterator > BindingIterator_var;
typedef OB::ObjOut< BindingIterator > BindingIterator_out;

typedef OB::ObjVar< NamingContextExt > NamingContextExt_var;
typedef OB::ObjOut< NamingContextExt > NamingContextExt_out;

} // End of namespace CosNaming

namespace OBStubImpl_CosNaming
{

class NamingContext;
typedef NamingContext* NamingContext_ptr;

class BindingIterator;
typedef BindingIterator* BindingIterator_ptr;

class NamingContextExt;
typedef NamingContextExt* NamingContextExt_ptr;

} // End of namespace OBStubImpl_CosNaming

void OBDuplicate(OBStubImpl_CosNaming::NamingContext_ptr);
void OBRelease(OBStubImpl_CosNaming::NamingContext_ptr);

void OBDuplicate(OBStubImpl_CosNaming::BindingIterator_ptr);
void OBRelease(OBStubImpl_CosNaming::BindingIterator_ptr);

void OBDuplicate(OBStubImpl_CosNaming::NamingContextExt_ptr);
void OBRelease(OBStubImpl_CosNaming::NamingContextExt_ptr);

namespace OBStubImpl_CosNaming
{

typedef OB::ObjVar< NamingContext > NamingContext_var;

typedef OB::ObjVar< BindingIterator > BindingIterator_var;

typedef OB::ObjVar< NamingContextExt > NamingContextExt_var;

} // End of namespace OBStubImpl_CosNaming

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

//
// IDL:omg.org/CosNaming/Istring:1.0
//
typedef char* Istring;
typedef ::CORBA::String_var Istring_var;
typedef ::CORBA::String_out Istring_out;
OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_Istring;

//
// IDL:omg.org/CosNaming/NameComponent:1.0
//
struct NameComponent;
typedef OB::VarVar< NameComponent > NameComponent_var;
typedef OB::VarOut< NameComponent > NameComponent_out;

struct NameComponent
{
    NameComponent() { }
    NameComponent(const NameComponent&);
    NameComponent& operator=(const NameComponent&);

    typedef NameComponent_var _var_type;

    OB::StrForStruct id;
    OB::StrForStruct kind;

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

OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_NameComponent;

//
// IDL:omg.org/CosNaming/Name:1.0
//
class OBUnique_Name { };

typedef OB::VarSeq< NameComponent, OBUnique_Name > Name;
typedef OB::SeqVar< OB::VarSeq< NameComponent, OBUnique_Name > > Name_var;
typedef OB::SeqOut< OB::VarSeq< NameComponent, OBUnique_Name > > Name_out;
OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_Name;

struct OBInfo_Name : public OB::ConstructedInfo
{
    OBInfo_Name() { }

    virtual void free(void* p) const
    {
        delete (Name*)p;
    }

    virtual void* dup(const void* p) const
    {
        return new Name(*(const Name*)p);
    }

    virtual void marshal(const void*, OB::OutputStreamImpl*) const;
    virtual void unmarshal(void*, OB::InputStreamImpl*) const;
};

//
// IDL:omg.org/CosNaming/BindingType:1.0
//
enum BindingType
{
    nobject,
    ncontext
};

typedef BindingType& BindingType_out;

OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_BindingType;

//
// IDL:omg.org/CosNaming/Binding:1.0
//
struct Binding;
typedef OB::VarVar< Binding > Binding_var;
typedef OB::VarOut< Binding > Binding_out;

struct Binding
{
#ifdef OB_CLEAR_MEM
    Binding();
#else
    Binding() { }
#endif
    Binding(const Binding&);
    Binding& operator=(const Binding&);

    typedef Binding_var _var_type;

    Name binding_name;
    BindingType binding_type;

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

OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_Binding;

//
// IDL:omg.org/CosNaming/BindingList:1.0
//
class OBUnique_BindingList { };

typedef OB::VarSeq< Binding, OBUnique_BindingList > BindingList;
typedef OB::SeqVar< OB::VarSeq< Binding, OBUnique_BindingList > > BindingList_var;
typedef OB::SeqOut< OB::VarSeq< Binding, OBUnique_BindingList > > BindingList_out;
OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_BindingList;

struct OBInfo_BindingList : public OB::ConstructedInfo
{
    OBInfo_BindingList() { }

    virtual void free(void* p) const
    {
        delete (BindingList*)p;
    }

    virtual void* dup(const void* p) const
    {
        return new BindingList(*(const BindingList*)p);
    }

    virtual void marshal(const void*, OB::OutputStreamImpl*) const;
    virtual void unmarshal(void*, OB::InputStreamImpl*) const;
};

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

protected:

    static OB_NAMING_IMPORT const char* ids_[];

public:

    NamingContext() { }
    virtual ~NamingContext() { }

    typedef NamingContext_ptr _ptr_type;
    typedef NamingContext_var _var_type;

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

    static inline NamingContext_ptr
    _nil()
    {
        return 0;
    }

    static NamingContext_ptr _narrow(::CORBA::Object_ptr);
    static NamingContext_ptr _unchecked_narrow(::CORBA::Object_ptr);

    static NamingContext_ptr _narrow(::CORBA::AbstractBase_ptr);
    static NamingContext_ptr _unchecked_narrow(::CORBA::AbstractBase_ptr);

    static const char** _OB_staticIds();

    //
    // IDL:omg.org/CosNaming/NamingContext/NotFoundReason:1.0
    //
    enum NotFoundReason
    {
        missing_node,
        not_context,
        not_object
    };

    typedef NotFoundReason& NotFoundReason_out;

    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_NotFoundReason;

    //
    // IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
    //
    struct NotFound : public ::CORBA::UserException
    {
#ifdef OB_CLEAR_MEM
        NotFound();
#else
        NotFound() { }
#endif
        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&);

        NotFoundReason why;
        Name rest_of_name;

        NotFound(NotFoundReason,
                 const Name&);

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

    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_NotFound;

    //
    // IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0
    //
    struct CannotProceed : public ::CORBA::UserException
    {
        CannotProceed() { }
        CannotProceed(const CannotProceed&);
        CannotProceed& operator=(const CannotProceed&);

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

        NamingContext_var cxt;
        Name rest_of_name;

        CannotProceed(NamingContext_ptr,
                      const Name&);

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

    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_CannotProceed;

    //
    // IDL:omg.org/CosNaming/NamingContext/InvalidName:1.0
    //
    struct InvalidName : public ::CORBA::UserException
    {
        InvalidName() { }
        InvalidName(const InvalidName&);
        InvalidName& operator=(const InvalidName&);

        static InvalidName* _downcast(::CORBA::Exception*);
        static const InvalidName* _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(InvalidName&, OB::InputStreamImpl*);
    };

    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_InvalidName;

    //
    // IDL:omg.org/CosNaming/NamingContext/AlreadyBound:1.0
    //
    struct AlreadyBound : public ::CORBA::UserException
    {
        AlreadyBound() { }
        AlreadyBound(const AlreadyBound&);
        AlreadyBound& operator=(const AlreadyBound&);

        static AlreadyBound* _downcast(::CORBA::Exception*);
        static const AlreadyBound* _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(AlreadyBound&, OB::InputStreamImpl*);
    };

    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_AlreadyBound;

    //
    // IDL:omg.org/CosNaming/NamingContext/NotEmpty:1.0
    //
    struct NotEmpty : public ::CORBA::UserException
    {
        NotEmpty() { }
        NotEmpty(const NotEmpty&);
        NotEmpty& operator=(const NotEmpty&);

        static NotEmpty* _downcast(::CORBA::Exception*);
        static const NotEmpty* _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(NotEmpty&, OB::InputStreamImpl*);
    };

    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_NotEmpty;

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

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

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

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

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

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

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

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

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

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

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

protected:

    static OB_NAMING_IMPORT const char* ids_[];

public:

    BindingIterator() { }
    virtual ~BindingIterator() { }

    typedef BindingIterator_ptr _ptr_type;
    typedef BindingIterator_var _var_type;

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

    static inline BindingIterator_ptr
    _nil()
    {
        return 0;
    }

    static BindingIterator_ptr _narrow(::CORBA::Object_ptr);
    static BindingIterator_ptr _unchecked_narrow(::CORBA::Object_ptr);

    static BindingIterator_ptr _narrow(::CORBA::AbstractBase_ptr);
    static BindingIterator_ptr _unchecked_narrow(::CORBA::AbstractBase_ptr);

    static const char** _OB_staticIds();

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

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

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

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

protected:

    static OB_NAMING_IMPORT const char* ids_[];

public:

    NamingContextExt() { }
    virtual ~NamingContextExt() { }

    typedef NamingContextExt_ptr _ptr_type;
    typedef NamingContextExt_var _var_type;

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

    static inline NamingContextExt_ptr
    _nil()
    {
        return 0;
    }

    static NamingContextExt_ptr _narrow(::CORBA::Object_ptr);
    static NamingContextExt_ptr _unchecked_narrow(::CORBA::Object_ptr);

    static NamingContextExt_ptr _narrow(::CORBA::AbstractBase_ptr);
    static NamingContextExt_ptr _unchecked_narrow(::CORBA::AbstractBase_ptr);

    static const char** _OB_staticIds();

    //
    // IDL:omg.org/CosNaming/NamingContextExt/StringName:1.0
    //
    typedef char* StringName;
    typedef ::CORBA::String_var StringName_var;
    typedef ::CORBA::String_out StringName_out;
    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_StringName;

    //
    // IDL:omg.org/CosNaming/NamingContextExt/Address:1.0
    //
    typedef char* Address;
    typedef ::CORBA::String_var Address_var;
    typedef ::CORBA::String_out Address_out;
    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_Address;

    //
    // IDL:omg.org/CosNaming/NamingContextExt/URLString:1.0
    //
    typedef char* URLString;
    typedef ::CORBA::String_var URLString_var;
    typedef ::CORBA::String_out URLString_out;
    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_URLString;

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

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

    //
    // IDL:omg.org/CosNaming/NamingContextExt/InvalidAddress:1.0
    //
    struct InvalidAddress : public ::CORBA::UserException
    {
        InvalidAddress() { }
        InvalidAddress(const InvalidAddress&);
        InvalidAddress& operator=(const InvalidAddress&);

        static InvalidAddress* _downcast(::CORBA::Exception*);
        static const InvalidAddress* _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(InvalidAddress&, OB::InputStreamImpl*);
    };

    OB_NAMING_IMPORT static OB::TypeCodeConst _tc_InvalidAddress;

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

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

} // End of namespace CosNaming

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

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

protected:

    virtual OB::MarshalStubImpl_ptr _OB_createMarshalStubImpl();

public:

    NamingContext() { }
    virtual ~NamingContext() { }

    virtual const char** _OB_ids() const;

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

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

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

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

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

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

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

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

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

    //
    // IDL:omg.org/CosNaming/NamingContext/list:1.0
    //
    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 ::CosNaming::BindingIterator,
                        virtual public OBCORBA::Object
{
    BindingIterator(const BindingIterator&);
    void operator=(const BindingIterator&);

protected:

    virtual OB::MarshalStubImpl_ptr _OB_createMarshalStubImpl();

public:

    BindingIterator() { }
    virtual ~BindingIterator() { }

    virtual const char** _OB_ids() const;

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

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

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

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

protected:

    virtual OB::MarshalStubImpl_ptr _OB_createMarshalStubImpl();

public:

    NamingContextExt() { }
    virtual ~NamingContextExt() { }

    virtual const char** _OB_ids() const;

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

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

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

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

} // End of namespace OBProxy_CosNaming

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

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

protected:

    NamingContext() { }

public:

    static inline NamingContext_ptr
    _duplicate(NamingContext_ptr p)
    {
        if(p)
            p -> _OB_incRef();
        return p;
    }

    static inline NamingContext_ptr
    _nil()
    {
        return 0;
    }

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

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

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

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

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

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

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

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

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

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

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

protected:

    BindingIterator() { }

public:

    static inline BindingIterator_ptr
    _duplicate(BindingIterator_ptr p)
    {
        if(p)
            p -> _OB_incRef();
        return p;
    }

    static inline BindingIterator_ptr
    _nil()
    {
        return 0;
    }

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

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

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

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

protected:

    NamingContextExt() { }

public:

    static inline NamingContextExt_ptr
    _duplicate(NamingContextExt_ptr p)
    {
        if(p)
            p -> _OB_incRef();
        return p;
    }

    static inline NamingContextExt_ptr
    _nil()
    {
        return 0;
    }

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

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

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

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

} // End of namespace OBStubImpl_CosNaming

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

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

protected:

    NamingContext() { }
    friend class OBProxy_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::MarshalStubImpl
{
    BindingIterator(const BindingIterator&);
    void operator=(const BindingIterator&);

protected:

    BindingIterator() { }
    friend class OBProxy_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 OBMarshalStubImpl_CosNaming::NamingContext
{
    NamingContextExt(const NamingContextExt&);
    void operator=(const NamingContextExt&);

protected:

    NamingContextExt() { }
    friend class OBProxy_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 OBMarshalStubImpl_CosNaming

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

} // End of namespace OBV_CosNaming

//
// IDL:omg.org/CosNaming/NameComponent:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::NameComponent*);
void operator<<=(::CORBA::Any&, const CosNaming::NameComponent&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::NameComponent*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::NameComponent& val)
{
    any.inout() <<= val;
}

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

//
// IDL:omg.org/CosNaming/Name:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::Name*);
void operator<<=(::CORBA::Any&, const CosNaming::Name&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::Name*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::Name& val)
{
    any.inout() <<= val;
}

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

//
// IDL:omg.org/CosNaming/BindingType:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::BindingType);
CORBA::Boolean operator>>=(const ::CORBA::Any&, CosNaming::BindingType&);

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

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

//
// IDL:omg.org/CosNaming/Binding:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::Binding*);
void operator<<=(::CORBA::Any&, const CosNaming::Binding&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::Binding*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::Binding& val)
{
    any.inout() <<= val;
}

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

//
// IDL:omg.org/CosNaming/BindingList:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::BindingList*);
void operator<<=(::CORBA::Any&, const CosNaming::BindingList&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::BindingList*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::BindingList& val)
{
    any.inout() <<= val;
}

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

//
// IDL:omg.org/CosNaming/NamingContext:1.0
//
namespace CORBA
{

inline void
release(::CosNaming::NamingContext_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::CosNaming::NamingContext_ptr p)
{
    return p == 0;
}

inline void
release(OBStubImpl_CosNaming::NamingContext_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline Boolean
is_nil(OBStubImpl_CosNaming::NamingContext_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

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

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

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

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

//
// IDL:omg.org/CosNaming/NamingContext/NotFoundReason:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::NamingContext::NotFoundReason);
CORBA::Boolean operator>>=(const ::CORBA::Any&, CosNaming::NamingContext::NotFoundReason&);

inline void
operator<<=(::CORBA::Any_var& any, CosNaming::NamingContext::NotFoundReason val)
{
    any.inout() <<= val;
}

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

//
// IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::NamingContext::NotFound*);
void operator<<=(::CORBA::Any&, const CosNaming::NamingContext::NotFound&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::NamingContext::NotFound*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::NamingContext::NotFound& val)
{
    any.inout() <<= val;
}

inline ::CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, const CosNaming::NamingContext::NotFound*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::NamingContext::CannotProceed*);
void operator<<=(::CORBA::Any&, const CosNaming::NamingContext::CannotProceed&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::NamingContext::CannotProceed*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::NamingContext::CannotProceed& val)
{
    any.inout() <<= val;
}

inline ::CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, const CosNaming::NamingContext::CannotProceed*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/NamingContext/InvalidName:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::NamingContext::InvalidName*);
void operator<<=(::CORBA::Any&, const CosNaming::NamingContext::InvalidName&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::NamingContext::InvalidName*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::NamingContext::InvalidName& val)
{
    any.inout() <<= val;
}

inline ::CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, const CosNaming::NamingContext::InvalidName*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/NamingContext/AlreadyBound:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::NamingContext::AlreadyBound*);
void operator<<=(::CORBA::Any&, const CosNaming::NamingContext::AlreadyBound&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::NamingContext::AlreadyBound*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::NamingContext::AlreadyBound& val)
{
    any.inout() <<= val;
}

inline ::CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, const CosNaming::NamingContext::AlreadyBound*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/NamingContext/NotEmpty:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::NamingContext::NotEmpty*);
void operator<<=(::CORBA::Any&, const CosNaming::NamingContext::NotEmpty&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::NamingContext::NotEmpty*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::NamingContext::NotEmpty& val)
{
    any.inout() <<= val;
}

inline ::CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, const CosNaming::NamingContext::NotEmpty*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/BindingIterator:1.0
//
namespace CORBA
{

inline void
release(::CosNaming::BindingIterator_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::CosNaming::BindingIterator_ptr p)
{
    return p == 0;
}

inline void
release(OBStubImpl_CosNaming::BindingIterator_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline Boolean
is_nil(OBStubImpl_CosNaming::BindingIterator_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

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

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

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

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

//
// IDL:omg.org/CosNaming/NamingContextExt:1.0
//
namespace CORBA
{

inline void
release(::CosNaming::NamingContextExt_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::CosNaming::NamingContextExt_ptr p)
{
    return p == 0;
}

inline void
release(OBStubImpl_CosNaming::NamingContextExt_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline Boolean
is_nil(OBStubImpl_CosNaming::NamingContextExt_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

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

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

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

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

//
// IDL:omg.org/CosNaming/NamingContextExt/InvalidAddress:1.0
//
void operator<<=(::CORBA::Any&, CosNaming::NamingContextExt::InvalidAddress*);
void operator<<=(::CORBA::Any&, const CosNaming::NamingContextExt::InvalidAddress&);
CORBA::Boolean operator>>=(const ::CORBA::Any&, const CosNaming::NamingContextExt::InvalidAddress*&);

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

inline void
operator<<=(::CORBA::Any_var& any, const CosNaming::NamingContextExt::InvalidAddress& val)
{
    any.inout() <<= val;
}

inline ::CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, const CosNaming::NamingContextExt::InvalidAddress*& val)
{
    return any.in() >>= val;
}

#endif
