ConsumerAdmin.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 /**
00003  *  @file ConsumerAdmin.h
00004  *
00005  *  ConsumerAdmin.h,v 1.17 2006/03/14 06:14:34 jtc Exp
00006  *
00007  *  @author Pradeep Gore <pradeep@oomworks.com>
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 /* ACE_LACKS_PRAGMA_ONCE */
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 /* _MSC_VER */
00032 
00033 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00034 
00035 /**
00036  * @class TAO_Notify_ConsumerAdmin
00037  *
00038  * @brief Implementation of CosNotifyChannelAdmin::ConsumerAdmin
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   /// Constuctor
00047   TAO_Notify_ConsumerAdmin (void);
00048 
00049   /// Destructor
00050   virtual ~TAO_Notify_ConsumerAdmin ();
00051 
00052   /// Init
00053   void init (TAO_Notify_EventChannel *ec ACE_ENV_ARG_DECL);
00054 
00055   /// ServantBase refcount methods.
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   /// = NotifyExt::ConsumerAdmin methods
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   /// = CosNotifyChannelAdmin::ConsumerAdmin methods
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   /// Release this object.
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 /* _MSC_VER */
00250 
00251 #include /**/ "ace/post.h"
00252 
00253 #endif /* TAO_Notify_CONSUMERADMIN_H */

Generated on Thu Nov 9 13:24:09 2006 for TAO_CosNotification by doxygen 1.3.6