// **********************************************************************
//
// 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_CosTypedEventChannelAdmin_skel_h__
#define __OB_CosTypedEventChannelAdmin_skel_h__

#include <OB/CosTypedEventChannelAdmin.h>

#include <OB/CosEventChannelAdmin_skel.h>
#include <OB/CosTypedEventComm_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/CosTypedEventChannelAdmin:1.0
//
namespace POA_CosTypedEventChannelAdmin
{

//
// IDL:omg.org/CosTypedEventChannelAdmin/TypedProxyPushConsumer:1.0
//
class TypedProxyPushConsumer : virtual public POA_CosEventChannelAdmin::ProxyPushConsumer,
                               virtual public POA_CosTypedEventComm::TypedPushConsumer
{
    TypedProxyPushConsumer(const TypedProxyPushConsumer&);
    void operator=(const TypedProxyPushConsumer&);

public:

    TypedProxyPushConsumer() { }

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

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

    CosTypedEventChannelAdmin::TypedProxyPushConsumer_ptr _this();

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

//
// IDL:omg.org/CosTypedEventChannelAdmin/TypedProxyPullSupplier:1.0
//
class TypedProxyPullSupplier : virtual public POA_CosEventChannelAdmin::ProxyPullSupplier,
                               virtual public POA_CosTypedEventComm::TypedPullSupplier
{
    TypedProxyPullSupplier(const TypedProxyPullSupplier&);
    void operator=(const TypedProxyPullSupplier&);

public:

    TypedProxyPullSupplier() { }

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

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

    CosTypedEventChannelAdmin::TypedProxyPullSupplier_ptr _this();

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

//
// IDL:omg.org/CosTypedEventChannelAdmin/TypedSupplierAdmin:1.0
//
class TypedSupplierAdmin : virtual public POA_CosEventChannelAdmin::SupplierAdmin
{
    TypedSupplierAdmin(const TypedSupplierAdmin&);
    void operator=(const TypedSupplierAdmin&);

protected:

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedSupplierAdmin/obtain_typed_push_consumer:1.0
    //
    void _OB_op_obtain_typed_push_consumer(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedSupplierAdmin/obtain_typed_pull_consumer:1.0
    //
    void _OB_op_obtain_typed_pull_consumer(OB::Upcall_ptr);

public:

    TypedSupplierAdmin() { }

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

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

    CosTypedEventChannelAdmin::TypedSupplierAdmin_ptr _this();

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

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedSupplierAdmin/obtain_typed_push_consumer:1.0
    //
    virtual ::CosTypedEventChannelAdmin::TypedProxyPushConsumer_ptr obtain_typed_push_consumer(const char* supported_interface)
        throw(CosTypedEventChannelAdmin::InterfaceNotSupported,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedSupplierAdmin/obtain_typed_pull_consumer:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPullConsumer_ptr obtain_typed_pull_consumer(const char* uses_interface)
        throw(CosTypedEventChannelAdmin::NoSuchImplementation,
              ::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosTypedEventChannelAdmin/TypedConsumerAdmin:1.0
//
class TypedConsumerAdmin : virtual public POA_CosEventChannelAdmin::ConsumerAdmin
{
    TypedConsumerAdmin(const TypedConsumerAdmin&);
    void operator=(const TypedConsumerAdmin&);

protected:

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedConsumerAdmin/obtain_typed_pull_supplier:1.0
    //
    void _OB_op_obtain_typed_pull_supplier(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedConsumerAdmin/obtain_typed_push_supplier:1.0
    //
    void _OB_op_obtain_typed_push_supplier(OB::Upcall_ptr);

public:

    TypedConsumerAdmin() { }

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

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

    CosTypedEventChannelAdmin::TypedConsumerAdmin_ptr _this();

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

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedConsumerAdmin/obtain_typed_pull_supplier:1.0
    //
    virtual ::CosTypedEventChannelAdmin::TypedProxyPullSupplier_ptr obtain_typed_pull_supplier(const char* supported_interface)
        throw(CosTypedEventChannelAdmin::InterfaceNotSupported,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedConsumerAdmin/obtain_typed_push_supplier:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPushSupplier_ptr obtain_typed_push_supplier(const char* uses_interface)
        throw(CosTypedEventChannelAdmin::NoSuchImplementation,
              ::CORBA::SystemException) = 0;
};

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

protected:

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedEventChannel/for_consumers:1.0
    //
    void _OB_op_for_consumers(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedEventChannel/for_suppliers:1.0
    //
    void _OB_op_for_suppliers(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedEventChannel/destroy:1.0
    //
    void _OB_op_destroy(OB::Upcall_ptr);

public:

    TypedEventChannel() { }

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

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

    CosTypedEventChannelAdmin::TypedEventChannel_ptr _this();

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

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedEventChannel/for_consumers:1.0
    //
    virtual ::CosTypedEventChannelAdmin::TypedConsumerAdmin_ptr for_consumers()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedEventChannel/for_suppliers:1.0
    //
    virtual ::CosTypedEventChannelAdmin::TypedSupplierAdmin_ptr for_suppliers()
        throw(::CORBA::SystemException) = 0;

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

} // End of namespace POA_CosTypedEventChannelAdmin

//
// IDL:omg.org/CosTypedEventChannelAdmin:1.0
//
namespace OBDirectStubImpl_CosTypedEventChannelAdmin
{

//
// IDL:omg.org/CosTypedEventChannelAdmin/TypedProxyPushConsumer:1.0
//
class TypedProxyPushConsumer : virtual public OBStubImpl_CosTypedEventChannelAdmin::TypedProxyPushConsumer,
                               virtual public OBDirectStubImpl_CosEventChannelAdmin::ProxyPushConsumer,
                               virtual public OBDirectStubImpl_CosTypedEventComm::TypedPushConsumer
{
    TypedProxyPushConsumer(const TypedProxyPushConsumer&);
    void operator=(const TypedProxyPushConsumer&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    TypedProxyPushConsumer() { }

#endif

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

    friend class POA_CosTypedEventChannelAdmin::TypedProxyPushConsumer;

public:
};

//
// IDL:omg.org/CosTypedEventChannelAdmin/TypedProxyPullSupplier:1.0
//
class TypedProxyPullSupplier : virtual public OBStubImpl_CosTypedEventChannelAdmin::TypedProxyPullSupplier,
                               virtual public OBDirectStubImpl_CosEventChannelAdmin::ProxyPullSupplier,
                               virtual public OBDirectStubImpl_CosTypedEventComm::TypedPullSupplier
{
    TypedProxyPullSupplier(const TypedProxyPullSupplier&);
    void operator=(const TypedProxyPullSupplier&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    TypedProxyPullSupplier() { }

#endif

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

    friend class POA_CosTypedEventChannelAdmin::TypedProxyPullSupplier;

public:
};

//
// IDL:omg.org/CosTypedEventChannelAdmin/TypedSupplierAdmin:1.0
//
class TypedSupplierAdmin : virtual public OBStubImpl_CosTypedEventChannelAdmin::TypedSupplierAdmin,
                           virtual public OBDirectStubImpl_CosEventChannelAdmin::SupplierAdmin
{
    TypedSupplierAdmin(const TypedSupplierAdmin&);
    void operator=(const TypedSupplierAdmin&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    TypedSupplierAdmin() { }

#endif

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

    friend class POA_CosTypedEventChannelAdmin::TypedSupplierAdmin;

public:

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedSupplierAdmin/obtain_typed_push_consumer:1.0
    //
    virtual ::CosTypedEventChannelAdmin::TypedProxyPushConsumer_ptr obtain_typed_push_consumer(const char* supported_interface);

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedSupplierAdmin/obtain_typed_pull_consumer:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPullConsumer_ptr obtain_typed_pull_consumer(const char* uses_interface);
};

//
// IDL:omg.org/CosTypedEventChannelAdmin/TypedConsumerAdmin:1.0
//
class TypedConsumerAdmin : virtual public OBStubImpl_CosTypedEventChannelAdmin::TypedConsumerAdmin,
                           virtual public OBDirectStubImpl_CosEventChannelAdmin::ConsumerAdmin
{
    TypedConsumerAdmin(const TypedConsumerAdmin&);
    void operator=(const TypedConsumerAdmin&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    TypedConsumerAdmin() { }

#endif

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

    friend class POA_CosTypedEventChannelAdmin::TypedConsumerAdmin;

public:

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedConsumerAdmin/obtain_typed_pull_supplier:1.0
    //
    virtual ::CosTypedEventChannelAdmin::TypedProxyPullSupplier_ptr obtain_typed_pull_supplier(const char* supported_interface);

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedConsumerAdmin/obtain_typed_push_supplier:1.0
    //
    virtual ::CosEventChannelAdmin::ProxyPushSupplier_ptr obtain_typed_push_supplier(const char* uses_interface);
};

//
// IDL:omg.org/CosTypedEventChannelAdmin/TypedEventChannel:1.0
//
class TypedEventChannel : virtual public OBStubImpl_CosTypedEventChannelAdmin::TypedEventChannel,
                          virtual public OB::DirectStubImpl
{
    TypedEventChannel(const TypedEventChannel&);
    void operator=(const TypedEventChannel&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    TypedEventChannel() { }

#endif

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

    friend class POA_CosTypedEventChannelAdmin::TypedEventChannel;

public:

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedEventChannel/for_consumers:1.0
    //
    virtual ::CosTypedEventChannelAdmin::TypedConsumerAdmin_ptr for_consumers();

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedEventChannel/for_suppliers:1.0
    //
    virtual ::CosTypedEventChannelAdmin::TypedSupplierAdmin_ptr for_suppliers();

    //
    // IDL:omg.org/CosTypedEventChannelAdmin/TypedEventChannel/destroy:1.0
    //
    virtual void destroy();
};

} // End of namespace OBDirectStubImpl_CosTypedEventChannelAdmin

#endif
