ConsumerAdmin.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 /**
00003  *  @file ConsumerAdmin.h
00004  *
00005  *  $Id: ConsumerAdmin.h 79084 2007-07-30 13:13:45Z elliott_c $
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 
00027 #if defined(_MSC_VER)
00028 #pragma warning(push)
00029 #pragma warning(disable:4250)
00030 #endif /* _MSC_VER */
00031 
00032 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00033 
00034 class TAO_Notify_ProxySupplier;
00035 
00036 /**
00037  * @class TAO_Notify_ConsumerAdmin
00038  *
00039  * @brief Implementation of CosNotifyChannelAdmin::ConsumerAdmin
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   /// Constuctor
00049   TAO_Notify_ConsumerAdmin (void);
00050 
00051   /// Destructor
00052   virtual ~TAO_Notify_ConsumerAdmin ();
00053 
00054   /// Init
00055   void init (TAO_Notify_EventChannel *ec);
00056 
00057   /// ServantBase refcount methods.
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   /// TAO_Notify_Container_T requires a destroy method
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   /// = NotifyExt::ConsumerAdmin methods
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   /// = CosNotifyChannelAdmin::ConsumerAdmin methods
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   /// Release this object.
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 /* _MSC_VER */
00157 
00158 #include /**/ "ace/post.h"
00159 
00160 #endif /* TAO_Notify_CONSUMERADMIN_H */

Generated on Sun Jan 27 15:39:53 2008 for TAO_CosNotification by doxygen 1.3.6