// **********************************************************************
//
// 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_BindingListener_h__
#define __OB_BindingListener_h__

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


#include <OB/CosNaming.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 CosNaming
{

class BindingListener;
typedef BindingListener* BindingListener_ptr;
typedef BindingListener* BindingListenerRef;

OB_NAMING_IMPORT extern OB::TypeCodeConst _tc_BindingListener;

} // End of namespace CosNaming

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

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

namespace CosNaming
{

typedef OB::ObjVar< BindingListener > BindingListener_var;
typedef OB::ObjOut< BindingListener > BindingListener_out;

} // End of namespace CosNaming

namespace OBStubImpl_CosNaming
{

class BindingListener;
typedef BindingListener* BindingListener_ptr;

} // End of namespace OBStubImpl_CosNaming

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

namespace OBStubImpl_CosNaming
{

typedef OB::ObjVar< BindingListener > BindingListener_var;

} // End of namespace OBStubImpl_CosNaming

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

//
// IDL:ooc.com/CosNaming/BindingListener:1.0
//
class BindingListener : virtual public ::CORBA::Object
{
    BindingListener(const BindingListener&);
    void operator=(const BindingListener&);

protected:

    static OB_NAMING_IMPORT const char* ids_[];

public:

    BindingListener() { }
    virtual ~BindingListener() { }

    typedef BindingListener_ptr _ptr_type;
    typedef BindingListener_var _var_type;

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

    static inline BindingListener_ptr
    _nil()
    {
        return 0;
    }

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

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

    static const char** _OB_staticIds();

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_added:1.0
    //
    virtual void context_added(NamingContext_ptr parent_ctx,
                               NamingContext_ptr child_ctx,
                               const NameComponent& name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_removed:1.0
    //
    virtual void context_removed(NamingContext_ptr parent_ctx,
                                 const NameComponent& name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_changed:1.0
    //
    virtual void context_changed(NamingContext_ptr parent_ctx,
                                 NamingContext_ptr child_ctx,
                                 const NameComponent& old_name,
                                 const NameComponent& new_name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_added:1.0
    //
    virtual void object_added(NamingContext_ptr parent_ctx,
                              ::CORBA::Object_ptr child_obj,
                              const NameComponent& name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_removed:1.0
    //
    virtual void object_removed(NamingContext_ptr parent_ctx,
                                const NameComponent& name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_changed:1.0
    //
    virtual void object_changed(NamingContext_ptr parent_ctx,
                                ::CORBA::Object_ptr child,
                                const NameComponent& old_name,
                                const NameComponent& new_name) = 0;
};

} // End of namespace CosNaming

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

//
// IDL:ooc.com/CosNaming/BindingListener:1.0
//
class BindingListener : virtual public ::CosNaming::BindingListener,
                        virtual public OBCORBA::Object
{
    BindingListener(const BindingListener&);
    void operator=(const BindingListener&);

protected:

    virtual OB::MarshalStubImpl_ptr _OB_createMarshalStubImpl();

public:

    BindingListener() { }
    virtual ~BindingListener() { }

    virtual const char** _OB_ids() const;

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_added:1.0
    //
    void context_added(::CosNaming::NamingContext_ptr parent_ctx,
                       ::CosNaming::NamingContext_ptr child_ctx,
                       const ::CosNaming::NameComponent& name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_removed:1.0
    //
    void context_removed(::CosNaming::NamingContext_ptr parent_ctx,
                         const ::CosNaming::NameComponent& name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_changed:1.0
    //
    void context_changed(::CosNaming::NamingContext_ptr parent_ctx,
                         ::CosNaming::NamingContext_ptr child_ctx,
                         const ::CosNaming::NameComponent& old_name,
                         const ::CosNaming::NameComponent& new_name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_added:1.0
    //
    void object_added(::CosNaming::NamingContext_ptr parent_ctx,
                      ::CORBA::Object_ptr child_obj,
                      const ::CosNaming::NameComponent& name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_removed:1.0
    //
    void object_removed(::CosNaming::NamingContext_ptr parent_ctx,
                        const ::CosNaming::NameComponent& name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_changed:1.0
    //
    void object_changed(::CosNaming::NamingContext_ptr parent_ctx,
                        ::CORBA::Object_ptr child,
                        const ::CosNaming::NameComponent& old_name,
                        const ::CosNaming::NameComponent& new_name);
};

} // End of namespace OBProxy_CosNaming

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

//
// IDL:ooc.com/CosNaming/BindingListener:1.0
//
class BindingListener : virtual public OB::StubImplBase
{
    BindingListener(const BindingListener&);
    void operator=(const BindingListener&);

protected:

    BindingListener() { }

public:

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

    static inline BindingListener_ptr
    _nil()
    {
        return 0;
    }

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_added:1.0
    //
    virtual void context_added(::CosNaming::NamingContext_ptr parent_ctx,
                               ::CosNaming::NamingContext_ptr child_ctx,
                               const ::CosNaming::NameComponent& name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_removed:1.0
    //
    virtual void context_removed(::CosNaming::NamingContext_ptr parent_ctx,
                                 const ::CosNaming::NameComponent& name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_changed:1.0
    //
    virtual void context_changed(::CosNaming::NamingContext_ptr parent_ctx,
                                 ::CosNaming::NamingContext_ptr child_ctx,
                                 const ::CosNaming::NameComponent& old_name,
                                 const ::CosNaming::NameComponent& new_name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_added:1.0
    //
    virtual void object_added(::CosNaming::NamingContext_ptr parent_ctx,
                              ::CORBA::Object_ptr child_obj,
                              const ::CosNaming::NameComponent& name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_removed:1.0
    //
    virtual void object_removed(::CosNaming::NamingContext_ptr parent_ctx,
                                const ::CosNaming::NameComponent& name) = 0;

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_changed:1.0
    //
    virtual void object_changed(::CosNaming::NamingContext_ptr parent_ctx,
                                ::CORBA::Object_ptr child,
                                const ::CosNaming::NameComponent& old_name,
                                const ::CosNaming::NameComponent& new_name) = 0;
};

} // End of namespace OBStubImpl_CosNaming

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

//
// IDL:ooc.com/CosNaming/BindingListener:1.0
//
class BindingListener : virtual public OBStubImpl_CosNaming::BindingListener,
                        virtual public OB::MarshalStubImpl
{
    BindingListener(const BindingListener&);
    void operator=(const BindingListener&);

protected:

    BindingListener() { }
    friend class OBProxy_CosNaming::BindingListener;

public:

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_added:1.0
    //
    virtual void context_added(::CosNaming::NamingContext_ptr parent_ctx,
                               ::CosNaming::NamingContext_ptr child_ctx,
                               const ::CosNaming::NameComponent& name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_removed:1.0
    //
    virtual void context_removed(::CosNaming::NamingContext_ptr parent_ctx,
                                 const ::CosNaming::NameComponent& name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/context_changed:1.0
    //
    virtual void context_changed(::CosNaming::NamingContext_ptr parent_ctx,
                                 ::CosNaming::NamingContext_ptr child_ctx,
                                 const ::CosNaming::NameComponent& old_name,
                                 const ::CosNaming::NameComponent& new_name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_added:1.0
    //
    virtual void object_added(::CosNaming::NamingContext_ptr parent_ctx,
                              ::CORBA::Object_ptr child_obj,
                              const ::CosNaming::NameComponent& name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_removed:1.0
    //
    virtual void object_removed(::CosNaming::NamingContext_ptr parent_ctx,
                                const ::CosNaming::NameComponent& name);

    //
    // IDL:ooc.com/CosNaming/BindingListener/object_changed:1.0
    //
    virtual void object_changed(::CosNaming::NamingContext_ptr parent_ctx,
                                ::CORBA::Object_ptr child,
                                const ::CosNaming::NameComponent& old_name,
                                const ::CosNaming::NameComponent& new_name);
};

} // End of namespace OBMarshalStubImpl_CosNaming

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

} // End of namespace OBV_CosNaming

//
// IDL:ooc.com/CosNaming/BindingListener:1.0
//
namespace CORBA
{

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

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

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

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

} // End of namespace CORBA

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

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

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

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

#endif
