Proxy_T.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file Proxy_T.h
00005  *
00006  *  Proxy_T.h,v 1.10 2006/03/14 06:14:34 jtc Exp
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   /// Constuctor
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 (ACE_ENV_SINGLE_ARG_DECL);
00052   virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL);
00053 
00054   virtual void validate_event_qos (
00055     const CosNotification::QoSProperties & required_qos,
00056     CosNotification::NamedPropertyRangeSeq_out available_qos
00057     ACE_ENV_ARG_DECL
00058   )
00059   ACE_THROW_SPEC ((
00060     CORBA::SystemException,
00061     CosNotification::UnsupportedQoS
00062   ));
00063 
00064  virtual CosNotification::QoSProperties * get_qos (
00065     ACE_ENV_SINGLE_ARG_DECL
00066   )
00067   ACE_THROW_SPEC ((
00068     CORBA::SystemException
00069   ));
00070 
00071   virtual void set_qos (
00072     const CosNotification::QoSProperties & qos
00073     ACE_ENV_ARG_DECL
00074   )
00075   ACE_THROW_SPEC ((
00076     CORBA::SystemException,
00077     CosNotification::UnsupportedQoS
00078   ));
00079 
00080   virtual void validate_qos (
00081     const CosNotification::QoSProperties & required_qos,
00082     CosNotification::NamedPropertyRangeSeq_out available_qos
00083     ACE_ENV_ARG_DECL
00084   )
00085   ACE_THROW_SPEC ((
00086     CORBA::SystemException,
00087     CosNotification::UnsupportedQoS
00088   ));
00089 
00090   virtual CosNotifyFilter::FilterID add_filter (
00091     CosNotifyFilter::Filter_ptr new_filter
00092     ACE_ENV_ARG_DECL
00093   )
00094   ACE_THROW_SPEC ((
00095     CORBA::SystemException
00096   ));
00097 
00098   virtual void remove_filter (
00099     CosNotifyFilter::FilterID filter
00100     ACE_ENV_ARG_DECL
00101   )
00102   ACE_THROW_SPEC ((
00103     CORBA::SystemException,
00104     CosNotifyFilter::FilterNotFound
00105   ));
00106 
00107   virtual CosNotifyFilter::Filter_ptr get_filter (
00108     CosNotifyFilter::FilterID filter
00109     ACE_ENV_ARG_DECL
00110   )
00111   ACE_THROW_SPEC ((
00112     CORBA::SystemException,
00113     CosNotifyFilter::FilterNotFound
00114   ));
00115 
00116   virtual CosNotifyFilter::FilterIDSeq * get_all_filters (
00117     ACE_ENV_SINGLE_ARG_DECL
00118   )
00119   ACE_THROW_SPEC ((
00120     CORBA::SystemException
00121   ));
00122 
00123   virtual void remove_all_filters (
00124     ACE_ENV_SINGLE_ARG_DECL
00125   )
00126   ACE_THROW_SPEC ((
00127     CORBA::SystemException
00128   ));
00129 };
00130 
00131 #if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
00132 template class TAO_Notify_Serv_Export
00133 TAO_Notify_Proxy_T<POA_Event_Forwarder::StructuredProxyPushSupplier>;
00134 template class TAO_Notify_Serv_Export
00135 TAO_Notify_Proxy_T<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>;
00136 template class TAO_Notify_Serv_Export
00137 TAO_Notify_Proxy_T<POA_Event_Forwarder::ProxyPushSupplier>;
00138 template class TAO_Notify_Serv_Export
00139 TAO_Notify_Proxy_T<POA_CosEventChannelAdmin::ProxyPushSupplier>;
00140 template class TAO_Notify_Serv_Export
00141 TAO_Notify_Proxy_T<POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer>;
00142 template class TAO_Notify_Serv_Export
00143 TAO_Notify_Proxy_T<POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer>;
00144 template class TAO_Notify_Serv_Export
00145 TAO_Notify_Proxy_T<POA_CosNotifyChannelAdmin::ProxyPushConsumer>;
00146 template class TAO_Notify_Serv_Export
00147 TAO_Notify_Proxy_T<POA_CosEventChannelAdmin::ProxyPushConsumer>;
00148 #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */
00149 
00150 TAO_END_VERSIONED_NAMESPACE_DECL
00151 
00152 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00153 #include "orbsvcs/Notify/Proxy_T.cpp"
00154 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
00155 
00156 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00157 #pragma implementation ("Proxy_T.cpp")
00158 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
00159 
00160 #include /**/ "ace/post.h"
00161 #endif /* TAO_Notify_PROXY_T_H */

Generated on Thu Nov 9 13:24:14 2006 for TAO_CosNotification by doxygen 1.3.6