// **********************************************************************
//
// 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_skel_h__
#define __OB_CosEventComm_skel_h__

#include <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

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

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

protected:

    //
    // IDL:omg.org/CosEventComm/PushConsumer/push:1.0
    //
    void _OB_op_push(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosEventComm/PushConsumer/disconnect_push_consumer:1.0
    //
    void _OB_op_disconnect_push_consumer(OB::Upcall_ptr);

public:

    PushConsumer() { }

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

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

    CosEventComm::PushConsumer_ptr _this();

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

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

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

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

protected:

    //
    // IDL:omg.org/CosEventComm/PushSupplier/disconnect_push_supplier:1.0
    //
    void _OB_op_disconnect_push_supplier(OB::Upcall_ptr);

public:

    PushSupplier() { }

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

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

    CosEventComm::PushSupplier_ptr _this();

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

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

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

protected:

    //
    // IDL:omg.org/CosEventComm/PullSupplier/pull:1.0
    //
    void _OB_op_pull(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosEventComm/PullSupplier/try_pull:1.0
    //
    void _OB_op_try_pull(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosEventComm/PullSupplier/disconnect_pull_supplier:1.0
    //
    void _OB_op_disconnect_pull_supplier(OB::Upcall_ptr);

public:

    PullSupplier() { }

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

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

    CosEventComm::PullSupplier_ptr _this();

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

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

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

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

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

protected:

    //
    // IDL:omg.org/CosEventComm/PullConsumer/disconnect_pull_consumer:1.0
    //
    void _OB_op_disconnect_pull_consumer(OB::Upcall_ptr);

public:

    PullConsumer() { }

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

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

    CosEventComm::PullConsumer_ptr _this();

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

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

} // End of namespace POA_CosEventComm

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

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

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PushConsumer() { }

#endif

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

    friend class POA_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::DirectStubImpl
{
    PushSupplier(const PushSupplier&);
    void operator=(const PushSupplier&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PushSupplier() { }

#endif

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

    friend class POA_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::DirectStubImpl
{
    PullSupplier(const PullSupplier&);
    void operator=(const PullSupplier&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PullSupplier() { }

#endif

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

    friend class POA_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::DirectStubImpl
{
    PullConsumer(const PullConsumer&);
    void operator=(const PullConsumer&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PullConsumer() { }

#endif

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

    friend class POA_CosEventComm::PullConsumer;

public:

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

} // End of namespace OBDirectStubImpl_CosEventComm

#endif
