// **********************************************************************
//
// 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_CosEventComm_h__
#define __OB_CosEventComm_h__

#ifndef OB_EVENT_IMPORT
#   ifdef OB_DLL
#      define OB_EVENT_IMPORT __declspec(dllimport)
#   else
#      define OB_EVENT_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 CosEventComm
{

class PushConsumer;
typedef PushConsumer* PushConsumer_ptr;
typedef PushConsumer* PushConsumerRef;

OB_EVENT_IMPORT extern OB::TypeCodeConst _tc_PushConsumer;

class PushSupplier;
typedef PushSupplier* PushSupplier_ptr;
typedef PushSupplier* PushSupplierRef;

OB_EVENT_IMPORT extern OB::TypeCodeConst _tc_PushSupplier;

class PullSupplier;
typedef PullSupplier* PullSupplier_ptr;
typedef PullSupplier* PullSupplierRef;

OB_EVENT_IMPORT extern OB::TypeCodeConst _tc_PullSupplier;

class PullConsumer;
typedef PullConsumer* PullConsumer_ptr;
typedef PullConsumer* PullConsumerRef;

OB_EVENT_IMPORT extern OB::TypeCodeConst _tc_PullConsumer;

} // End of namespace CosEventComm

void OBDuplicate(CosEventComm::PushConsumer_ptr);
void OBRelease(CosEventComm::PushConsumer_ptr);

void OBMarshal(CosEventComm::PushConsumer_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(CosEventComm::PushConsumer_ptr&, OB::InputStreamImpl*);

void OBDuplicate(CosEventComm::PushSupplier_ptr);
void OBRelease(CosEventComm::PushSupplier_ptr);

void OBMarshal(CosEventComm::PushSupplier_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(CosEventComm::PushSupplier_ptr&, OB::InputStreamImpl*);

void OBDuplicate(CosEventComm::PullSupplier_ptr);
void OBRelease(CosEventComm::PullSupplier_ptr);

void OBMarshal(CosEventComm::PullSupplier_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(CosEventComm::PullSupplier_ptr&, OB::InputStreamImpl*);

void OBDuplicate(CosEventComm::PullConsumer_ptr);
void OBRelease(CosEventComm::PullConsumer_ptr);

void OBMarshal(CosEventComm::PullConsumer_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(CosEventComm::PullConsumer_ptr&, OB::InputStreamImpl*);

namespace CosEventComm
{

typedef OB::ObjVar< PushConsumer > PushConsumer_var;
typedef OB::ObjOut< PushConsumer > PushConsumer_out;

typedef OB::ObjVar< PushSupplier > PushSupplier_var;
typedef OB::ObjOut< PushSupplier > PushSupplier_out;

typedef OB::ObjVar< PullSupplier > PullSupplier_var;
typedef OB::ObjOut< PullSupplier > PullSupplier_out;

typedef OB::ObjVar< PullConsumer > PullConsumer_var;
typedef OB::ObjOut< PullConsumer > PullConsumer_out;

} // End of namespace CosEventComm

namespace OBStubImpl_CosEventComm
{

class PushConsumer;
typedef PushConsumer* PushConsumer_ptr;

class PushSupplier;
typedef PushSupplier* PushSupplier_ptr;

class PullSupplier;
typedef PullSupplier* PullSupplier_ptr;

class PullConsumer;
typedef PullConsumer* PullConsumer_ptr;

} // End of namespace OBStubImpl_CosEventComm

void OBDuplicate(OBStubImpl_CosEventComm::PushConsumer_ptr);
void OBRelease(OBStubImpl_CosEventComm::PushConsumer_ptr);

void OBDuplicate(OBStubImpl_CosEventComm::PushSupplier_ptr);
void OBRelease(OBStubImpl_CosEventComm::PushSupplier_ptr);

void OBDuplicate(OBStubImpl_CosEventComm::PullSupplier_ptr);
void OBRelease(OBStubImpl_CosEventComm::PullSupplier_ptr);

void OBDuplicate(OBStubImpl_CosEventComm::PullConsumer_ptr);
void OBRelease(OBStubImpl_CosEventComm::PullConsumer_ptr);

namespace OBStubImpl_CosEventComm
{

typedef OB::ObjVar< PushConsumer > PushConsumer_var;

typedef OB::ObjVar< PushSupplier > PushSupplier_var;

typedef OB::ObjVar< PullSupplier > PullSupplier_var;

typedef OB::ObjVar< PullConsumer > PullConsumer_var;

} // End of namespace OBStubImpl_CosEventComm

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

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

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

OB_EVENT_IMPORT extern OB::TypeCodeConst _tc_Disconnected;

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

protected:

    static OB_EVENT_IMPORT const char* ids_[];

public:

    PushConsumer() { }
    virtual ~PushConsumer() { }

    typedef PushConsumer_ptr _ptr_type;
    typedef PushConsumer_var _var_type;

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

    static inline PushConsumer_ptr
    _nil()
    {
        return 0;
    }

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

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

    static const char** _OB_staticIds();

    //
    // IDL:omg.org/CosEventComm/PushConsumer/push:1.0
    //
    virtual void push(const ::CORBA::Any& data) = 0;

    //
    // IDL:omg.org/CosEventComm/PushConsumer/disconnect_push_consumer:1.0
    //
    virtual void disconnect_push_consumer() = 0;
};

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

protected:

    static OB_EVENT_IMPORT const char* ids_[];

public:

    PushSupplier() { }
    virtual ~PushSupplier() { }

    typedef PushSupplier_ptr _ptr_type;
    typedef PushSupplier_var _var_type;

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

    static inline PushSupplier_ptr
    _nil()
    {
        return 0;
    }

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

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

    static const char** _OB_staticIds();

    //
    // IDL:omg.org/CosEventComm/PushSupplier/disconnect_push_supplier:1.0
    //
    virtual void disconnect_push_supplier() = 0;
};

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

protected:

    static OB_EVENT_IMPORT const char* ids_[];

public:

    PullSupplier() { }
    virtual ~PullSupplier() { }

    typedef PullSupplier_ptr _ptr_type;
    typedef PullSupplier_var _var_type;

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

    static inline PullSupplier_ptr
    _nil()
    {
        return 0;
    }

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

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

    static const char** _OB_staticIds();

    //
    // IDL:omg.org/CosEventComm/PullSupplier/pull:1.0
    //
    virtual ::CORBA::Any* pull() = 0;

    //
    // IDL:omg.org/CosEventComm/PullSupplier/try_pull:1.0
    //
    virtual ::CORBA::Any* try_pull(::CORBA::Boolean_out has_event) = 0;

    //
    // IDL:omg.org/CosEventComm/PullSupplier/disconnect_pull_supplier:1.0
    //
    virtual void disconnect_pull_supplier() = 0;
};

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

protected:

    static OB_EVENT_IMPORT const char* ids_[];

public:

    PullConsumer() { }
    virtual ~PullConsumer() { }

    typedef PullConsumer_ptr _ptr_type;
    typedef PullConsumer_var _var_type;

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

    static inline PullConsumer_ptr
    _nil()
    {
        return 0;
    }

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

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

    static const char** _OB_staticIds();

    //
    // IDL:omg.org/CosEventComm/PullConsumer/disconnect_pull_consumer:1.0
    //
    virtual void disconnect_pull_consumer() = 0;
};

} // End of namespace CosEventComm

//
// IDL:omg.org/CosEventComm:1.0
//
namespace OBProxy_CosEventComm
{

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

protected:

    virtual OB::MarshalStubImpl_ptr _OB_createMarshalStubImpl();

public:

    PushConsumer() { }
    virtual ~PushConsumer() { }

    virtual const char** _OB_ids() const;

    //
    // IDL:omg.org/CosEventComm/PushConsumer/push:1.0
    //
    void push(const ::CORBA::Any& data);

    //
    // IDL:omg.org/CosEventComm/PushConsumer/disconnect_push_consumer:1.0
    //
    void disconnect_push_consumer();
};

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

protected:

    virtual OB::MarshalStubImpl_ptr _OB_createMarshalStubImpl();

public:

    PushSupplier() { }
    virtual ~PushSupplier() { }

    virtual const char** _OB_ids() const;

    //
    // IDL:omg.org/CosEventComm/PushSupplier/disconnect_push_supplier:1.0
    //
    void disconnect_push_supplier();
};

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

protected:

    virtual OB::MarshalStubImpl_ptr _OB_createMarshalStubImpl();

public:

    PullSupplier() { }
    virtual ~PullSupplier() { }

    virtual const char** _OB_ids() const;

    //
    // IDL:omg.org/CosEventComm/PullSupplier/pull:1.0
    //
    ::CORBA::Any* pull();

    //
    // IDL:omg.org/CosEventComm/PullSupplier/try_pull:1.0
    //
    ::CORBA::Any* try_pull(::CORBA::Boolean_out has_event);

    //
    // IDL:omg.org/CosEventComm/PullSupplier/disconnect_pull_supplier:1.0
    //
    void disconnect_pull_supplier();
};

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

protected:

    virtual OB::MarshalStubImpl_ptr _OB_createMarshalStubImpl();

public:

    PullConsumer() { }
    virtual ~PullConsumer() { }

    virtual const char** _OB_ids() const;

    //
    // IDL:omg.org/CosEventComm/PullConsumer/disconnect_pull_consumer:1.0
    //
    void disconnect_pull_consumer();
};

} // End of namespace OBProxy_CosEventComm

//
// IDL:omg.org/CosEventComm:1.0
//
namespace OBStubImpl_CosEventComm
{

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

protected:

    PushConsumer() { }

public:

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

    static inline PushConsumer_ptr
    _nil()
    {
        return 0;
    }

    //
    // IDL:omg.org/CosEventComm/PushConsumer/push:1.0
    //
    virtual void push(const ::CORBA::Any& data) = 0;

    //
    // IDL:omg.org/CosEventComm/PushConsumer/disconnect_push_consumer:1.0
    //
    virtual void disconnect_push_consumer() = 0;
};

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

protected:

    PushSupplier() { }

public:

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

    static inline PushSupplier_ptr
    _nil()
    {
        return 0;
    }

    //
    // IDL:omg.org/CosEventComm/PushSupplier/disconnect_push_supplier:1.0
    //
    virtual void disconnect_push_supplier() = 0;
};

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

protected:

    PullSupplier() { }

public:

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

    static inline PullSupplier_ptr
    _nil()
    {
        return 0;
    }

    //
    // IDL:omg.org/CosEventComm/PullSupplier/pull:1.0
    //
    virtual ::CORBA::Any* pull() = 0;

    //
    // IDL:omg.org/CosEventComm/PullSupplier/try_pull:1.0
    //
    virtual ::CORBA::Any* try_pull(::CORBA::Boolean_out has_event) = 0;

    //
    // IDL:omg.org/CosEventComm/PullSupplier/disconnect_pull_supplier:1.0
    //
    virtual void disconnect_pull_supplier() = 0;
};

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

protected:

    PullConsumer() { }

public:

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

    static inline PullConsumer_ptr
    _nil()
    {
        return 0;
    }

    //
    // IDL:omg.org/CosEventComm/PullConsumer/disconnect_pull_consumer:1.0
    //
    virtual void disconnect_pull_consumer() = 0;
};

} // End of namespace OBStubImpl_CosEventComm

//
// IDL:omg.org/CosEventComm:1.0
//
namespace OBMarshalStubImpl_CosEventComm
{

//
// IDL:omg.org/CosEventComm/PushConsumer:1.0
//
class PushConsumer : virtual public OBStubImpl_CosEventComm::PushConsumer,
                     virtual public OB::MarshalStubImpl
{
    PushConsumer(const PushConsumer&);
    void operator=(const PushConsumer&);

protected:

    PushConsumer() { }
    friend class OBProxy_CosEventComm::PushConsumer;

public:

    //
    // IDL:omg.org/CosEventComm/PushConsumer/push:1.0
    //
    virtual void push(const ::CORBA::Any& data);

    //
    // IDL:omg.org/CosEventComm/PushConsumer/disconnect_push_consumer:1.0
    //
    virtual void disconnect_push_consumer();
};

//
// IDL:omg.org/CosEventComm/PushSupplier:1.0
//
class PushSupplier : virtual public OBStubImpl_CosEventComm::PushSupplier,
                     virtual public OB::MarshalStubImpl
{
    PushSupplier(const PushSupplier&);
    void operator=(const PushSupplier&);

protected:

    PushSupplier() { }
    friend class OBProxy_CosEventComm::PushSupplier;

public:

    //
    // IDL:omg.org/CosEventComm/PushSupplier/disconnect_push_supplier:1.0
    //
    virtual void disconnect_push_supplier();
};

//
// IDL:omg.org/CosEventComm/PullSupplier:1.0
//
class PullSupplier : virtual public OBStubImpl_CosEventComm::PullSupplier,
                     virtual public OB::MarshalStubImpl
{
    PullSupplier(const PullSupplier&);
    void operator=(const PullSupplier&);

protected:

    PullSupplier() { }
    friend class OBProxy_CosEventComm::PullSupplier;

public:

    //
    // IDL:omg.org/CosEventComm/PullSupplier/pull:1.0
    //
    virtual ::CORBA::Any* pull();

    //
    // IDL:omg.org/CosEventComm/PullSupplier/try_pull:1.0
    //
    virtual ::CORBA::Any* try_pull(::CORBA::Boolean_out has_event);

    //
    // IDL:omg.org/CosEventComm/PullSupplier/disconnect_pull_supplier:1.0
    //
    virtual void disconnect_pull_supplier();
};

//
// IDL:omg.org/CosEventComm/PullConsumer:1.0
//
class PullConsumer : virtual public OBStubImpl_CosEventComm::PullConsumer,
                     virtual public OB::MarshalStubImpl
{
    PullConsumer(const PullConsumer&);
    void operator=(const PullConsumer&);

protected:

    PullConsumer() { }
    friend class OBProxy_CosEventComm::PullConsumer;

public:

    //
    // IDL:omg.org/CosEventComm/PullConsumer/disconnect_pull_consumer:1.0
    //
    virtual void disconnect_pull_consumer();
};

} // End of namespace OBMarshalStubImpl_CosEventComm

//
// IDL:omg.org/CosEventComm:1.0
//
namespace OBV_CosEventComm
{

} // End of namespace OBV_CosEventComm

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

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

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

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

//
// IDL:omg.org/CosEventComm/PushConsumer:1.0
//
namespace CORBA
{

inline void
release(::CosEventComm::PushConsumer_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::CosEventComm::PushConsumer_ptr p)
{
    return p == 0;
}

inline void
release(OBStubImpl_CosEventComm::PushConsumer_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline Boolean
is_nil(OBStubImpl_CosEventComm::PushConsumer_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

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

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

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

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

//
// IDL:omg.org/CosEventComm/PushSupplier:1.0
//
namespace CORBA
{

inline void
release(::CosEventComm::PushSupplier_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::CosEventComm::PushSupplier_ptr p)
{
    return p == 0;
}

inline void
release(OBStubImpl_CosEventComm::PushSupplier_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline Boolean
is_nil(OBStubImpl_CosEventComm::PushSupplier_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

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

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

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

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

//
// IDL:omg.org/CosEventComm/PullSupplier:1.0
//
namespace CORBA
{

inline void
release(::CosEventComm::PullSupplier_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::CosEventComm::PullSupplier_ptr p)
{
    return p == 0;
}

inline void
release(OBStubImpl_CosEventComm::PullSupplier_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline Boolean
is_nil(OBStubImpl_CosEventComm::PullSupplier_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

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

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

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

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

//
// IDL:omg.org/CosEventComm/PullConsumer:1.0
//
namespace CORBA
{

inline void
release(::CosEventComm::PullConsumer_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::CosEventComm::PullConsumer_ptr p)
{
    return p == 0;
}

inline void
release(OBStubImpl_CosEventComm::PullConsumer_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline Boolean
is_nil(OBStubImpl_CosEventComm::PullConsumer_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

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

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

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

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

#endif
