00001 // -*- C++ -*- 00002 00003 /** 00004 * @file ProxySupplier_T.h 00005 * 00006 * ProxySupplier_T.h,v 1.10 2006/03/14 06:14:34 jtc Exp 00007 * 00008 * @author Pradeep Gore <pradeep@oomworks.com> 00009 */ 00010 00011 #ifndef TAO_Notify_PROXYSUPPLIER_T_H 00012 #define TAO_Notify_PROXYSUPPLIER_T_H 00013 #include /**/ "ace/pre.h" 00014 00015 #include "orbsvcs/Notify/notify_serv_export.h" 00016 00017 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00018 # pragma once 00019 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00020 00021 #include "orbsvcs/Notify/Proxy_T.h" 00022 #include "orbsvcs/Notify/ProxySupplier.h" 00023 00024 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00025 00026 /** 00027 * @class TAO_Notify_ProxySupplier_T 00028 * 00029 * @brief 00030 * 00031 */ 00032 template <class SERVANT_TYPE> 00033 class TAO_Notify_ProxySupplier_T : public virtual TAO_Notify_Proxy_T <SERVANT_TYPE>, public virtual TAO_Notify_ProxySupplier 00034 { 00035 public: 00036 /// Constuctor 00037 TAO_Notify_ProxySupplier_T (void); 00038 00039 /// Destructor 00040 ~TAO_Notify_ProxySupplier_T (); 00041 00042 /// Notification of subscriptions set at the admin. 00043 virtual void admin_types_changed (const CosNotification::EventTypeSeq & added, 00044 const CosNotification::EventTypeSeq & removed 00045 ACE_ENV_ARG_DECL); 00046 00047 ///= POA_Notify_Internal methods 00048 /// POA_Notify_Internal::Event_Forwarder method 00049 virtual void forward_structured (const CosNotification::StructuredEvent & event ACE_ENV_ARG_DECL) 00050 ACE_THROW_SPEC (( 00051 CORBA::SystemException 00052 )); 00053 00054 /// POA_Notify_Internal::Event_Forwarder method 00055 virtual void forward_structured_no_filtering (const CosNotification::StructuredEvent & event ACE_ENV_ARG_DECL) 00056 ACE_THROW_SPEC (( 00057 CORBA::SystemException 00058 )); 00059 00060 /// POA_Notify_Internal::Event_Forwarder method 00061 virtual void forward_any (const CORBA::Any & event ACE_ENV_ARG_DECL) 00062 ACE_THROW_SPEC (( 00063 CORBA::SystemException 00064 )); 00065 00066 /// POA_Notify_Internal::Event_Forwarder method 00067 virtual void forward_any_no_filtering (const CORBA::Any & event ACE_ENV_ARG_DECL) 00068 ACE_THROW_SPEC (( 00069 CORBA::SystemException 00070 )); 00071 protected: 00072 //= Data Members 00073 CORBA::Boolean is_suspended_; 00074 00075 // = Interface methods 00076 virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr MyAdmin ( 00077 ACE_ENV_SINGLE_ARG_DECL 00078 ) 00079 ACE_THROW_SPEC (( 00080 CORBA::SystemException 00081 )); 00082 00083 virtual void suspend_connection ( 00084 ACE_ENV_SINGLE_ARG_DECL 00085 ) 00086 ACE_THROW_SPEC (( 00087 CORBA::SystemException, 00088 CosNotifyChannelAdmin::ConnectionAlreadyInactive, 00089 CosNotifyChannelAdmin::NotConnected 00090 )); 00091 00092 virtual void resume_connection ( 00093 ACE_ENV_SINGLE_ARG_DECL 00094 ) 00095 ACE_THROW_SPEC (( 00096 CORBA::SystemException, 00097 CosNotifyChannelAdmin::ConnectionAlreadyActive, 00098 CosNotifyChannelAdmin::NotConnected 00099 )); 00100 00101 virtual CosNotifyFilter::MappingFilter_ptr priority_filter ( 00102 ACE_ENV_SINGLE_ARG_DECL 00103 ) 00104 ACE_THROW_SPEC (( 00105 CORBA::SystemException 00106 )); 00107 00108 virtual void priority_filter ( 00109 CosNotifyFilter::MappingFilter_ptr priority_filter 00110 ACE_ENV_ARG_DECL 00111 ) 00112 ACE_THROW_SPEC (( 00113 CORBA::SystemException 00114 )); 00115 00116 virtual CosNotifyFilter::MappingFilter_ptr lifetime_filter ( 00117 ACE_ENV_SINGLE_ARG_DECL 00118 ) 00119 ACE_THROW_SPEC (( 00120 CORBA::SystemException 00121 )); 00122 00123 virtual void lifetime_filter ( 00124 CosNotifyFilter::MappingFilter_ptr lifetime_filter 00125 ACE_ENV_ARG_DECL 00126 ) 00127 ACE_THROW_SPEC (( 00128 CORBA::SystemException 00129 )); 00130 00131 virtual CosNotification::EventTypeSeq * obtain_offered_types ( 00132 CosNotifyChannelAdmin::ObtainInfoMode mode 00133 ACE_ENV_ARG_DECL 00134 ) 00135 ACE_THROW_SPEC (( 00136 CORBA::SystemException 00137 )); 00138 00139 virtual void subscription_change ( 00140 const CosNotification::EventTypeSeq & added, 00141 const CosNotification::EventTypeSeq & removed 00142 ACE_ENV_ARG_DECL 00143 ) 00144 ACE_THROW_SPEC (( 00145 CORBA::SystemException, 00146 CosNotifyComm::InvalidEventType 00147 )); 00148 }; 00149 00150 TAO_END_VERSIONED_NAMESPACE_DECL 00151 00152 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) 00153 #include "orbsvcs/Notify/ProxySupplier_T.cpp" 00154 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ 00155 00156 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) 00157 #pragma implementation ("ProxySupplier_T.cpp") 00158 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ 00159 00160 #include /**/ "ace/post.h" 00161 #endif /* TAO_Notify_PROXYSUPPLIER_T_H */