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
00027 #if defined(_MSC_VER)
00028 #pragma warning(push)
00029 #pragma warning(disable:4250)
00030 #endif
00031
00032 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00033
00034 class TAO_Notify_ProxySupplier;
00035
00036
00037
00038
00039
00040
00041
00042 class TAO_Notify_Serv_Export TAO_Notify_ConsumerAdmin :
00043 public virtual POA_NotifyExt::ConsumerAdmin,
00044 public virtual TAO_Notify_Admin
00045 {
00046 public:
00047 typedef TAO_Notify_Refcountable_Guard_T< TAO_Notify_ConsumerAdmin > Ptr;
00048
00049 TAO_Notify_ConsumerAdmin (void);
00050
00051
00052 virtual ~TAO_Notify_ConsumerAdmin ();
00053
00054
00055 void init (TAO_Notify_EventChannel *ec);
00056
00057
00058 virtual void _add_ref (void);
00059 virtual void _remove_ref (void);
00060
00061
00062 virtual const char * get_admin_type_name () const;
00063
00064 virtual TAO_Notify::Topology_Object* load_child (
00065 const ACE_CString &type,
00066 CORBA::Long id,
00067 const TAO_Notify::NVPList& attrs);
00068
00069 TAO_Notify_ProxySupplier * find_proxy_supplier (
00070 TAO_Notify::IdVec & id_path,
00071 size_t position);
00072
00073
00074 virtual void destroy (void);
00075
00076 protected:
00077 TAO_Notify::Topology_Object *load_proxy (
00078 CORBA::Long id,
00079 CosNotifyChannelAdmin::ClientType ctype,
00080 const TAO_Notify::NVPList& attrs);
00081
00082
00083 virtual CosNotifyChannelAdmin::ProxySupplier_ptr
00084 obtain_notification_push_supplier_with_qos (CosNotifyChannelAdmin::ClientType ctype,
00085 CosNotifyChannelAdmin::ProxyID_out proxy_id,
00086 const CosNotification::QoSProperties & initial_qos
00087 );
00088
00089
00090 virtual CosNotifyChannelAdmin::AdminID MyID (void);
00091
00092 virtual ::CosNotifyChannelAdmin::EventChannel_ptr MyChannel (
00093
00094 );
00095
00096 virtual ::CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator (void);
00097
00098 virtual ::CosNotifyFilter::MappingFilter_ptr priority_filter (
00099
00100 );
00101
00102 virtual void priority_filter (CosNotifyFilter::MappingFilter_ptr priority_filter);
00103
00104 virtual ::CosNotifyFilter::MappingFilter_ptr lifetime_filter (void);
00105
00106 virtual void lifetime_filter (CosNotifyFilter::MappingFilter_ptr lifetime_filter);
00107
00108 virtual ::CosNotifyChannelAdmin::ProxyIDSeq * pull_suppliers (void);
00109
00110 virtual ::CosNotifyChannelAdmin::ProxyIDSeq * push_suppliers (void);
00111
00112 virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr get_proxy_supplier (CosNotifyChannelAdmin::ProxyID proxy_id);
00113
00114 virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr
00115 obtain_notification_pull_supplier (CosNotifyChannelAdmin::ClientType ctype,
00116 CosNotifyChannelAdmin::ProxyID_out proxy_id);
00117
00118 virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr
00119 obtain_notification_push_supplier (CosNotifyChannelAdmin::ClientType ctype,
00120 CosNotifyChannelAdmin::ProxyID_out proxy_id);
00121
00122 virtual ::CosNotification::QoSProperties * get_qos (void);
00123
00124 virtual void set_qos (const CosNotification::QoSProperties & qos);
00125
00126 virtual void validate_qos (const CosNotification::QoSProperties & required_qos,
00127 CosNotification::NamedPropertyRangeSeq_out available_qos);
00128
00129 virtual void subscription_change (const CosNotification::EventTypeSeq & added,
00130 const CosNotification::EventTypeSeq & removed);
00131
00132 virtual CosNotifyFilter::FilterID add_filter (CosNotifyFilter::Filter_ptr new_filter);
00133
00134 virtual void remove_filter (CosNotifyFilter::FilterID filter);
00135
00136 virtual ::CosNotifyFilter::Filter_ptr get_filter (CosNotifyFilter::FilterID filter);
00137
00138 virtual ::CosNotifyFilter::FilterIDSeq * get_all_filters (void);
00139
00140 virtual void remove_all_filters (void);
00141
00142 virtual ::CosEventChannelAdmin::ProxyPushSupplier_ptr obtain_push_supplier (void);
00143
00144 virtual ::CosEventChannelAdmin::ProxyPullSupplier_ptr obtain_pull_supplier (void);
00145
00146 private:
00147
00148
00149 virtual void release (void);
00150 };
00151
00152 TAO_END_VERSIONED_NAMESPACE_DECL
00153
00154 #if defined(_MSC_VER)
00155 #pragma warning(pop)
00156 #endif
00157
00158 #include "ace/post.h"
00159
00160 #endif