// This file is generated by omniidl (C++ backend)- omniORB_4_1. Do not edit.
#ifndef __CosNotifyComm_hh__
#define __CosNotifyComm_hh__

#ifndef __CORBA_H_EXTERNAL_GUARD__
#include <omniORB4/CORBA.h>
#endif

#ifndef  USE_stub_in_nt_dll
# define USE_stub_in_nt_dll_NOT_DEFINED_CosNotifyComm
#endif
#ifndef  USE_core_stub_in_nt_dll
# define USE_core_stub_in_nt_dll_NOT_DEFINED_CosNotifyComm
#endif
#ifndef  USE_dyn_stub_in_nt_dll
# define USE_dyn_stub_in_nt_dll_NOT_DEFINED_CosNotifyComm
#endif


#include "COS_sysdep.h"
#ifndef __CosNotification_hh_EXTERNAL_GUARD__
#define __CosNotification_hh_EXTERNAL_GUARD__
#include "CosNotification.hh"
#endif
#ifndef __CosEventComm_hh_EXTERNAL_GUARD__
#define __CosEventComm_hh_EXTERNAL_GUARD__
#include "CosEventComm.hh"
#endif



#ifdef USE_stub_in_nt_dll
# ifndef USE_core_stub_in_nt_dll
#  define USE_core_stub_in_nt_dll
# endif
# ifndef USE_dyn_stub_in_nt_dll
#  define USE_dyn_stub_in_nt_dll
# endif
#endif

#ifdef _core_attr
# error "A local CPP macro _core_attr has already been defined."
#else
# ifdef  USE_core_stub_in_nt_dll
#  define _core_attr _OMNIORB_NTDLL_IMPORT
# else
#  define _core_attr
# endif
#endif

#ifdef _dyn_attr
# error "A local CPP macro _dyn_attr has already been defined."
#else
# ifdef  USE_dyn_stub_in_nt_dll
#  define _dyn_attr _OMNIORB_NTDLL_IMPORT
# else
#  define _dyn_attr
# endif
#endif





_CORBA_MODULE CosNotifyComm

_CORBA_MODULE_BEG

  class InvalidEventType : public ::CORBA::UserException {
  public:
    
    CosNotification::EventType type;

  

    inline InvalidEventType() {
      pd_insertToAnyFn    = insertToAnyFn;
      pd_insertToAnyFnNCP = insertToAnyFnNCP;
    }
    InvalidEventType(const InvalidEventType&);
    InvalidEventType(const CosNotification::EventType& i_type);
    InvalidEventType& operator=(const InvalidEventType&);
    virtual ~InvalidEventType();
    virtual void _raise() const;
    static InvalidEventType* _downcast(::CORBA::Exception*);
    static const InvalidEventType* _downcast(const ::CORBA::Exception*);
    static inline InvalidEventType* _narrow(::CORBA::Exception* _e) {
      return _downcast(_e);
    }
    
    void operator>>=(cdrStream&) const ;
    void operator<<=(cdrStream&) ;

    static _core_attr insertExceptionToAny    insertToAnyFn;
    static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

    virtual ::CORBA::Exception* _NP_duplicate() const;

    static _core_attr const char* _PD_repoId;
    static _core_attr const char* _PD_typeId;

  private:
    virtual const char* _NP_typeId() const;
    virtual const char* _NP_repoId(int*) const;
    virtual void _NP_marshal(cdrStream&) const;
  };

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_InvalidEventType;

#ifndef __CosNotifyComm_mNotifyPublish__
#define __CosNotifyComm_mNotifyPublish__

  class NotifyPublish;
  class _objref_NotifyPublish;
  class _impl_NotifyPublish;
  
  typedef _objref_NotifyPublish* NotifyPublish_ptr;
  typedef NotifyPublish_ptr NotifyPublishRef;

  class NotifyPublish_Helper {
  public:
    typedef NotifyPublish_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_NotifyPublish, NotifyPublish_Helper> NotifyPublish_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_NotifyPublish,NotifyPublish_Helper > NotifyPublish_out;

#endif

  // interface NotifyPublish
  class NotifyPublish {
  public:
    // Declarations for this interface type.
    typedef NotifyPublish_ptr _ptr_type;
    typedef NotifyPublish_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_NotifyPublish :
    public virtual ::CORBA::Object,
    public virtual omniObjRef
  {
  public:
    void offer_change(const ::CosNotification::EventTypeSeq& added, const ::CosNotification::EventTypeSeq& removed);

    inline _objref_NotifyPublish()  { _PR_setobj(0); }  // nil
    _objref_NotifyPublish(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_NotifyPublish();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_NotifyPublish(const _objref_NotifyPublish&);
    _objref_NotifyPublish& operator = (const _objref_NotifyPublish&);
    // not implemented

    friend class NotifyPublish;
  };

  class _pof_NotifyPublish : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_NotifyPublish() : _OMNI_NS(proxyObjectFactory)(NotifyPublish::_PD_repoId) {}
    virtual ~_pof_NotifyPublish();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_NotifyPublish :
    public virtual omniServant
  {
  public:
    virtual ~_impl_NotifyPublish();

    virtual void offer_change(const ::CosNotification::EventTypeSeq& added, const ::CosNotification::EventTypeSeq& removed) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_NotifyPublish;

#ifndef __CosNotifyComm_mNotifySubscribe__
#define __CosNotifyComm_mNotifySubscribe__

  class NotifySubscribe;
  class _objref_NotifySubscribe;
  class _impl_NotifySubscribe;
  
  typedef _objref_NotifySubscribe* NotifySubscribe_ptr;
  typedef NotifySubscribe_ptr NotifySubscribeRef;

  class NotifySubscribe_Helper {
  public:
    typedef NotifySubscribe_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_NotifySubscribe, NotifySubscribe_Helper> NotifySubscribe_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_NotifySubscribe,NotifySubscribe_Helper > NotifySubscribe_out;

#endif

  // interface NotifySubscribe
  class NotifySubscribe {
  public:
    // Declarations for this interface type.
    typedef NotifySubscribe_ptr _ptr_type;
    typedef NotifySubscribe_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_NotifySubscribe :
    public virtual ::CORBA::Object,
    public virtual omniObjRef
  {
  public:
    void subscription_change(const ::CosNotification::EventTypeSeq& added, const ::CosNotification::EventTypeSeq& removed);

    inline _objref_NotifySubscribe()  { _PR_setobj(0); }  // nil
    _objref_NotifySubscribe(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_NotifySubscribe();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_NotifySubscribe(const _objref_NotifySubscribe&);
    _objref_NotifySubscribe& operator = (const _objref_NotifySubscribe&);
    // not implemented

    friend class NotifySubscribe;
  };

  class _pof_NotifySubscribe : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_NotifySubscribe() : _OMNI_NS(proxyObjectFactory)(NotifySubscribe::_PD_repoId) {}
    virtual ~_pof_NotifySubscribe();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_NotifySubscribe :
    public virtual omniServant
  {
  public:
    virtual ~_impl_NotifySubscribe();

    virtual void subscription_change(const ::CosNotification::EventTypeSeq& added, const ::CosNotification::EventTypeSeq& removed) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_NotifySubscribe;

#ifndef __CosNotifyComm_mPushConsumer__
#define __CosNotifyComm_mPushConsumer__

  class PushConsumer;
  class _objref_PushConsumer;
  class _impl_PushConsumer;
  
  typedef _objref_PushConsumer* PushConsumer_ptr;
  typedef PushConsumer_ptr PushConsumerRef;

  class PushConsumer_Helper {
  public:
    typedef PushConsumer_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_PushConsumer, PushConsumer_Helper> PushConsumer_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_PushConsumer,PushConsumer_Helper > PushConsumer_out;

#endif

  // interface PushConsumer
  class PushConsumer {
  public:
    // Declarations for this interface type.
    typedef PushConsumer_ptr _ptr_type;
    typedef PushConsumer_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_PushConsumer :
    public virtual _objref_NotifyPublish,
    public virtual CosEventComm::_objref_PushConsumer
  {
  public:
    

    inline _objref_PushConsumer()  { _PR_setobj(0); }  // nil
    _objref_PushConsumer(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_PushConsumer();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_PushConsumer(const _objref_PushConsumer&);
    _objref_PushConsumer& operator = (const _objref_PushConsumer&);
    // not implemented

    friend class PushConsumer;
  };

  class _pof_PushConsumer : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_PushConsumer() : _OMNI_NS(proxyObjectFactory)(PushConsumer::_PD_repoId) {}
    virtual ~_pof_PushConsumer();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_PushConsumer :
    public virtual _impl_NotifyPublish,
    public virtual CosEventComm::_impl_PushConsumer
  {
  public:
    virtual ~_impl_PushConsumer();

    
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_PushConsumer;

#ifndef __CosNotifyComm_mPullConsumer__
#define __CosNotifyComm_mPullConsumer__

  class PullConsumer;
  class _objref_PullConsumer;
  class _impl_PullConsumer;
  
  typedef _objref_PullConsumer* PullConsumer_ptr;
  typedef PullConsumer_ptr PullConsumerRef;

  class PullConsumer_Helper {
  public:
    typedef PullConsumer_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_PullConsumer, PullConsumer_Helper> PullConsumer_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_PullConsumer,PullConsumer_Helper > PullConsumer_out;

#endif

  // interface PullConsumer
  class PullConsumer {
  public:
    // Declarations for this interface type.
    typedef PullConsumer_ptr _ptr_type;
    typedef PullConsumer_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_PullConsumer :
    public virtual _objref_NotifyPublish,
    public virtual CosEventComm::_objref_PullConsumer
  {
  public:
    

    inline _objref_PullConsumer()  { _PR_setobj(0); }  // nil
    _objref_PullConsumer(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_PullConsumer();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_PullConsumer(const _objref_PullConsumer&);
    _objref_PullConsumer& operator = (const _objref_PullConsumer&);
    // not implemented

    friend class PullConsumer;
  };

  class _pof_PullConsumer : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_PullConsumer() : _OMNI_NS(proxyObjectFactory)(PullConsumer::_PD_repoId) {}
    virtual ~_pof_PullConsumer();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_PullConsumer :
    public virtual _impl_NotifyPublish,
    public virtual CosEventComm::_impl_PullConsumer
  {
  public:
    virtual ~_impl_PullConsumer();

    
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_PullConsumer;

#ifndef __CosNotifyComm_mPullSupplier__
#define __CosNotifyComm_mPullSupplier__

  class PullSupplier;
  class _objref_PullSupplier;
  class _impl_PullSupplier;
  
  typedef _objref_PullSupplier* PullSupplier_ptr;
  typedef PullSupplier_ptr PullSupplierRef;

  class PullSupplier_Helper {
  public:
    typedef PullSupplier_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_PullSupplier, PullSupplier_Helper> PullSupplier_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_PullSupplier,PullSupplier_Helper > PullSupplier_out;

#endif

  // interface PullSupplier
  class PullSupplier {
  public:
    // Declarations for this interface type.
    typedef PullSupplier_ptr _ptr_type;
    typedef PullSupplier_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_PullSupplier :
    public virtual _objref_NotifySubscribe,
    public virtual CosEventComm::_objref_PullSupplier
  {
  public:
    

    inline _objref_PullSupplier()  { _PR_setobj(0); }  // nil
    _objref_PullSupplier(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_PullSupplier();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_PullSupplier(const _objref_PullSupplier&);
    _objref_PullSupplier& operator = (const _objref_PullSupplier&);
    // not implemented

    friend class PullSupplier;
  };

  class _pof_PullSupplier : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_PullSupplier() : _OMNI_NS(proxyObjectFactory)(PullSupplier::_PD_repoId) {}
    virtual ~_pof_PullSupplier();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_PullSupplier :
    public virtual _impl_NotifySubscribe,
    public virtual CosEventComm::_impl_PullSupplier
  {
  public:
    virtual ~_impl_PullSupplier();

    
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_PullSupplier;

#ifndef __CosNotifyComm_mPushSupplier__
#define __CosNotifyComm_mPushSupplier__

  class PushSupplier;
  class _objref_PushSupplier;
  class _impl_PushSupplier;
  
  typedef _objref_PushSupplier* PushSupplier_ptr;
  typedef PushSupplier_ptr PushSupplierRef;

  class PushSupplier_Helper {
  public:
    typedef PushSupplier_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_PushSupplier, PushSupplier_Helper> PushSupplier_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_PushSupplier,PushSupplier_Helper > PushSupplier_out;

#endif

  // interface PushSupplier
  class PushSupplier {
  public:
    // Declarations for this interface type.
    typedef PushSupplier_ptr _ptr_type;
    typedef PushSupplier_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_PushSupplier :
    public virtual _objref_NotifySubscribe,
    public virtual CosEventComm::_objref_PushSupplier
  {
  public:
    

    inline _objref_PushSupplier()  { _PR_setobj(0); }  // nil
    _objref_PushSupplier(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_PushSupplier();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_PushSupplier(const _objref_PushSupplier&);
    _objref_PushSupplier& operator = (const _objref_PushSupplier&);
    // not implemented

    friend class PushSupplier;
  };

  class _pof_PushSupplier : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_PushSupplier() : _OMNI_NS(proxyObjectFactory)(PushSupplier::_PD_repoId) {}
    virtual ~_pof_PushSupplier();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_PushSupplier :
    public virtual _impl_NotifySubscribe,
    public virtual CosEventComm::_impl_PushSupplier
  {
  public:
    virtual ~_impl_PushSupplier();

    
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_PushSupplier;

#ifndef __CosNotifyComm_mStructuredPushConsumer__
#define __CosNotifyComm_mStructuredPushConsumer__

  class StructuredPushConsumer;
  class _objref_StructuredPushConsumer;
  class _impl_StructuredPushConsumer;
  
  typedef _objref_StructuredPushConsumer* StructuredPushConsumer_ptr;
  typedef StructuredPushConsumer_ptr StructuredPushConsumerRef;

  class StructuredPushConsumer_Helper {
  public:
    typedef StructuredPushConsumer_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_StructuredPushConsumer, StructuredPushConsumer_Helper> StructuredPushConsumer_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_StructuredPushConsumer,StructuredPushConsumer_Helper > StructuredPushConsumer_out;

#endif

  // interface StructuredPushConsumer
  class StructuredPushConsumer {
  public:
    // Declarations for this interface type.
    typedef StructuredPushConsumer_ptr _ptr_type;
    typedef StructuredPushConsumer_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_StructuredPushConsumer :
    public virtual _objref_NotifyPublish
  {
  public:
    void push_structured_event(const ::CosNotification::StructuredEvent& notification);
    void disconnect_structured_push_consumer();

    inline _objref_StructuredPushConsumer()  { _PR_setobj(0); }  // nil
    _objref_StructuredPushConsumer(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_StructuredPushConsumer();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_StructuredPushConsumer(const _objref_StructuredPushConsumer&);
    _objref_StructuredPushConsumer& operator = (const _objref_StructuredPushConsumer&);
    // not implemented

    friend class StructuredPushConsumer;
  };

  class _pof_StructuredPushConsumer : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_StructuredPushConsumer() : _OMNI_NS(proxyObjectFactory)(StructuredPushConsumer::_PD_repoId) {}
    virtual ~_pof_StructuredPushConsumer();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_StructuredPushConsumer :
    public virtual _impl_NotifyPublish
  {
  public:
    virtual ~_impl_StructuredPushConsumer();

    virtual void push_structured_event(const ::CosNotification::StructuredEvent& notification) = 0;
    virtual void disconnect_structured_push_consumer() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_StructuredPushConsumer;

#ifndef __CosNotifyComm_mStructuredPullConsumer__
#define __CosNotifyComm_mStructuredPullConsumer__

  class StructuredPullConsumer;
  class _objref_StructuredPullConsumer;
  class _impl_StructuredPullConsumer;
  
  typedef _objref_StructuredPullConsumer* StructuredPullConsumer_ptr;
  typedef StructuredPullConsumer_ptr StructuredPullConsumerRef;

  class StructuredPullConsumer_Helper {
  public:
    typedef StructuredPullConsumer_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_StructuredPullConsumer, StructuredPullConsumer_Helper> StructuredPullConsumer_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_StructuredPullConsumer,StructuredPullConsumer_Helper > StructuredPullConsumer_out;

#endif

  // interface StructuredPullConsumer
  class StructuredPullConsumer {
  public:
    // Declarations for this interface type.
    typedef StructuredPullConsumer_ptr _ptr_type;
    typedef StructuredPullConsumer_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_StructuredPullConsumer :
    public virtual _objref_NotifyPublish
  {
  public:
    void disconnect_structured_pull_consumer();

    inline _objref_StructuredPullConsumer()  { _PR_setobj(0); }  // nil
    _objref_StructuredPullConsumer(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_StructuredPullConsumer();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_StructuredPullConsumer(const _objref_StructuredPullConsumer&);
    _objref_StructuredPullConsumer& operator = (const _objref_StructuredPullConsumer&);
    // not implemented

    friend class StructuredPullConsumer;
  };

  class _pof_StructuredPullConsumer : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_StructuredPullConsumer() : _OMNI_NS(proxyObjectFactory)(StructuredPullConsumer::_PD_repoId) {}
    virtual ~_pof_StructuredPullConsumer();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_StructuredPullConsumer :
    public virtual _impl_NotifyPublish
  {
  public:
    virtual ~_impl_StructuredPullConsumer();

    virtual void disconnect_structured_pull_consumer() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_StructuredPullConsumer;

#ifndef __CosNotifyComm_mStructuredPullSupplier__
#define __CosNotifyComm_mStructuredPullSupplier__

  class StructuredPullSupplier;
  class _objref_StructuredPullSupplier;
  class _impl_StructuredPullSupplier;
  
  typedef _objref_StructuredPullSupplier* StructuredPullSupplier_ptr;
  typedef StructuredPullSupplier_ptr StructuredPullSupplierRef;

  class StructuredPullSupplier_Helper {
  public:
    typedef StructuredPullSupplier_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_StructuredPullSupplier, StructuredPullSupplier_Helper> StructuredPullSupplier_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_StructuredPullSupplier,StructuredPullSupplier_Helper > StructuredPullSupplier_out;

#endif

  // interface StructuredPullSupplier
  class StructuredPullSupplier {
  public:
    // Declarations for this interface type.
    typedef StructuredPullSupplier_ptr _ptr_type;
    typedef StructuredPullSupplier_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_StructuredPullSupplier :
    public virtual _objref_NotifySubscribe
  {
  public:
    CosNotification::StructuredEvent* pull_structured_event();
    CosNotification::StructuredEvent* try_pull_structured_event(::CORBA::Boolean& has_event);
    void disconnect_structured_pull_supplier();

    inline _objref_StructuredPullSupplier()  { _PR_setobj(0); }  // nil
    _objref_StructuredPullSupplier(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_StructuredPullSupplier();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_StructuredPullSupplier(const _objref_StructuredPullSupplier&);
    _objref_StructuredPullSupplier& operator = (const _objref_StructuredPullSupplier&);
    // not implemented

    friend class StructuredPullSupplier;
  };

  class _pof_StructuredPullSupplier : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_StructuredPullSupplier() : _OMNI_NS(proxyObjectFactory)(StructuredPullSupplier::_PD_repoId) {}
    virtual ~_pof_StructuredPullSupplier();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_StructuredPullSupplier :
    public virtual _impl_NotifySubscribe
  {
  public:
    virtual ~_impl_StructuredPullSupplier();

    virtual CosNotification::StructuredEvent* pull_structured_event() = 0;
    virtual CosNotification::StructuredEvent* try_pull_structured_event(::CORBA::Boolean& has_event) = 0;
    virtual void disconnect_structured_pull_supplier() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_StructuredPullSupplier;

#ifndef __CosNotifyComm_mStructuredPushSupplier__
#define __CosNotifyComm_mStructuredPushSupplier__

  class StructuredPushSupplier;
  class _objref_StructuredPushSupplier;
  class _impl_StructuredPushSupplier;
  
  typedef _objref_StructuredPushSupplier* StructuredPushSupplier_ptr;
  typedef StructuredPushSupplier_ptr StructuredPushSupplierRef;

  class StructuredPushSupplier_Helper {
  public:
    typedef StructuredPushSupplier_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_StructuredPushSupplier, StructuredPushSupplier_Helper> StructuredPushSupplier_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_StructuredPushSupplier,StructuredPushSupplier_Helper > StructuredPushSupplier_out;

#endif

  // interface StructuredPushSupplier
  class StructuredPushSupplier {
  public:
    // Declarations for this interface type.
    typedef StructuredPushSupplier_ptr _ptr_type;
    typedef StructuredPushSupplier_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_StructuredPushSupplier :
    public virtual _objref_NotifySubscribe
  {
  public:
    void disconnect_structured_push_supplier();

    inline _objref_StructuredPushSupplier()  { _PR_setobj(0); }  // nil
    _objref_StructuredPushSupplier(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_StructuredPushSupplier();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_StructuredPushSupplier(const _objref_StructuredPushSupplier&);
    _objref_StructuredPushSupplier& operator = (const _objref_StructuredPushSupplier&);
    // not implemented

    friend class StructuredPushSupplier;
  };

  class _pof_StructuredPushSupplier : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_StructuredPushSupplier() : _OMNI_NS(proxyObjectFactory)(StructuredPushSupplier::_PD_repoId) {}
    virtual ~_pof_StructuredPushSupplier();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_StructuredPushSupplier :
    public virtual _impl_NotifySubscribe
  {
  public:
    virtual ~_impl_StructuredPushSupplier();

    virtual void disconnect_structured_push_supplier() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_StructuredPushSupplier;

#ifndef __CosNotifyComm_mSequencePushConsumer__
#define __CosNotifyComm_mSequencePushConsumer__

  class SequencePushConsumer;
  class _objref_SequencePushConsumer;
  class _impl_SequencePushConsumer;
  
  typedef _objref_SequencePushConsumer* SequencePushConsumer_ptr;
  typedef SequencePushConsumer_ptr SequencePushConsumerRef;

  class SequencePushConsumer_Helper {
  public:
    typedef SequencePushConsumer_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SequencePushConsumer, SequencePushConsumer_Helper> SequencePushConsumer_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SequencePushConsumer,SequencePushConsumer_Helper > SequencePushConsumer_out;

#endif

  // interface SequencePushConsumer
  class SequencePushConsumer {
  public:
    // Declarations for this interface type.
    typedef SequencePushConsumer_ptr _ptr_type;
    typedef SequencePushConsumer_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_SequencePushConsumer :
    public virtual _objref_NotifyPublish
  {
  public:
    void push_structured_events(const ::CosNotification::EventBatch& notifications);
    void disconnect_sequence_push_consumer();

    inline _objref_SequencePushConsumer()  { _PR_setobj(0); }  // nil
    _objref_SequencePushConsumer(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_SequencePushConsumer();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_SequencePushConsumer(const _objref_SequencePushConsumer&);
    _objref_SequencePushConsumer& operator = (const _objref_SequencePushConsumer&);
    // not implemented

    friend class SequencePushConsumer;
  };

  class _pof_SequencePushConsumer : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_SequencePushConsumer() : _OMNI_NS(proxyObjectFactory)(SequencePushConsumer::_PD_repoId) {}
    virtual ~_pof_SequencePushConsumer();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_SequencePushConsumer :
    public virtual _impl_NotifyPublish
  {
  public:
    virtual ~_impl_SequencePushConsumer();

    virtual void push_structured_events(const ::CosNotification::EventBatch& notifications) = 0;
    virtual void disconnect_sequence_push_consumer() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_SequencePushConsumer;

#ifndef __CosNotifyComm_mSequencePullConsumer__
#define __CosNotifyComm_mSequencePullConsumer__

  class SequencePullConsumer;
  class _objref_SequencePullConsumer;
  class _impl_SequencePullConsumer;
  
  typedef _objref_SequencePullConsumer* SequencePullConsumer_ptr;
  typedef SequencePullConsumer_ptr SequencePullConsumerRef;

  class SequencePullConsumer_Helper {
  public:
    typedef SequencePullConsumer_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SequencePullConsumer, SequencePullConsumer_Helper> SequencePullConsumer_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SequencePullConsumer,SequencePullConsumer_Helper > SequencePullConsumer_out;

#endif

  // interface SequencePullConsumer
  class SequencePullConsumer {
  public:
    // Declarations for this interface type.
    typedef SequencePullConsumer_ptr _ptr_type;
    typedef SequencePullConsumer_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_SequencePullConsumer :
    public virtual _objref_NotifyPublish
  {
  public:
    void disconnect_sequence_pull_consumer();

    inline _objref_SequencePullConsumer()  { _PR_setobj(0); }  // nil
    _objref_SequencePullConsumer(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_SequencePullConsumer();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_SequencePullConsumer(const _objref_SequencePullConsumer&);
    _objref_SequencePullConsumer& operator = (const _objref_SequencePullConsumer&);
    // not implemented

    friend class SequencePullConsumer;
  };

  class _pof_SequencePullConsumer : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_SequencePullConsumer() : _OMNI_NS(proxyObjectFactory)(SequencePullConsumer::_PD_repoId) {}
    virtual ~_pof_SequencePullConsumer();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_SequencePullConsumer :
    public virtual _impl_NotifyPublish
  {
  public:
    virtual ~_impl_SequencePullConsumer();

    virtual void disconnect_sequence_pull_consumer() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_SequencePullConsumer;

#ifndef __CosNotifyComm_mSequencePullSupplier__
#define __CosNotifyComm_mSequencePullSupplier__

  class SequencePullSupplier;
  class _objref_SequencePullSupplier;
  class _impl_SequencePullSupplier;
  
  typedef _objref_SequencePullSupplier* SequencePullSupplier_ptr;
  typedef SequencePullSupplier_ptr SequencePullSupplierRef;

  class SequencePullSupplier_Helper {
  public:
    typedef SequencePullSupplier_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SequencePullSupplier, SequencePullSupplier_Helper> SequencePullSupplier_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SequencePullSupplier,SequencePullSupplier_Helper > SequencePullSupplier_out;

#endif

  // interface SequencePullSupplier
  class SequencePullSupplier {
  public:
    // Declarations for this interface type.
    typedef SequencePullSupplier_ptr _ptr_type;
    typedef SequencePullSupplier_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_SequencePullSupplier :
    public virtual _objref_NotifySubscribe
  {
  public:
    CosNotification::EventBatch* pull_structured_events(::CORBA::Long max_number);
    CosNotification::EventBatch* try_pull_structured_events(::CORBA::Long max_number, ::CORBA::Boolean& has_event);
    void disconnect_sequence_pull_supplier();

    inline _objref_SequencePullSupplier()  { _PR_setobj(0); }  // nil
    _objref_SequencePullSupplier(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_SequencePullSupplier();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_SequencePullSupplier(const _objref_SequencePullSupplier&);
    _objref_SequencePullSupplier& operator = (const _objref_SequencePullSupplier&);
    // not implemented

    friend class SequencePullSupplier;
  };

  class _pof_SequencePullSupplier : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_SequencePullSupplier() : _OMNI_NS(proxyObjectFactory)(SequencePullSupplier::_PD_repoId) {}
    virtual ~_pof_SequencePullSupplier();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_SequencePullSupplier :
    public virtual _impl_NotifySubscribe
  {
  public:
    virtual ~_impl_SequencePullSupplier();

    virtual CosNotification::EventBatch* pull_structured_events(::CORBA::Long max_number) = 0;
    virtual CosNotification::EventBatch* try_pull_structured_events(::CORBA::Long max_number, ::CORBA::Boolean& has_event) = 0;
    virtual void disconnect_sequence_pull_supplier() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_SequencePullSupplier;

#ifndef __CosNotifyComm_mSequencePushSupplier__
#define __CosNotifyComm_mSequencePushSupplier__

  class SequencePushSupplier;
  class _objref_SequencePushSupplier;
  class _impl_SequencePushSupplier;
  
  typedef _objref_SequencePushSupplier* SequencePushSupplier_ptr;
  typedef SequencePushSupplier_ptr SequencePushSupplierRef;

  class SequencePushSupplier_Helper {
  public:
    typedef SequencePushSupplier_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SequencePushSupplier, SequencePushSupplier_Helper> SequencePushSupplier_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SequencePushSupplier,SequencePushSupplier_Helper > SequencePushSupplier_out;

#endif

  // interface SequencePushSupplier
  class SequencePushSupplier {
  public:
    // Declarations for this interface type.
    typedef SequencePushSupplier_ptr _ptr_type;
    typedef SequencePushSupplier_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_SequencePushSupplier :
    public virtual _objref_NotifySubscribe
  {
  public:
    void disconnect_sequence_push_supplier();

    inline _objref_SequencePushSupplier()  { _PR_setobj(0); }  // nil
    _objref_SequencePushSupplier(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_SequencePushSupplier();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_SequencePushSupplier(const _objref_SequencePushSupplier&);
    _objref_SequencePushSupplier& operator = (const _objref_SequencePushSupplier&);
    // not implemented

    friend class SequencePushSupplier;
  };

  class _pof_SequencePushSupplier : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_SequencePushSupplier() : _OMNI_NS(proxyObjectFactory)(SequencePushSupplier::_PD_repoId) {}
    virtual ~_pof_SequencePushSupplier();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_SequencePushSupplier :
    public virtual _impl_NotifySubscribe
  {
  public:
    virtual ~_impl_SequencePushSupplier();

    virtual void disconnect_sequence_push_supplier() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_SequencePushSupplier;

_CORBA_MODULE_END



_CORBA_MODULE POA_CosNotifyComm
_CORBA_MODULE_BEG

  class NotifyPublish :
    public virtual CosNotifyComm::_impl_NotifyPublish,
    public virtual ::PortableServer::ServantBase
  {
  public:
    virtual ~NotifyPublish();

    inline ::CosNotifyComm::NotifyPublish_ptr _this() {
      return (::CosNotifyComm::NotifyPublish_ptr) _do_this(::CosNotifyComm::NotifyPublish::_PD_repoId);
    }
  };

  class NotifySubscribe :
    public virtual CosNotifyComm::_impl_NotifySubscribe,
    public virtual ::PortableServer::ServantBase
  {
  public:
    virtual ~NotifySubscribe();

    inline ::CosNotifyComm::NotifySubscribe_ptr _this() {
      return (::CosNotifyComm::NotifySubscribe_ptr) _do_this(::CosNotifyComm::NotifySubscribe::_PD_repoId);
    }
  };

  class PushConsumer :
    public virtual CosNotifyComm::_impl_PushConsumer,
    public virtual NotifyPublish,
      public virtual POA_CosEventComm::PushConsumer
  {
  public:
    virtual ~PushConsumer();

    inline ::CosNotifyComm::PushConsumer_ptr _this() {
      return (::CosNotifyComm::PushConsumer_ptr) _do_this(::CosNotifyComm::PushConsumer::_PD_repoId);
    }
  };

  class PullConsumer :
    public virtual CosNotifyComm::_impl_PullConsumer,
    public virtual NotifyPublish,
      public virtual POA_CosEventComm::PullConsumer
  {
  public:
    virtual ~PullConsumer();

    inline ::CosNotifyComm::PullConsumer_ptr _this() {
      return (::CosNotifyComm::PullConsumer_ptr) _do_this(::CosNotifyComm::PullConsumer::_PD_repoId);
    }
  };

  class PullSupplier :
    public virtual CosNotifyComm::_impl_PullSupplier,
    public virtual NotifySubscribe,
      public virtual POA_CosEventComm::PullSupplier
  {
  public:
    virtual ~PullSupplier();

    inline ::CosNotifyComm::PullSupplier_ptr _this() {
      return (::CosNotifyComm::PullSupplier_ptr) _do_this(::CosNotifyComm::PullSupplier::_PD_repoId);
    }
  };

  class PushSupplier :
    public virtual CosNotifyComm::_impl_PushSupplier,
    public virtual NotifySubscribe,
      public virtual POA_CosEventComm::PushSupplier
  {
  public:
    virtual ~PushSupplier();

    inline ::CosNotifyComm::PushSupplier_ptr _this() {
      return (::CosNotifyComm::PushSupplier_ptr) _do_this(::CosNotifyComm::PushSupplier::_PD_repoId);
    }
  };

  class StructuredPushConsumer :
    public virtual CosNotifyComm::_impl_StructuredPushConsumer,
    public virtual NotifyPublish
  {
  public:
    virtual ~StructuredPushConsumer();

    inline ::CosNotifyComm::StructuredPushConsumer_ptr _this() {
      return (::CosNotifyComm::StructuredPushConsumer_ptr) _do_this(::CosNotifyComm::StructuredPushConsumer::_PD_repoId);
    }
  };

  class StructuredPullConsumer :
    public virtual CosNotifyComm::_impl_StructuredPullConsumer,
    public virtual NotifyPublish
  {
  public:
    virtual ~StructuredPullConsumer();

    inline ::CosNotifyComm::StructuredPullConsumer_ptr _this() {
      return (::CosNotifyComm::StructuredPullConsumer_ptr) _do_this(::CosNotifyComm::StructuredPullConsumer::_PD_repoId);
    }
  };

  class StructuredPullSupplier :
    public virtual CosNotifyComm::_impl_StructuredPullSupplier,
    public virtual NotifySubscribe
  {
  public:
    virtual ~StructuredPullSupplier();

    inline ::CosNotifyComm::StructuredPullSupplier_ptr _this() {
      return (::CosNotifyComm::StructuredPullSupplier_ptr) _do_this(::CosNotifyComm::StructuredPullSupplier::_PD_repoId);
    }
  };

  class StructuredPushSupplier :
    public virtual CosNotifyComm::_impl_StructuredPushSupplier,
    public virtual NotifySubscribe
  {
  public:
    virtual ~StructuredPushSupplier();

    inline ::CosNotifyComm::StructuredPushSupplier_ptr _this() {
      return (::CosNotifyComm::StructuredPushSupplier_ptr) _do_this(::CosNotifyComm::StructuredPushSupplier::_PD_repoId);
    }
  };

  class SequencePushConsumer :
    public virtual CosNotifyComm::_impl_SequencePushConsumer,
    public virtual NotifyPublish
  {
  public:
    virtual ~SequencePushConsumer();

    inline ::CosNotifyComm::SequencePushConsumer_ptr _this() {
      return (::CosNotifyComm::SequencePushConsumer_ptr) _do_this(::CosNotifyComm::SequencePushConsumer::_PD_repoId);
    }
  };

  class SequencePullConsumer :
    public virtual CosNotifyComm::_impl_SequencePullConsumer,
    public virtual NotifyPublish
  {
  public:
    virtual ~SequencePullConsumer();

    inline ::CosNotifyComm::SequencePullConsumer_ptr _this() {
      return (::CosNotifyComm::SequencePullConsumer_ptr) _do_this(::CosNotifyComm::SequencePullConsumer::_PD_repoId);
    }
  };

  class SequencePullSupplier :
    public virtual CosNotifyComm::_impl_SequencePullSupplier,
    public virtual NotifySubscribe
  {
  public:
    virtual ~SequencePullSupplier();

    inline ::CosNotifyComm::SequencePullSupplier_ptr _this() {
      return (::CosNotifyComm::SequencePullSupplier_ptr) _do_this(::CosNotifyComm::SequencePullSupplier::_PD_repoId);
    }
  };

  class SequencePushSupplier :
    public virtual CosNotifyComm::_impl_SequencePushSupplier,
    public virtual NotifySubscribe
  {
  public:
    virtual ~SequencePushSupplier();

    inline ::CosNotifyComm::SequencePushSupplier_ptr _this() {
      return (::CosNotifyComm::SequencePushSupplier_ptr) _do_this(::CosNotifyComm::SequencePushSupplier::_PD_repoId);
    }
  };

_CORBA_MODULE_END



_CORBA_MODULE OBV_CosNotifyComm
_CORBA_MODULE_BEG

_CORBA_MODULE_END





#undef _core_attr
#undef _dyn_attr

void operator<<=(::CORBA::Any& _a, const CosNotifyComm::InvalidEventType& _s);
void operator<<=(::CORBA::Any& _a, const CosNotifyComm::InvalidEventType* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const CosNotifyComm::InvalidEventType*& _sp);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::NotifyPublish_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::NotifyPublish_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::NotifyPublish_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::NotifySubscribe_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::NotifySubscribe_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::NotifySubscribe_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::PushConsumer_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::PushConsumer_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::PushConsumer_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::PullConsumer_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::PullConsumer_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::PullConsumer_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::PullSupplier_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::PullSupplier_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::PullSupplier_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::PushSupplier_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::PushSupplier_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::PushSupplier_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::StructuredPushConsumer_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::StructuredPushConsumer_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::StructuredPushConsumer_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::StructuredPullConsumer_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::StructuredPullConsumer_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::StructuredPullConsumer_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::StructuredPullSupplier_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::StructuredPullSupplier_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::StructuredPullSupplier_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::StructuredPushSupplier_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::StructuredPushSupplier_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::StructuredPushSupplier_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::SequencePushConsumer_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::SequencePushConsumer_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::SequencePushConsumer_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::SequencePullConsumer_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::SequencePullConsumer_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::SequencePullConsumer_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::SequencePullSupplier_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::SequencePullSupplier_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::SequencePullSupplier_ptr& _s);

void operator<<=(::CORBA::Any& _a, CosNotifyComm::SequencePushSupplier_ptr _s);
void operator<<=(::CORBA::Any& _a, CosNotifyComm::SequencePushSupplier_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, CosNotifyComm::SequencePushSupplier_ptr& _s);



inline void
CosNotifyComm::NotifyPublish::_marshalObjRef(::CosNotifyComm::NotifyPublish_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::NotifySubscribe::_marshalObjRef(::CosNotifyComm::NotifySubscribe_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::PushConsumer::_marshalObjRef(::CosNotifyComm::PushConsumer_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::PullConsumer::_marshalObjRef(::CosNotifyComm::PullConsumer_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::PullSupplier::_marshalObjRef(::CosNotifyComm::PullSupplier_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::PushSupplier::_marshalObjRef(::CosNotifyComm::PushSupplier_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::StructuredPushConsumer::_marshalObjRef(::CosNotifyComm::StructuredPushConsumer_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::StructuredPullConsumer::_marshalObjRef(::CosNotifyComm::StructuredPullConsumer_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::StructuredPullSupplier::_marshalObjRef(::CosNotifyComm::StructuredPullSupplier_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::StructuredPushSupplier::_marshalObjRef(::CosNotifyComm::StructuredPushSupplier_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::SequencePushConsumer::_marshalObjRef(::CosNotifyComm::SequencePushConsumer_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::SequencePullConsumer::_marshalObjRef(::CosNotifyComm::SequencePullConsumer_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::SequencePullSupplier::_marshalObjRef(::CosNotifyComm::SequencePullSupplier_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
CosNotifyComm::SequencePushSupplier::_marshalObjRef(::CosNotifyComm::SequencePushSupplier_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}




#ifdef   USE_stub_in_nt_dll_NOT_DEFINED_CosNotifyComm
# undef  USE_stub_in_nt_dll
# undef  USE_stub_in_nt_dll_NOT_DEFINED_CosNotifyComm
#endif
#ifdef   USE_core_stub_in_nt_dll_NOT_DEFINED_CosNotifyComm
# undef  USE_core_stub_in_nt_dll
# undef  USE_core_stub_in_nt_dll_NOT_DEFINED_CosNotifyComm
#endif
#ifdef   USE_dyn_stub_in_nt_dll_NOT_DEFINED_CosNotifyComm
# undef  USE_dyn_stub_in_nt_dll
# undef  USE_dyn_stub_in_nt_dll_NOT_DEFINED_CosNotifyComm
#endif

#endif  // __CosNotifyComm_hh__

