// **********************************************************************
//
// 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_CosEventChannelAdmin_skel_h__
#define __OB_CosEventChannelAdmin_skel_h__

#include <OB/CosEventChannelAdmin.h>

#include <OB/CosEventComm_skel.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/CosEventChannelAdmin:1.0
//
namespace POA_CosEventChannelAdmin
{

//
// IDL:omg.org/CosEventChannelAdmin/ProxyPushConsumer:1.0
//
class ProxyPushConsumer : virtual public POA_CosEventComm::PushConsumer
{
    ProxyPushConsumer(const ProxyPushConsumer&);
    void operator=(const ProxyPushConsumer&);

protected:

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPushConsumer/connect_push_supplier:1.0
    //
    void _OB_op_connect_push_supplier(OB::Upcall_ptr);

public:

    ProxyPushConsumer() { }

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

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

    CosEventChannelAdmin::ProxyPushConsumer_ptr _this();

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

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPushConsumer/connect_push_supplier:1.0
    //
    virtual void connect_push_supplier(::CosEventComm::PushSupplier_ptr push_supplier)
        throw(CosEventChannelAdmin::AlreadyConnected,
              ::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosEventChannelAdmin/ProxyPullSupplier:1.0
//
class ProxyPullSupplier : virtual public POA_CosEventComm::PullSupplier
{
    ProxyPullSupplier(const ProxyPullSupplier&);
    void operator=(const ProxyPullSupplier&);

protected:

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPullSupplier/connect_pull_consumer:1.0
    //
    void _OB_op_connect_pull_consumer(OB::Upcall_ptr);

public:

    ProxyPullSupplier() { }

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

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

    CosEventChannelAdmin::ProxyPullSupplier_ptr _this();

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

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPullSupplier/connect_pull_consumer:1.0
    //
    virtual void connect_pull_consumer(::CosEventComm::PullConsumer_ptr pull_consumer)
        throw(CosEventChannelAdmin::AlreadyConnected,
              ::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosEventChannelAdmin/ProxyPullConsumer:1.0
//
class ProxyPullConsumer : virtual public POA_CosEventComm::PullConsumer
{
    ProxyPullConsumer(const ProxyPullConsumer&);
    void operator=(const ProxyPullConsumer&);

protected:

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPullConsumer/connect_pull_supplier:1.0
    //
    void _OB_op_connect_pull_supplier(OB::Upcall_ptr);

public:

    ProxyPullConsumer() { }

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

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

    CosEventChannelAdmin::ProxyPullConsumer_ptr _this();

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

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPullConsumer/connect_pull_supplier:1.0
    //
    virtual void connect_pull_supplier(::CosEventComm::PullSupplier_ptr pull_supplier)
        throw(CosEventChannelAdmin::AlreadyConnected,
              CosEventChannelAdmin::TypeError,
              ::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosEventChannelAdmin/ProxyPushSupplier:1.0
//
class ProxyPushSupplier : virtual public POA_CosEventComm::PushSupplier
{
    ProxyPushSupplier(const ProxyPushSupplier&);
    void operator=(const ProxyPushSupplier&);

protected:

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPushSupplier/connect_push_consumer:1.0
    //
    void _OB_op_connect_push_consumer(OB::Upcall_ptr);

public:

    ProxyPushSupplier() { }

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

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

    CosEventChannelAdmin::ProxyPushSupplier_ptr _this();

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

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPushSupplier/connect_push_consumer:1.0
    //
    virtual void connect_push_consumer(::CosEventComm::PushConsumer_ptr push_consumer)
        throw(CosEventChannelAdmin::AlreadyConnected,
              CosEventChannelAdmin::TypeError,
              ::CORBA::SystemException) = 0;
};

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

protected:

    //
    // IDL:omg.org/CosEventChannelAdmin/ConsumerAdmin/obtain_push_supplier:1.0
    //
    void _OB_op_obtain_push_supplier(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosEventChannelAdmin/ConsumerAdmin/obtain_pull_supplier:1.0
    //
    void _OB_op_obtain_pull_supplier(OB::Upcall_ptr);

public:

    ConsumerAdmin() { }

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

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

    CosEventChannelAdmin::ConsumerAdmin_ptr _this();

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

    //
    // IDL:omg.org/CosEventChannelAdmin/ConsumerAdmin/obtain_push_supplier:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPushSupplier_ptr obtain_push_supplier()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosEventChannelAdmin/ConsumerAdmin/obtain_pull_supplier:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPullSupplier_ptr obtain_pull_supplier()
        throw(::CORBA::SystemException) = 0;
};

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

protected:

    //
    // IDL:omg.org/CosEventChannelAdmin/SupplierAdmin/obtain_push_consumer:1.0
    //
    void _OB_op_obtain_push_consumer(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosEventChannelAdmin/SupplierAdmin/obtain_pull_consumer:1.0
    //
    void _OB_op_obtain_pull_consumer(OB::Upcall_ptr);

public:

    SupplierAdmin() { }

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

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

    CosEventChannelAdmin::SupplierAdmin_ptr _this();

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

    //
    // IDL:omg.org/CosEventChannelAdmin/SupplierAdmin/obtain_push_consumer:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPushConsumer_ptr obtain_push_consumer()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosEventChannelAdmin/SupplierAdmin/obtain_pull_consumer:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPullConsumer_ptr obtain_pull_consumer()
        throw(::CORBA::SystemException) = 0;
};

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

protected:

    //
    // IDL:omg.org/CosEventChannelAdmin/EventChannel/for_consumers:1.0
    //
    void _OB_op_for_consumers(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosEventChannelAdmin/EventChannel/for_suppliers:1.0
    //
    void _OB_op_for_suppliers(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosEventChannelAdmin/EventChannel/destroy:1.0
    //
    void _OB_op_destroy(OB::Upcall_ptr);

public:

    EventChannel() { }

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

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

    CosEventChannelAdmin::EventChannel_ptr _this();

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

    //
    // IDL:omg.org/CosEventChannelAdmin/EventChannel/for_consumers:1.0
    //
    virtual ::CosEventChannelAdmin::ConsumerAdmin_ptr for_consumers()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosEventChannelAdmin/EventChannel/for_suppliers:1.0
    //
    virtual ::CosEventChannelAdmin::SupplierAdmin_ptr for_suppliers()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosEventChannelAdmin/EventChannel/destroy:1.0
    //
    virtual void destroy()
        throw(::CORBA::SystemException) = 0;
};

} // End of namespace POA_CosEventChannelAdmin

//
// IDL:omg.org/CosEventChannelAdmin:1.0
//
namespace OBDirectStubImpl_CosEventChannelAdmin
{

//
// IDL:omg.org/CosEventChannelAdmin/ProxyPushConsumer:1.0
//
class ProxyPushConsumer : virtual public OBStubImpl_CosEventChannelAdmin::ProxyPushConsumer,
                          virtual public OBDirectStubImpl_CosEventComm::PushConsumer
{
    ProxyPushConsumer(const ProxyPushConsumer&);
    void operator=(const ProxyPushConsumer&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    ProxyPushConsumer() { }

#endif

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

    friend class POA_CosEventChannelAdmin::ProxyPushConsumer;

public:

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPushConsumer/connect_push_supplier:1.0
    //
    virtual void connect_push_supplier(::CosEventComm::PushSupplier_ptr push_supplier);
};

//
// IDL:omg.org/CosEventChannelAdmin/ProxyPullSupplier:1.0
//
class ProxyPullSupplier : virtual public OBStubImpl_CosEventChannelAdmin::ProxyPullSupplier,
                          virtual public OBDirectStubImpl_CosEventComm::PullSupplier
{
    ProxyPullSupplier(const ProxyPullSupplier&);
    void operator=(const ProxyPullSupplier&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    ProxyPullSupplier() { }

#endif

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

    friend class POA_CosEventChannelAdmin::ProxyPullSupplier;

public:

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPullSupplier/connect_pull_consumer:1.0
    //
    virtual void connect_pull_consumer(::CosEventComm::PullConsumer_ptr pull_consumer);
};

//
// IDL:omg.org/CosEventChannelAdmin/ProxyPullConsumer:1.0
//
class ProxyPullConsumer : virtual public OBStubImpl_CosEventChannelAdmin::ProxyPullConsumer,
                          virtual public OBDirectStubImpl_CosEventComm::PullConsumer
{
    ProxyPullConsumer(const ProxyPullConsumer&);
    void operator=(const ProxyPullConsumer&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    ProxyPullConsumer() { }

#endif

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

    friend class POA_CosEventChannelAdmin::ProxyPullConsumer;

public:

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPullConsumer/connect_pull_supplier:1.0
    //
    virtual void connect_pull_supplier(::CosEventComm::PullSupplier_ptr pull_supplier);
};

//
// IDL:omg.org/CosEventChannelAdmin/ProxyPushSupplier:1.0
//
class ProxyPushSupplier : virtual public OBStubImpl_CosEventChannelAdmin::ProxyPushSupplier,
                          virtual public OBDirectStubImpl_CosEventComm::PushSupplier
{
    ProxyPushSupplier(const ProxyPushSupplier&);
    void operator=(const ProxyPushSupplier&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    ProxyPushSupplier() { }

#endif

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

    friend class POA_CosEventChannelAdmin::ProxyPushSupplier;

public:

    //
    // IDL:omg.org/CosEventChannelAdmin/ProxyPushSupplier/connect_push_consumer:1.0
    //
    virtual void connect_push_consumer(::CosEventComm::PushConsumer_ptr push_consumer);
};

//
// IDL:omg.org/CosEventChannelAdmin/ConsumerAdmin:1.0
//
class ConsumerAdmin : virtual public OBStubImpl_CosEventChannelAdmin::ConsumerAdmin,
                      virtual public OB::DirectStubImpl
{
    ConsumerAdmin(const ConsumerAdmin&);
    void operator=(const ConsumerAdmin&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    ConsumerAdmin() { }

#endif

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

    friend class POA_CosEventChannelAdmin::ConsumerAdmin;

public:

    //
    // IDL:omg.org/CosEventChannelAdmin/ConsumerAdmin/obtain_push_supplier:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPushSupplier_ptr obtain_push_supplier();

    //
    // IDL:omg.org/CosEventChannelAdmin/ConsumerAdmin/obtain_pull_supplier:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPullSupplier_ptr obtain_pull_supplier();
};

//
// IDL:omg.org/CosEventChannelAdmin/SupplierAdmin:1.0
//
class SupplierAdmin : virtual public OBStubImpl_CosEventChannelAdmin::SupplierAdmin,
                      virtual public OB::DirectStubImpl
{
    SupplierAdmin(const SupplierAdmin&);
    void operator=(const SupplierAdmin&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    SupplierAdmin() { }

#endif

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

    friend class POA_CosEventChannelAdmin::SupplierAdmin;

public:

    //
    // IDL:omg.org/CosEventChannelAdmin/SupplierAdmin/obtain_push_consumer:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPushConsumer_ptr obtain_push_consumer();

    //
    // IDL:omg.org/CosEventChannelAdmin/SupplierAdmin/obtain_pull_consumer:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPullConsumer_ptr obtain_pull_consumer();
};

//
// IDL:omg.org/CosEventChannelAdmin/EventChannel:1.0
//
class EventChannel : virtual public OBStubImpl_CosEventChannelAdmin::EventChannel,
                     virtual public OB::DirectStubImpl
{
    EventChannel(const EventChannel&);
    void operator=(const EventChannel&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    EventChannel() { }

#endif

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

    friend class POA_CosEventChannelAdmin::EventChannel;

public:

    //
    // IDL:omg.org/CosEventChannelAdmin/EventChannel/for_consumers:1.0
    //
    virtual ::CosEventChannelAdmin::ConsumerAdmin_ptr for_consumers();

    //
    // IDL:omg.org/CosEventChannelAdmin/EventChannel/for_suppliers:1.0
    //
    virtual ::CosEventChannelAdmin::SupplierAdmin_ptr for_suppliers();

    //
    // IDL:omg.org/CosEventChannelAdmin/EventChannel/destroy:1.0
    //
    virtual void destroy();
};

} // End of namespace OBDirectStubImpl_CosEventChannelAdmin

#endif
