00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef TAO_Notify_CONSUMERADMIN_H
00013 #define TAO_Notify_CONSUMERADMIN_H
00014
00015 #include "ace/pre.h"
00016
00017 #include "orbsvcs/Notify/notify_serv_export.h"
00018
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif
00022
00023 #include "orbsvcs/NotifyExtS.h"
00024
00025 #include "orbsvcs/Notify/Admin.h"
00026 class TAO_Notify_ProxySupplier;
00027
00028 #if defined(_MSC_VER)
00029 #pragma warning(push)
00030 #pragma warning(disable:4250)
00031 #endif
00032
00033 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00034
00035
00036
00037
00038
00039
00040
00041 class TAO_Notify_Serv_Export TAO_Notify_ConsumerAdmin : public POA_NotifyExt::ConsumerAdmin
00042 , public virtual TAO_Notify_Admin
00043 {
00044 public:
00045 typedef TAO_Notify_Refcountable_Guard_T< TAO_Notify_ConsumerAdmin > Ptr;
00046
00047 TAO_Notify_ConsumerAdmin (void);
00048
00049
00050 virtual ~TAO_Notify_ConsumerAdmin ();
00051
00052
00053 void init (TAO_Notify_EventChannel *ec ACE_ENV_ARG_DECL);
00054
00055
00056 virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL);
00057 virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL);
00058
00059
00060 virtual const char * get_admin_type_name () const;
00061
00062 virtual TAO_Notify::Topology_Object* load_child (
00063 const ACE_CString &type,
00064 CORBA::Long id,
00065 const TAO_Notify::NVPList& attrs
00066 ACE_ENV_ARG_DECL);
00067
00068 TAO_Notify_ProxySupplier * find_proxy_supplier (
00069 TAO_Notify::IdVec & id_path,
00070 size_t position
00071 ACE_ENV_ARG_DECL);
00072
00073 protected:
00074 TAO_Notify::Topology_Object *load_proxy (
00075 CORBA::Long id,
00076 CosNotifyChannelAdmin::ClientType ctype,
00077 const TAO_Notify::NVPList& attrs
00078 ACE_ENV_ARG_DECL);
00079
00080
00081 virtual CosNotifyChannelAdmin::ProxySupplier_ptr
00082 obtain_notification_push_supplier_with_qos (CosNotifyChannelAdmin::ClientType ctype,
00083 CosNotifyChannelAdmin::ProxyID_out proxy_id,
00084 const CosNotification::QoSProperties & initial_qos
00085 ACE_ENV_ARG_DECL
00086 )
00087 ACE_THROW_SPEC ((
00088 CORBA::SystemException
00089 , CosNotifyChannelAdmin::AdminLimitExceeded
00090 , CosNotification::UnsupportedQoS
00091 ));
00092
00093
00094 virtual CosNotifyChannelAdmin::AdminID MyID (ACE_ENV_SINGLE_ARG_DECL)
00095 ACE_THROW_SPEC ((
00096 CORBA::SystemException
00097 ));
00098
00099 virtual ::CosNotifyChannelAdmin::EventChannel_ptr MyChannel (ACE_ENV_SINGLE_ARG_DECL
00100
00101 )
00102 ACE_THROW_SPEC ((
00103 CORBA::SystemException
00104 ));
00105
00106 virtual ::CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator (ACE_ENV_SINGLE_ARG_DECL)
00107 ACE_THROW_SPEC ((
00108 CORBA::SystemException
00109 ));
00110
00111 virtual ::CosNotifyFilter::MappingFilter_ptr priority_filter (ACE_ENV_SINGLE_ARG_DECL
00112
00113 )
00114 ACE_THROW_SPEC ((
00115 CORBA::SystemException
00116 ));
00117
00118 virtual void priority_filter (CosNotifyFilter::MappingFilter_ptr priority_filter ACE_ENV_ARG_DECL)
00119 ACE_THROW_SPEC ((
00120 CORBA::SystemException
00121 ));
00122
00123 virtual ::CosNotifyFilter::MappingFilter_ptr lifetime_filter (ACE_ENV_SINGLE_ARG_DECL)
00124 ACE_THROW_SPEC ((
00125 CORBA::SystemException
00126 ));
00127
00128 virtual void lifetime_filter (CosNotifyFilter::MappingFilter_ptr lifetime_filter
00129 ACE_ENV_ARG_DECL)
00130 ACE_THROW_SPEC ((
00131 CORBA::SystemException
00132 ));
00133
00134 virtual ::CosNotifyChannelAdmin::ProxyIDSeq * pull_suppliers (ACE_ENV_SINGLE_ARG_DECL)
00135 ACE_THROW_SPEC ((
00136 CORBA::SystemException
00137 ));
00138
00139 virtual ::CosNotifyChannelAdmin::ProxyIDSeq * push_suppliers (ACE_ENV_SINGLE_ARG_DECL)
00140 ACE_THROW_SPEC ((
00141 CORBA::SystemException
00142 ));
00143
00144 virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr get_proxy_supplier (CosNotifyChannelAdmin::ProxyID proxy_id
00145 ACE_ENV_ARG_DECL)
00146 ACE_THROW_SPEC ((
00147 CORBA::SystemException
00148 , CosNotifyChannelAdmin::ProxyNotFound
00149 ));
00150
00151 virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr
00152 obtain_notification_pull_supplier (CosNotifyChannelAdmin::ClientType ctype,
00153 CosNotifyChannelAdmin::ProxyID_out proxy_id
00154 ACE_ENV_ARG_DECL)
00155 ACE_THROW_SPEC ((
00156 CORBA::SystemException
00157 , CosNotifyChannelAdmin::AdminLimitExceeded
00158 ));
00159
00160 virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr
00161 obtain_notification_push_supplier (CosNotifyChannelAdmin::ClientType ctype,
00162 CosNotifyChannelAdmin::ProxyID_out proxy_id
00163 ACE_ENV_ARG_DECL)
00164 ACE_THROW_SPEC ((
00165 CORBA::SystemException
00166 , CosNotifyChannelAdmin::AdminLimitExceeded
00167 ));
00168
00169 virtual void destroy (ACE_ENV_SINGLE_ARG_DECL)
00170 ACE_THROW_SPEC ((
00171 CORBA::SystemException
00172 ));
00173
00174 virtual ::CosNotification::QoSProperties * get_qos (ACE_ENV_SINGLE_ARG_DECL)
00175 ACE_THROW_SPEC ((
00176 CORBA::SystemException
00177 ));
00178
00179 virtual void set_qos (const CosNotification::QoSProperties & qos
00180 ACE_ENV_ARG_DECL)
00181 ACE_THROW_SPEC ((
00182 CORBA::SystemException
00183 , CosNotification::UnsupportedQoS
00184 ));
00185
00186 virtual void validate_qos (const CosNotification::QoSProperties & required_qos,
00187 CosNotification::NamedPropertyRangeSeq_out available_qos
00188 ACE_ENV_ARG_DECL)
00189 ACE_THROW_SPEC ((
00190 CORBA::SystemException
00191 , CosNotification::UnsupportedQoS
00192 ));
00193
00194 virtual void subscription_change (const CosNotification::EventTypeSeq & added,
00195 const CosNotification::EventTypeSeq & removed
00196 ACE_ENV_ARG_DECL)
00197 ACE_THROW_SPEC ((
00198 CORBA::SystemException
00199 , CosNotifyComm::InvalidEventType
00200 ));
00201
00202 virtual CosNotifyFilter::FilterID add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL)
00203 ACE_THROW_SPEC ((
00204 CORBA::SystemException
00205 ));
00206
00207 virtual void remove_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL)
00208 ACE_THROW_SPEC ((
00209 CORBA::SystemException
00210 , CosNotifyFilter::FilterNotFound
00211 ));
00212
00213 virtual ::CosNotifyFilter::Filter_ptr get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL)
00214 ACE_THROW_SPEC ((
00215 CORBA::SystemException
00216 , CosNotifyFilter::FilterNotFound
00217 ));
00218
00219 virtual ::CosNotifyFilter::FilterIDSeq * get_all_filters (ACE_ENV_SINGLE_ARG_DECL)
00220 ACE_THROW_SPEC ((
00221 CORBA::SystemException
00222 ));
00223
00224 virtual void remove_all_filters (ACE_ENV_SINGLE_ARG_DECL)
00225 ACE_THROW_SPEC ((
00226 CORBA::SystemException
00227 ));
00228
00229 virtual ::CosEventChannelAdmin::ProxyPushSupplier_ptr obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL)
00230 ACE_THROW_SPEC ((
00231 CORBA::SystemException
00232 ));
00233
00234 virtual ::CosEventChannelAdmin::ProxyPullSupplier_ptr obtain_pull_supplier (ACE_ENV_SINGLE_ARG_DECL)
00235 ACE_THROW_SPEC ((
00236 CORBA::SystemException
00237 ));
00238
00239 private:
00240
00241
00242 virtual void release (void);
00243 };
00244
00245 TAO_END_VERSIONED_NAMESPACE_DECL
00246
00247 #if defined(_MSC_VER)
00248 #pragma warning(pop)
00249 #endif
00250
00251 #include "ace/post.h"
00252
00253 #endif