Proxy_T.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file Proxy_T.h
00005  *
00006  *  $Id: Proxy_T.h 81422 2008-04-24 12:33:29Z johnnyw $
00007  *
00008  *  @author Pradeep Gore <pradeep@oomworks.com>
00009  *
00010  *
00011  */
00012 
00013 #ifndef TAO_Notify_PROXY_T_H
00014 #define TAO_Notify_PROXY_T_H
00015 
00016 #include /**/ "ace/pre.h"
00017 
00018 #include "orbsvcs/Notify/notify_serv_export.h"
00019 
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif /* ACE_LACKS_PRAGMA_ONCE */
00023 
00024 #include "orbsvcs/Notify/Proxy.h"
00025 
00026 
00027 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00028 
00029 /**
00030  * @class TAO_Notify_Proxy_T
00031  *
00032  * @brief The is a base class for all proxys , templatized by the servant
00033  * type. All the Filter Admin and QoS Admin interface methods are
00034  * implemented here by delegating to the admin implementations.
00035  *
00036  */
00037 template <class SERVANT_TYPE>
00038 class TAO_Notify_Proxy_T : public SERVANT_TYPE, public virtual TAO_Notify_Proxy
00039 {
00040 public:
00041   /// Constructor
00042   TAO_Notify_Proxy_T (void);
00043 
00044   /// Destructor
00045   ~TAO_Notify_Proxy_T ();
00046 
00047   /// Implements TAO_Notify_Object::servant method.
00048   virtual PortableServer::Servant servant (void);
00049 
00050   /// ServantBase refcount methods.
00051   virtual void _add_ref (void);
00052   virtual void _remove_ref (void);
00053 
00054   virtual void validate_event_qos (
00055     const CosNotification::QoSProperties & required_qos,
00056     CosNotification::NamedPropertyRangeSeq_out available_qos
00057   );
00058 
00059  virtual CosNotification::QoSProperties * get_qos (
00060   );
00061 
00062   virtual void set_qos (
00063     const CosNotification::QoSProperties & qos
00064   );
00065 
00066   virtual void validate_qos (
00067     const CosNotification::QoSProperties & required_qos,
00068     CosNotification::NamedPropertyRangeSeq_out available_qos
00069   );
00070 
00071   virtual CosNotifyFilter::FilterID add_filter (
00072     CosNotifyFilter::Filter_ptr new_filter
00073   );
00074 
00075   virtual void remove_filter (
00076     CosNotifyFilter::FilterID filter
00077   );
00078 
00079   virtual CosNotifyFilter::Filter_ptr get_filter (
00080     CosNotifyFilter::FilterID filter
00081   );
00082 
00083   virtual CosNotifyFilter::FilterIDSeq * get_all_filters (
00084   );
00085 
00086   virtual void remove_all_filters (
00087   );
00088 };
00089 
00090 #if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
00091 template class TAO_Notify_Serv_Export
00092 TAO_Notify_Proxy_T<POA_Event_Forwarder::StructuredProxyPushSupplier>;
00093 template class TAO_Notify_Serv_Export
00094 TAO_Notify_Proxy_T<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>;
00095 template class TAO_Notify_Serv_Export
00096 TAO_Notify_Proxy_T<POA_Event_Forwarder::ProxyPushSupplier>;
00097 template class TAO_Notify_Serv_Export
00098 TAO_Notify_Proxy_T<POA_CosEventChannelAdmin::ProxyPushSupplier>;
00099 template class TAO_Notify_Serv_Export
00100 TAO_Notify_Proxy_T<POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer>;
00101 template class TAO_Notify_Serv_Export
00102 TAO_Notify_Proxy_T<POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer>;
00103 template class TAO_Notify_Serv_Export
00104 TAO_Notify_Proxy_T<POA_CosNotifyChannelAdmin::ProxyPushConsumer>;
00105 template class TAO_Notify_Serv_Export
00106 TAO_Notify_Proxy_T<POA_CosEventChannelAdmin::ProxyPushConsumer>;
00107 #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */
00108 
00109 TAO_END_VERSIONED_NAMESPACE_DECL
00110 
00111 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00112 #include "orbsvcs/Notify/Proxy_T.cpp"
00113 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
00114 
00115 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00116 #pragma implementation ("Proxy_T.cpp")
00117 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
00118 
00119 #include /**/ "ace/post.h"
00120 #endif /* TAO_Notify_PROXY_T_H */

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