SupplierAdmin.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file SupplierAdmin.h
00005  *
00006  *  SupplierAdmin.h,v 1.18 2006/03/14 06:14:34 jtc Exp
00007  *
00008  *  @author Pradeep Gore <pradeep@oomworks.com>
00009  */
00010 
00011 #ifndef TAO_Notify_SUPPLIERADMIN_H
00012 #define TAO_Notify_SUPPLIERADMIN_H
00013 
00014 #include /**/ "ace/pre.h"
00015 
00016 #include "orbsvcs/Notify/notify_serv_export.h"
00017 #include "orbsvcs/Notify/Admin.h"
00018 
00019 #include "orbsvcs/NotifyExtS.h"
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 #if defined(_MSC_VER)
00026 #pragma warning(push)
00027 #pragma warning(disable:4250)
00028 #endif /* _MSC_VER */
00029 
00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00031 
00032 class TAO_Notify_ProxyConsumer;
00033 
00034 /**
00035  * @class TAO_Notify_SupplierAdmin
00036  *
00037  * @brief Implementation of CosNotifyChannelAdmin::SupplierAdmin
00038  *
00039  */
00040 class TAO_Notify_Serv_Export TAO_Notify_SupplierAdmin
00041   : public virtual POA_NotifyExt::SupplierAdmin,
00042     public virtual TAO_Notify_Admin
00043 {
00044 public:
00045   typedef TAO_Notify_Refcountable_Guard_T< TAO_Notify_SupplierAdmin > Ptr;
00046 
00047   /// Constuctor
00048   TAO_Notify_SupplierAdmin (void);
00049 
00050   /// Destructor
00051   virtual ~TAO_Notify_SupplierAdmin ();
00052 
00053   /// Init
00054   void init (TAO_Notify_EventChannel *ec ACE_ENV_ARG_DECL);
00055 
00056   /// ServantBase refcount methods.
00057   virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL);
00058   virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL);
00059 
00060 
00061   virtual const char * get_admin_type_name () const;
00062 
00063   virtual TAO_Notify::Topology_Object* load_child (
00064     const ACE_CString &type,
00065     CORBA::Long id,
00066     const TAO_Notify::NVPList& attrs
00067     ACE_ENV_ARG_DECL);
00068 
00069   TAO_Notify_ProxyConsumer * find_proxy_consumer (
00070       TAO_Notify::IdVec & id_path,
00071       size_t position
00072       ACE_ENV_ARG_DECL);
00073 
00074 protected:
00075 
00076     TAO_Notify::Topology_Object *load_proxy (
00077     CORBA::Long id,
00078     CosNotifyChannelAdmin::ClientType ctype,
00079     const TAO_Notify::NVPList& attrs
00080     ACE_ENV_ARG_DECL);
00081 
00082   /// = NotifyExt::SupplierAdmin methods
00083   CosNotifyChannelAdmin::ProxyConsumer_ptr
00084   obtain_notification_push_consumer_with_qos (
00085       CosNotifyChannelAdmin::ClientType ctype,
00086       CosNotifyChannelAdmin::ProxyID_out proxy_id,
00087       const CosNotification::QoSProperties & initial_qos
00088       ACE_ENV_ARG_DECL
00089     )
00090     ACE_THROW_SPEC ((CORBA::SystemException,
00091                      CosNotifyChannelAdmin::AdminLimitExceeded,
00092                      CosNotification::UnsupportedQoS));
00093 
00094   /// = CosNotifyChannelAdmin::SupplierAdmin methods
00095   virtual CosNotifyChannelAdmin::AdminID MyID (ACE_ENV_SINGLE_ARG_DECL)
00096     ACE_THROW_SPEC ((CORBA::SystemException));
00097 
00098   virtual ::CosNotifyChannelAdmin::EventChannel_ptr MyChannel (
00099       ACE_ENV_SINGLE_ARG_DECL
00100     )
00101     ACE_THROW_SPEC ((CORBA::SystemException));
00102 
00103   virtual ::CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator (
00104       ACE_ENV_SINGLE_ARG_DECL
00105     )
00106     ACE_THROW_SPEC ((CORBA::SystemException));
00107 
00108   virtual ::CosNotifyChannelAdmin::ProxyIDSeq * pull_consumers (
00109       ACE_ENV_SINGLE_ARG_DECL
00110     )
00111     ACE_THROW_SPEC ((CORBA::SystemException));
00112 
00113   virtual ::CosNotifyChannelAdmin::ProxyIDSeq * push_consumers (
00114       ACE_ENV_SINGLE_ARG_DECL
00115     )
00116     ACE_THROW_SPEC ((CORBA::SystemException));
00117 
00118   virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr get_proxy_consumer (
00119       CosNotifyChannelAdmin::ProxyID proxy_id
00120       ACE_ENV_ARG_DECL
00121     )
00122     ACE_THROW_SPEC ((CORBA::SystemException,
00123                      CosNotifyChannelAdmin::ProxyNotFound));
00124 
00125   virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr
00126   obtain_notification_pull_consumer (
00127       CosNotifyChannelAdmin::ClientType ctype,
00128       CosNotifyChannelAdmin::ProxyID_out proxy_id
00129       ACE_ENV_ARG_DECL
00130     )
00131     ACE_THROW_SPEC ((CORBA::SystemException,
00132                      CosNotifyChannelAdmin::AdminLimitExceeded));
00133 
00134   virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr
00135   obtain_notification_push_consumer (
00136       CosNotifyChannelAdmin::ClientType ctype,
00137       CosNotifyChannelAdmin::ProxyID_out proxy_id
00138       ACE_ENV_ARG_DECL
00139     )
00140     ACE_THROW_SPEC ((CORBA::SystemException,
00141                      CosNotifyChannelAdmin::AdminLimitExceeded));
00142 
00143   virtual void destroy (ACE_ENV_SINGLE_ARG_DECL)
00144     ACE_THROW_SPEC ((CORBA::SystemException));
00145 
00146   virtual ::CosNotification::QoSProperties* get_qos (ACE_ENV_SINGLE_ARG_DECL)
00147     ACE_THROW_SPEC ((CORBA::SystemException));
00148 
00149   virtual void set_qos (const CosNotification::QoSProperties& qos
00150                         ACE_ENV_ARG_DECL)
00151     ACE_THROW_SPEC ((CORBA::SystemException,
00152                      CosNotification::UnsupportedQoS));
00153 
00154   virtual void validate_qos (
00155       const CosNotification::QoSProperties & required_qos,
00156       CosNotification::NamedPropertyRangeSeq_out available_qos
00157       ACE_ENV_ARG_DECL
00158     )
00159     ACE_THROW_SPEC ((CORBA::SystemException,
00160                      CosNotification::UnsupportedQoS));
00161 
00162   virtual void offer_change (const CosNotification::EventTypeSeq & added,
00163                              const CosNotification::EventTypeSeq & removed
00164                              ACE_ENV_ARG_DECL)
00165     ACE_THROW_SPEC ((
00166                      CORBA::SystemException
00167                      , CosNotifyComm::InvalidEventType
00168                      ));
00169 
00170   virtual CosNotifyFilter::FilterID add_filter (
00171       CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL
00172     )
00173     ACE_THROW_SPEC ((CORBA::SystemException));
00174 
00175   virtual void remove_filter (
00176       CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL
00177     )
00178     ACE_THROW_SPEC ((CORBA::SystemException,
00179                      CosNotifyFilter::FilterNotFound));
00180 
00181   virtual ::CosNotifyFilter::Filter_ptr get_filter (
00182       CosNotifyFilter::FilterID filter
00183       ACE_ENV_ARG_DECL
00184     )
00185     ACE_THROW_SPEC ((CORBA::SystemException,
00186                      CosNotifyFilter::FilterNotFound));
00187 
00188   virtual ::CosNotifyFilter::FilterIDSeq * get_all_filters (
00189       ACE_ENV_SINGLE_ARG_DECL
00190     )
00191     ACE_THROW_SPEC ((CORBA::SystemException));
00192 
00193   virtual void remove_all_filters (ACE_ENV_SINGLE_ARG_DECL)
00194     ACE_THROW_SPEC ((CORBA::SystemException));
00195 
00196   virtual ::CosEventChannelAdmin::ProxyPushConsumer_ptr obtain_push_consumer (
00197       ACE_ENV_SINGLE_ARG_DECL
00198     )
00199     ACE_THROW_SPEC ((CORBA::SystemException));
00200 
00201   virtual ::CosEventChannelAdmin::ProxyPullConsumer_ptr obtain_pull_consumer (
00202       ACE_ENV_SINGLE_ARG_DECL
00203     )
00204     ACE_THROW_SPEC ((CORBA::SystemException));
00205 
00206 private:
00207   /// Release
00208   virtual void release (void);
00209 };
00210 
00211 TAO_END_VERSIONED_NAMESPACE_DECL
00212 
00213 #if defined(_MSC_VER)
00214 #pragma warning(pop)
00215 #endif /* _MSC_VER */
00216 
00217 #include /**/ "ace/post.h"
00218 
00219 #endif /* TAO_Notify_SUPPLIERADMIN_H */

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