SupplierAdmin.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file SupplierAdmin.h
00005  *
00006  *  $Id: SupplierAdmin.h 79084 2007-07-30 13:13:45Z elliott_c $
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);
00055 
00056   /// ServantBase refcount methods.
00057   virtual void _add_ref (void);
00058   virtual void _remove_ref (void);
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 
00068   TAO_Notify_ProxyConsumer * find_proxy_consumer (
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 
00077     TAO_Notify::Topology_Object *load_proxy (
00078     CORBA::Long id,
00079     CosNotifyChannelAdmin::ClientType ctype,
00080     const TAO_Notify::NVPList& attrs);
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     );
00089 
00090   /// = CosNotifyChannelAdmin::SupplierAdmin methods
00091   virtual CosNotifyChannelAdmin::AdminID MyID (void);
00092 
00093   virtual ::CosNotifyChannelAdmin::EventChannel_ptr MyChannel (
00094     );
00095 
00096   virtual ::CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator (
00097     );
00098 
00099   virtual ::CosNotifyChannelAdmin::ProxyIDSeq * pull_consumers (
00100     );
00101 
00102   virtual ::CosNotifyChannelAdmin::ProxyIDSeq * push_consumers (
00103     );
00104 
00105   virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr get_proxy_consumer (
00106       CosNotifyChannelAdmin::ProxyID proxy_id
00107     );
00108 
00109   virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr
00110   obtain_notification_pull_consumer (
00111       CosNotifyChannelAdmin::ClientType ctype,
00112       CosNotifyChannelAdmin::ProxyID_out proxy_id
00113     );
00114 
00115   virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr
00116   obtain_notification_push_consumer (
00117       CosNotifyChannelAdmin::ClientType ctype,
00118       CosNotifyChannelAdmin::ProxyID_out proxy_id
00119     );
00120 
00121   virtual ::CosNotification::QoSProperties* get_qos (void);
00122 
00123   virtual void set_qos (const CosNotification::QoSProperties& qos);
00124 
00125   virtual void validate_qos (
00126       const CosNotification::QoSProperties & required_qos,
00127       CosNotification::NamedPropertyRangeSeq_out available_qos
00128     );
00129 
00130   virtual void offer_change (const CosNotification::EventTypeSeq & added,
00131                              const CosNotification::EventTypeSeq & removed);
00132 
00133   virtual CosNotifyFilter::FilterID add_filter (
00134       CosNotifyFilter::Filter_ptr new_filter
00135     );
00136 
00137   virtual void remove_filter (
00138       CosNotifyFilter::FilterID filter
00139     );
00140 
00141   virtual ::CosNotifyFilter::Filter_ptr get_filter (
00142       CosNotifyFilter::FilterID filter
00143     );
00144 
00145   virtual ::CosNotifyFilter::FilterIDSeq * get_all_filters (
00146     );
00147 
00148   virtual void remove_all_filters (void);
00149 
00150   virtual ::CosEventChannelAdmin::ProxyPushConsumer_ptr obtain_push_consumer (
00151     );
00152 
00153   virtual ::CosEventChannelAdmin::ProxyPullConsumer_ptr obtain_pull_consumer (
00154     );
00155 
00156 private:
00157   /// Release
00158   virtual void release (void);
00159 };
00160 
00161 TAO_END_VERSIONED_NAMESPACE_DECL
00162 
00163 #if defined(_MSC_VER)
00164 #pragma warning(pop)
00165 #endif /* _MSC_VER */
00166 
00167 #include /**/ "ace/post.h"
00168 
00169 #endif /* TAO_Notify_SUPPLIERADMIN_H */

Generated on Sun Jan 27 15:40:01 2008 for TAO_CosNotification by doxygen 1.3.6