SupplierAdmin.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file SupplierAdmin.h
00005  *
00006  *  $Id: SupplierAdmin.h 81422 2008-04-24 12:33:29Z johnnyw $
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   /// Constructor
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   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 
00067   TAO_Notify_ProxyConsumer * find_proxy_consumer (
00068       TAO_Notify::IdVec & id_path,
00069       size_t position);
00070 
00071   /// TAO_Notify_Container_T requires a destroy method
00072   virtual void destroy (void);
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 
00081   /// = NotifyExt::SupplierAdmin methods
00082   CosNotifyChannelAdmin::ProxyConsumer_ptr
00083   obtain_notification_push_consumer_with_qos (
00084       CosNotifyChannelAdmin::ClientType ctype,
00085       CosNotifyChannelAdmin::ProxyID_out proxy_id,
00086       const CosNotification::QoSProperties & initial_qos);
00087 
00088   /// = CosNotifyChannelAdmin::SupplierAdmin methods
00089   virtual CosNotifyChannelAdmin::AdminID MyID (void);
00090 
00091   virtual ::CosNotifyChannelAdmin::EventChannel_ptr MyChannel (void);
00092 
00093   virtual ::CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator (void);
00094 
00095   virtual ::CosNotifyChannelAdmin::ProxyIDSeq * pull_consumers (void);
00096 
00097   virtual ::CosNotifyChannelAdmin::ProxyIDSeq * push_consumers (void);
00098 
00099   virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr get_proxy_consumer (
00100       CosNotifyChannelAdmin::ProxyID proxy_id);
00101 
00102   virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr
00103   obtain_notification_pull_consumer (
00104       CosNotifyChannelAdmin::ClientType ctype,
00105       CosNotifyChannelAdmin::ProxyID_out proxy_id);
00106 
00107   virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr
00108   obtain_notification_push_consumer (
00109       CosNotifyChannelAdmin::ClientType ctype,
00110       CosNotifyChannelAdmin::ProxyID_out proxy_id);
00111 
00112   virtual ::CosNotification::QoSProperties* get_qos (void);
00113 
00114   virtual void set_qos (const CosNotification::QoSProperties& qos);
00115 
00116   virtual void validate_qos (
00117       const CosNotification::QoSProperties & required_qos,
00118       CosNotification::NamedPropertyRangeSeq_out available_qos);
00119 
00120   virtual void offer_change (const CosNotification::EventTypeSeq & added,
00121                              const CosNotification::EventTypeSeq & removed);
00122 
00123   virtual CosNotifyFilter::FilterID add_filter (
00124       CosNotifyFilter::Filter_ptr new_filter);
00125 
00126   virtual void remove_filter (CosNotifyFilter::FilterID filter);
00127 
00128   virtual ::CosNotifyFilter::Filter_ptr get_filter (
00129       CosNotifyFilter::FilterID filter);
00130 
00131   virtual ::CosNotifyFilter::FilterIDSeq * get_all_filters (void);
00132 
00133   virtual void remove_all_filters (void);
00134 
00135   virtual ::CosEventChannelAdmin::ProxyPushConsumer_ptr obtain_push_consumer ();
00136 
00137   virtual ::CosEventChannelAdmin::ProxyPullConsumer_ptr obtain_pull_consumer ();
00138 
00139 private:
00140   /// Release
00141   virtual void release (void);
00142 };
00143 
00144 TAO_END_VERSIONED_NAMESPACE_DECL
00145 
00146 #if defined(_MSC_VER)
00147 #pragma warning(pop)
00148 #endif /* _MSC_VER */
00149 
00150 #include /**/ "ace/post.h"
00151 
00152 #endif /* TAO_Notify_SUPPLIERADMIN_H */

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