// **********************************************************************
//
// 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_CosTypedEventComm_skel_h__
#define __OB_CosTypedEventComm_skel_h__

#include <OB/CosTypedEventComm.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/CosTypedEventComm:1.0
//
namespace POA_CosTypedEventComm
{

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

protected:

    //
    // IDL:omg.org/CosTypedEventComm/TypedPushConsumer/get_typed_consumer:1.0
    //
    void _OB_op_get_typed_consumer(OB::Upcall_ptr);

public:

    TypedPushConsumer() { }

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

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

    CosTypedEventComm::TypedPushConsumer_ptr _this();

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

    //
    // IDL:omg.org/CosTypedEventComm/TypedPushConsumer/get_typed_consumer:1.0
    //
    virtual ::CORBA::Object_ptr get_typed_consumer()
        throw(::CORBA::SystemException) = 0;
};

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

protected:

    //
    // IDL:omg.org/CosTypedEventComm/TypedPullSupplier/get_typed_supplier:1.0
    //
    void _OB_op_get_typed_supplier(OB::Upcall_ptr);

public:

    TypedPullSupplier() { }

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

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

    CosTypedEventComm::TypedPullSupplier_ptr _this();

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

    //
    // IDL:omg.org/CosTypedEventComm/TypedPullSupplier/get_typed_supplier:1.0
    //
    virtual ::CORBA::Object_ptr get_typed_supplier()
        throw(::CORBA::SystemException) = 0;
};

} // End of namespace POA_CosTypedEventComm

//
// IDL:omg.org/CosTypedEventComm:1.0
//
namespace OBDirectStubImpl_CosTypedEventComm
{

//
// IDL:omg.org/CosTypedEventComm/TypedPushConsumer:1.0
//
class TypedPushConsumer : virtual public OBStubImpl_CosTypedEventComm::TypedPushConsumer,
                          virtual public OBDirectStubImpl_CosEventComm::PushConsumer
{
    TypedPushConsumer(const TypedPushConsumer&);
    void operator=(const TypedPushConsumer&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    TypedPushConsumer() { }

#endif

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

    friend class POA_CosTypedEventComm::TypedPushConsumer;

public:

    //
    // IDL:omg.org/CosTypedEventComm/TypedPushConsumer/get_typed_consumer:1.0
    //
    virtual ::CORBA::Object_ptr get_typed_consumer();
};

//
// IDL:omg.org/CosTypedEventComm/TypedPullSupplier:1.0
//
class TypedPullSupplier : virtual public OBStubImpl_CosTypedEventComm::TypedPullSupplier,
                          virtual public OBDirectStubImpl_CosEventComm::PullSupplier
{
    TypedPullSupplier(const TypedPullSupplier&);
    void operator=(const TypedPullSupplier&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    TypedPullSupplier() { }

#endif

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

    friend class POA_CosTypedEventComm::TypedPullSupplier;

public:

    //
    // IDL:omg.org/CosTypedEventComm/TypedPullSupplier/get_typed_supplier:1.0
    //
    virtual ::CORBA::Object_ptr get_typed_supplier();
};

} // End of namespace OBDirectStubImpl_CosTypedEventComm

#endif
