// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 1998
// Object-Oriented Concepts, Inc.
// Billerica, MA, USA
//
// Copyright (c) 1998
// Object-Oriented Concepts GmbH
// Ettlingen, Germany
//
// All Rights Reserved
//
// **********************************************************************

// Version: 3.0
// License: non-commercial

#ifndef __CosNaming_h__
#define __CosNaming_h__

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

//
// IDL:omg.org/CosNaming/NamingContext:1.0
//
class CosNaming_NamingContext;
typedef CosNaming_NamingContext* CosNaming_NamingContext_ptr;
typedef CosNaming_NamingContext* CosNaming_NamingContextRef;
void OBDuplicate(CosNaming_NamingContext_ptr);
void OBRelease(CosNaming_NamingContext_ptr);
typedef OBObjVar< CosNaming_NamingContext > CosNaming_NamingContext_var;

//
// IDL:omg.org/CosNaming/BindingIterator:1.0
//
class CosNaming_BindingIterator;
typedef CosNaming_BindingIterator* CosNaming_BindingIterator_ptr;
typedef CosNaming_BindingIterator* CosNaming_BindingIteratorRef;
void OBDuplicate(CosNaming_BindingIterator_ptr);
void OBRelease(CosNaming_BindingIterator_ptr);
typedef OBObjVar< CosNaming_BindingIterator > CosNaming_BindingIterator_var;

//
// IDL:omg.org/CosNaming/Istring:1.0
//
typedef char* CosNaming_Istring;
typedef CORBA_String_var CosNaming_Istring_var;
extern const OBTypeCodeConst CosNaming__tc_Istring;

//
// IDL:omg.org/CosNaming/NameComponent:1.0
//
struct CosNaming_NameComponent
{
    CosNaming_NameComponent() { }
    CosNaming_NameComponent(const CosNaming_NameComponent&);
    ~CosNaming_NameComponent() { }
    CosNaming_NameComponent& operator=(const CosNaming_NameComponent&);

    CosNaming_Istring_var id;
    CosNaming_Istring_var kind;
};

typedef OBVarVar< CosNaming_NameComponent > CosNaming_NameComponent_var;

extern const OBTypeCodeConst CosNaming__tc_NameComponent;

//
// IDL:omg.org/CosNaming/Name:1.0
//
typedef OBVarSeq< CosNaming_NameComponent > CosNaming_Name;
typedef OBSeqVar< OBVarSeq< CosNaming_NameComponent > > CosNaming_Name_var;
extern const OBTypeCodeConst CosNaming__tc_Name;

//
// IDL:omg.org/CosNaming/BindingType:1.0
//
enum CosNaming_BindingType
{
    CosNaming_nobject,
    CosNaming_ncontext
};

extern const OBTypeCodeConst CosNaming__tc_BindingType;

//
// IDL:omg.org/CosNaming/Binding:1.0
//
struct CosNaming_Binding
{
#ifdef OB_CLEAR_MEM
    CosNaming_Binding();
#else
    CosNaming_Binding() { }
#endif
    CosNaming_Binding(const CosNaming_Binding&);
    ~CosNaming_Binding() { }
    CosNaming_Binding& operator=(const CosNaming_Binding&);

    CosNaming_Name binding_name;
    CosNaming_BindingType binding_type;
};

typedef OBVarVar< CosNaming_Binding > CosNaming_Binding_var;

extern const OBTypeCodeConst CosNaming__tc_Binding;

//
// IDL:omg.org/CosNaming/BindingList:1.0
//
typedef OBVarSeq< CosNaming_Binding > CosNaming_BindingList;
typedef OBSeqVar< OBVarSeq< CosNaming_Binding > > CosNaming_BindingList_var;
extern const OBTypeCodeConst CosNaming__tc_BindingList;

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

public:

    CosNaming_NamingContext() { }

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

    static inline CosNaming_NamingContext_ptr
    _nil()
    {
        return 0;
    }

    static CosNaming_NamingContext_ptr _narrow(CORBA_Object_ptr);
    virtual void* _OB_narrowHelp(const char*) const;
    virtual const char* _OB_typeId() const;

    friend void OBUnmarshal(CosNaming_NamingContext_ptr&, const CORBA_Octet*&, bool);

    friend CORBA_Boolean operator>>=(const CORBA_Any&, CosNaming_NamingContext_ptr&);

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

    static const OBTypeCodeConst _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(NotFoundReason,
                 const CosNaming_Name&);
        virtual ~NotFound() { }
        NotFound& operator=(const NotFound&);

        static NotFound* _narrow(CORBA_Exception*);
#ifdef HAVE_NO_RTTI
        virtual void* _OB_narrowHelp(const char*) const;
#endif
        virtual const char* _OB_typeId() const;
        virtual CORBA_Exception* _OB_clone() const;

        NotFoundReason why;
        CosNaming_Name rest_of_name;
    };

    static const OBTypeCodeConst _tc_NotFound;

    //
    // IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0
    //
    struct CannotProceed : public CORBA_UserException
    {
        CannotProceed() { }
        CannotProceed(const CannotProceed&);
        CannotProceed(CosNaming_NamingContext_ptr,
                      const CosNaming_Name&);
        virtual ~CannotProceed() { }
        CannotProceed& operator=(const CannotProceed&);

        static CannotProceed* _narrow(CORBA_Exception*);
#ifdef HAVE_NO_RTTI
        virtual void* _OB_narrowHelp(const char*) const;
#endif
        virtual const char* _OB_typeId() const;
        virtual CORBA_Exception* _OB_clone() const;

        CosNaming_NamingContext_var cxt;
        CosNaming_Name rest_of_name;
    };

    static const OBTypeCodeConst _tc_CannotProceed;

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

        static InvalidName* _narrow(CORBA_Exception*);
#ifdef HAVE_NO_RTTI
        virtual void* _OB_narrowHelp(const char*) const;
#endif
        virtual const char* _OB_typeId() const;
        virtual CORBA_Exception* _OB_clone() const;
    };

    static const OBTypeCodeConst _tc_InvalidName;

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

        static AlreadyBound* _narrow(CORBA_Exception*);
#ifdef HAVE_NO_RTTI
        virtual void* _OB_narrowHelp(const char*) const;
#endif
        virtual const char* _OB_typeId() const;
        virtual CORBA_Exception* _OB_clone() const;
    };

    static const OBTypeCodeConst _tc_AlreadyBound;

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

        static NotEmpty* _narrow(CORBA_Exception*);
#ifdef HAVE_NO_RTTI
        virtual void* _OB_narrowHelp(const char*) const;
#endif
        virtual const char* _OB_typeId() const;
        virtual CORBA_Exception* _OB_clone() const;
    };

    static const OBTypeCodeConst _tc_NotEmpty;

    //
    // 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*& bl,
                      CosNaming_BindingIterator_ptr& bi);
};

extern const OBTypeCodeConst CosNaming__tc_NamingContext;

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

public:

    CosNaming_BindingIterator() { }

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

    static inline CosNaming_BindingIterator_ptr
    _nil()
    {
        return 0;
    }

    static CosNaming_BindingIterator_ptr _narrow(CORBA_Object_ptr);
    virtual void* _OB_narrowHelp(const char*) const;
    virtual const char* _OB_typeId() const;

    friend void OBUnmarshal(CosNaming_BindingIterator_ptr&, const CORBA_Octet*&, bool);

    friend CORBA_Boolean operator>>=(const CORBA_Any&, CosNaming_BindingIterator_ptr&);

    //
    // IDL:omg.org/CosNaming/BindingIterator/next_one:1.0
    //
    virtual CORBA_Boolean next_one(CosNaming_Binding*& b);

    //
    // IDL:omg.org/CosNaming/BindingIterator/next_n:1.0
    //
    virtual CORBA_Boolean next_n(CORBA_ULong how_many,
                                 CosNaming_BindingList*& bl);

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

extern const OBTypeCodeConst CosNaming__tc_BindingIterator;

//
// IDL:omg.org/CosNaming/NameComponent:1.0
//
void OBMarshal(const CosNaming_NameComponent&, CORBA_Octet*&);
void OBMarshalCount(const CosNaming_NameComponent&, CORBA_ULong&);
void OBUnmarshal(CosNaming_NameComponent&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, CosNaming_NameComponent*);
void operator<<=(CORBA_Any&, const CosNaming_NameComponent&);
CORBA_Boolean operator>>=(const CORBA_Any&, 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, CosNaming_NameComponent*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/BindingType:1.0
//
inline void
OBMarshal(CosNaming_BindingType val, CORBA_Octet*& oct)
{
    OBMarshal((CORBA_ULong)val, oct);
}

inline void
OBMarshalCount(CosNaming_BindingType, CORBA_ULong& count)
{
    OBMarshalCount((CORBA_ULong)0, count);
}

inline void
OBUnmarshal(CosNaming_BindingType& val, const CORBA_Octet*& coct, bool swap)
{
    CORBA_ULong v;
    OBUnmarshal(v, coct, swap);
    val = (CosNaming_BindingType)v;
}

void operator<<=(CORBA_Any&, CosNaming_BindingType);
CORBA_Boolean operator>>=(const CORBA_Any&, CosNaming_BindingType&);

//
// IDL:omg.org/CosNaming/Binding:1.0
//
void OBMarshal(const CosNaming_Binding&, CORBA_Octet*&);
void OBMarshalCount(const CosNaming_Binding&, CORBA_ULong&);
void OBUnmarshal(CosNaming_Binding&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, CosNaming_Binding*);
void operator<<=(CORBA_Any&, const CosNaming_Binding&);
CORBA_Boolean operator>>=(const CORBA_Any&, 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, CosNaming_Binding*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/NamingContext:1.0
//
inline void
CORBA_release(CosNaming_NamingContext_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline CORBA_Boolean
CORBA_is_nil(CosNaming_NamingContext_ptr p)
{
    return p == 0;
}

inline void
OBMarshal(CosNaming_NamingContext_ptr p, CORBA_Octet*& oct)
{
    OBMarshal((CORBA_Object_ptr)p, oct);
}

inline void
OBMarshalCount(CosNaming_NamingContext_ptr p, CORBA_ULong& count)
{
    OBMarshalCount((CORBA_Object_ptr)p, count);
}

void OBUnmarshal(CosNaming_NamingContext_ptr&, const CORBA_Octet*&, bool);

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
//
inline void
OBMarshal(CosNaming_NamingContext::NotFoundReason val, CORBA_Octet*& oct)
{
    OBMarshal((CORBA_ULong)val, oct);
}

inline void
OBMarshalCount(CosNaming_NamingContext::NotFoundReason, CORBA_ULong& count)
{
    OBMarshalCount((CORBA_ULong)0, count);
}

inline void
OBUnmarshal(CosNaming_NamingContext::NotFoundReason& val, const CORBA_Octet*& coct, bool swap)
{
    CORBA_ULong v;
    OBUnmarshal(v, coct, swap);
    val = (CosNaming_NamingContext::NotFoundReason)v;
}

void operator<<=(CORBA_Any&, CosNaming_NamingContext::NotFoundReason);
CORBA_Boolean operator>>=(const CORBA_Any&, CosNaming_NamingContext::NotFoundReason&);

//
// IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
//
void OBMarshal(const CosNaming_NamingContext::NotFound&, CORBA_Octet*&);
void OBMarshalCount(const CosNaming_NamingContext::NotFound&, CORBA_ULong&);
void OBUnmarshal(CosNaming_NamingContext::NotFound&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, CosNaming_NamingContext::NotFound*);
void operator<<=(CORBA_Any&, const CosNaming_NamingContext::NotFound&);
CORBA_Boolean operator>>=(const CORBA_Any&, 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, CosNaming_NamingContext::NotFound*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0
//
void OBMarshal(const CosNaming_NamingContext::CannotProceed&, CORBA_Octet*&);
void OBMarshalCount(const CosNaming_NamingContext::CannotProceed&, CORBA_ULong&);
void OBUnmarshal(CosNaming_NamingContext::CannotProceed&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, CosNaming_NamingContext::CannotProceed*);
void operator<<=(CORBA_Any&, const CosNaming_NamingContext::CannotProceed&);
CORBA_Boolean operator>>=(const CORBA_Any&, 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, CosNaming_NamingContext::CannotProceed*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/NamingContext/InvalidName:1.0
//
void OBMarshal(const CosNaming_NamingContext::InvalidName&, CORBA_Octet*&);
void OBMarshalCount(const CosNaming_NamingContext::InvalidName&, CORBA_ULong&);
void OBUnmarshal(CosNaming_NamingContext::InvalidName&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, CosNaming_NamingContext::InvalidName*);
void operator<<=(CORBA_Any&, const CosNaming_NamingContext::InvalidName&);
CORBA_Boolean operator>>=(const CORBA_Any&, 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, CosNaming_NamingContext::InvalidName*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/NamingContext/AlreadyBound:1.0
//
void OBMarshal(const CosNaming_NamingContext::AlreadyBound&, CORBA_Octet*&);
void OBMarshalCount(const CosNaming_NamingContext::AlreadyBound&, CORBA_ULong&);
void OBUnmarshal(CosNaming_NamingContext::AlreadyBound&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, CosNaming_NamingContext::AlreadyBound*);
void operator<<=(CORBA_Any&, const CosNaming_NamingContext::AlreadyBound&);
CORBA_Boolean operator>>=(const CORBA_Any&, 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, CosNaming_NamingContext::AlreadyBound*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/NamingContext/NotEmpty:1.0
//
void OBMarshal(const CosNaming_NamingContext::NotEmpty&, CORBA_Octet*&);
void OBMarshalCount(const CosNaming_NamingContext::NotEmpty&, CORBA_ULong&);
void OBUnmarshal(CosNaming_NamingContext::NotEmpty&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, CosNaming_NamingContext::NotEmpty*);
void operator<<=(CORBA_Any&, const CosNaming_NamingContext::NotEmpty&);
CORBA_Boolean operator>>=(const CORBA_Any&, 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, CosNaming_NamingContext::NotEmpty*& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/CosNaming/BindingIterator:1.0
//
inline void
CORBA_release(CosNaming_BindingIterator_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline CORBA_Boolean
CORBA_is_nil(CosNaming_BindingIterator_ptr p)
{
    return p == 0;
}

inline void
OBMarshal(CosNaming_BindingIterator_ptr p, CORBA_Octet*& oct)
{
    OBMarshal((CORBA_Object_ptr)p, oct);
}

inline void
OBMarshalCount(CosNaming_BindingIterator_ptr p, CORBA_ULong& count)
{
    OBMarshalCount((CORBA_Object_ptr)p, count);
}

void OBUnmarshal(CosNaming_BindingIterator_ptr&, const CORBA_Octet*&, bool);

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;
}

//
// OBVarSeq< CosNaming_NameComponent >
//
#ifndef OB_use_OBVarSeq_CosNaming__NameComponent
#define OB_use_OBVarSeq_CosNaming__NameComponent
#define OB_use_OBVarSeq_CosNaming__NameComponent_from_CosNaming_h

void OBMarshal(const OBVarSeq< CosNaming_NameComponent >&, CORBA_Octet*&);
void OBMarshalCount(const OBVarSeq< CosNaming_NameComponent >&, CORBA_ULong&);
void OBUnmarshal(OBVarSeq< CosNaming_NameComponent >&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, OBVarSeq< CosNaming_NameComponent >*);
void operator<<=(CORBA_Any&, const OBVarSeq< CosNaming_NameComponent >&);
CORBA_Boolean operator>>=(const CORBA_Any&, OBVarSeq< CosNaming_NameComponent >*&);

inline void
operator<<=(CORBA_Any_var& any, OBVarSeq< CosNaming_NameComponent >* val)
{
    any.inout() <<= val;
}

inline void
operator<<=(CORBA_Any_var& any, const OBVarSeq< CosNaming_NameComponent >& val)
{
    any.inout() <<= val;
}

inline CORBA_Boolean
operator>>=(const CORBA_Any_var& any, OBVarSeq< CosNaming_NameComponent >*& val)
{
    return any.in() >>= val;
}

#endif

//
// OBVarSeq< CosNaming_Binding >
//
#ifndef OB_use_OBVarSeq_CosNaming__Binding
#define OB_use_OBVarSeq_CosNaming__Binding
#define OB_use_OBVarSeq_CosNaming__Binding_from_CosNaming_h

void OBMarshal(const OBVarSeq< CosNaming_Binding >&, CORBA_Octet*&);
void OBMarshalCount(const OBVarSeq< CosNaming_Binding >&, CORBA_ULong&);
void OBUnmarshal(OBVarSeq< CosNaming_Binding >&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, OBVarSeq< CosNaming_Binding >*);
void operator<<=(CORBA_Any&, const OBVarSeq< CosNaming_Binding >&);
CORBA_Boolean operator>>=(const CORBA_Any&, OBVarSeq< CosNaming_Binding >*&);

inline void
operator<<=(CORBA_Any_var& any, OBVarSeq< CosNaming_Binding >* val)
{
    any.inout() <<= val;
}

inline void
operator<<=(CORBA_Any_var& any, const OBVarSeq< CosNaming_Binding >& val)
{
    any.inout() <<= val;
}

inline CORBA_Boolean
operator>>=(const CORBA_Any_var& any, OBVarSeq< CosNaming_Binding >*& val)
{
    return any.in() >>= val;
}

#endif

#endif
