ConsumerAdmin.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 /**
00003  *  @file ConsumerAdmin.h
00004  *
00005  *  $Id: ConsumerAdmin.h 81422 2008-04-24 12:33:29Z johnnyw $
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   /// Constructor
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   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 
00068   TAO_Notify_ProxySupplier * find_proxy_supplier (
00069       TAO_Notify::IdVec & id_path,
00070       size_t position);
00071 
00072   /// TAO_Notify_Container_T requires a destroy method
00073   virtual void destroy (void);
00074 
00075 protected:
00076   TAO_Notify::Topology_Object *load_proxy (
00077     CORBA::Long id,
00078     CosNotifyChannelAdmin::ClientType ctype,
00079     const TAO_Notify::NVPList& attrs);
00080 
00081   /// = NotifyExt::ConsumerAdmin methods
00082   virtual CosNotifyChannelAdmin::ProxySupplier_ptr
00083   obtain_notification_push_supplier_with_qos (CosNotifyChannelAdmin::ClientType ctype,
00084                                               CosNotifyChannelAdmin::ProxyID_out proxy_id,
00085                                               const CosNotification::QoSProperties & initial_qos);
00086 
00087   /// = CosNotifyChannelAdmin::ConsumerAdmin methods
00088   virtual CosNotifyChannelAdmin::AdminID MyID (void);
00089 
00090   virtual ::CosNotifyChannelAdmin::EventChannel_ptr MyChannel (void);
00091 
00092   virtual ::CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator (void);
00093 
00094   virtual ::CosNotifyFilter::MappingFilter_ptr priority_filter (void);
00095 
00096   virtual void priority_filter (CosNotifyFilter::MappingFilter_ptr priority_filter);
00097 
00098   virtual ::CosNotifyFilter::MappingFilter_ptr lifetime_filter (void);
00099 
00100   virtual void lifetime_filter (CosNotifyFilter::MappingFilter_ptr lifetime_filter);
00101 
00102   virtual ::CosNotifyChannelAdmin::ProxyIDSeq * pull_suppliers (void);
00103 
00104   virtual ::CosNotifyChannelAdmin::ProxyIDSeq * push_suppliers (void);
00105 
00106   virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr get_proxy_supplier (CosNotifyChannelAdmin::ProxyID proxy_id);
00107 
00108   virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr
00109   obtain_notification_pull_supplier (CosNotifyChannelAdmin::ClientType ctype,
00110                                      CosNotifyChannelAdmin::ProxyID_out proxy_id);
00111 
00112   virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr
00113   obtain_notification_push_supplier (CosNotifyChannelAdmin::ClientType ctype,
00114                                      CosNotifyChannelAdmin::ProxyID_out proxy_id);
00115 
00116   virtual ::CosNotification::QoSProperties * get_qos (void);
00117 
00118   virtual void set_qos (const CosNotification::QoSProperties & qos);
00119 
00120   virtual void validate_qos (const CosNotification::QoSProperties & required_qos,
00121                              CosNotification::NamedPropertyRangeSeq_out available_qos);
00122 
00123   virtual void subscription_change (const CosNotification::EventTypeSeq & added,
00124                                     const CosNotification::EventTypeSeq & removed);
00125 
00126   virtual CosNotifyFilter::FilterID add_filter (CosNotifyFilter::Filter_ptr new_filter);
00127 
00128   virtual void remove_filter (CosNotifyFilter::FilterID filter);
00129 
00130   virtual ::CosNotifyFilter::Filter_ptr get_filter (CosNotifyFilter::FilterID filter);
00131 
00132   virtual ::CosNotifyFilter::FilterIDSeq * get_all_filters (void);
00133 
00134   virtual void remove_all_filters (void);
00135 
00136   virtual ::CosEventChannelAdmin::ProxyPushSupplier_ptr obtain_push_supplier (void);
00137 
00138   virtual ::CosEventChannelAdmin::ProxyPullSupplier_ptr obtain_pull_supplier (void);
00139 
00140 private:
00141 
00142   /// Release this object.
00143   virtual void release (void);
00144 };
00145 
00146 TAO_END_VERSIONED_NAMESPACE_DECL
00147 
00148 #if defined(_MSC_VER)
00149 #pragma warning(pop)
00150 #endif /* _MSC_VER */
00151 
00152 #include /**/ "ace/post.h"
00153 
00154 #endif /* TAO_Notify_CONSUMERADMIN_H */

Generated on Tue Feb 2 17:45:29 2010 for TAO_CosNotification by  doxygen 1.4.7