00001 // -*- C++ -*- 00002 00003 /** 00004 * @file ProxySupplier_T.h 00005 * 00006 * $Id: ProxySupplier_T.h 81422 2008-04-24 12:33:29Z johnnyw $ 00007 * 00008 * @author Pradeep Gore <pradeep@oomworks.com> 00009 */ 00010 00011 #ifndef TAO_Notify_PROXYSUPPLIER_T_H 00012 #define TAO_Notify_PROXYSUPPLIER_T_H 00013 #include /**/ "ace/pre.h" 00014 00015 #include "orbsvcs/Notify/notify_serv_export.h" 00016 00017 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00018 # pragma once 00019 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00020 00021 #include "orbsvcs/Notify/Proxy_T.h" 00022 #include "orbsvcs/Notify/ProxySupplier.h" 00023 00024 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00025 00026 /** 00027 * @class TAO_Notify_ProxySupplier_T 00028 * 00029 * @brief 00030 * 00031 */ 00032 template <class SERVANT_TYPE> 00033 class TAO_Notify_ProxySupplier_T : public virtual TAO_Notify_Proxy_T <SERVANT_TYPE>, public virtual TAO_Notify_ProxySupplier 00034 { 00035 public: 00036 /// Constructor 00037 TAO_Notify_ProxySupplier_T (void); 00038 00039 /// Destructor 00040 ~TAO_Notify_ProxySupplier_T (); 00041 00042 /// Notification of subscriptions set at the admin. 00043 virtual void admin_types_changed (const CosNotification::EventTypeSeq & added, 00044 const CosNotification::EventTypeSeq & removed); 00045 00046 ///= POA_Notify_Internal methods 00047 /// POA_Notify_Internal::Event_Forwarder method 00048 virtual void forward_structured (const CosNotification::StructuredEvent & event); 00049 00050 /// POA_Notify_Internal::Event_Forwarder method 00051 virtual void forward_structured_no_filtering (const CosNotification::StructuredEvent & event); 00052 00053 /// POA_Notify_Internal::Event_Forwarder method 00054 virtual void forward_any (const CORBA::Any & event); 00055 00056 /// POA_Notify_Internal::Event_Forwarder method 00057 virtual void forward_any_no_filtering (const CORBA::Any & event); 00058 protected: 00059 //= Data Members 00060 CORBA::Boolean is_suspended_; 00061 00062 // = Interface methods 00063 virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr MyAdmin ( 00064 ); 00065 00066 virtual void suspend_connection ( 00067 ); 00068 00069 virtual void resume_connection ( 00070 ); 00071 00072 virtual CosNotifyFilter::MappingFilter_ptr priority_filter ( 00073 ); 00074 00075 virtual void priority_filter ( 00076 CosNotifyFilter::MappingFilter_ptr priority_filter 00077 ); 00078 00079 virtual CosNotifyFilter::MappingFilter_ptr lifetime_filter ( 00080 ); 00081 00082 virtual void lifetime_filter ( 00083 CosNotifyFilter::MappingFilter_ptr lifetime_filter 00084 ); 00085 00086 virtual CosNotification::EventTypeSeq * obtain_offered_types ( 00087 CosNotifyChannelAdmin::ObtainInfoMode mode 00088 ); 00089 00090 virtual void subscription_change ( 00091 const CosNotification::EventTypeSeq & added, 00092 const CosNotification::EventTypeSeq & removed 00093 ); 00094 }; 00095 00096 TAO_END_VERSIONED_NAMESPACE_DECL 00097 00098 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) 00099 #include "orbsvcs/Notify/ProxySupplier_T.cpp" 00100 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ 00101 00102 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) 00103 #pragma implementation ("ProxySupplier_T.cpp") 00104 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ 00105 00106 #include /**/ "ace/post.h" 00107 #endif /* TAO_Notify_PROXYSUPPLIER_T_H */