Proxy_T.cpp

Go to the documentation of this file.
00001 // Proxy_T.cpp,v 1.10 2006/03/14 06:14:34 jtc Exp
00002 
00003 #include "orbsvcs/Notify/Proxy_T.h"
00004 
00005 #ifndef TAO_Notify_PROXY_T_CPP
00006 #define TAO_Notify_PROXY_T_CPP
00007 
00008 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00009 
00010 template <class SERVANT_TYPE>
00011 TAO_Notify_Proxy_T<SERVANT_TYPE>::TAO_Notify_Proxy_T (void)
00012 {
00013   // Any object that is used by the POA gets a reference count of 1 at construction
00014   this->_incr_refcnt();
00015 }
00016 
00017 template <class SERVANT_TYPE>
00018 TAO_Notify_Proxy_T<SERVANT_TYPE>::~TAO_Notify_Proxy_T ()
00019 {
00020 }
00021 
00022 template <class SERVANT_TYPE> PortableServer::Servant
00023 TAO_Notify_Proxy_T<SERVANT_TYPE>::servant (void)
00024 {
00025   return this;
00026 }
00027 
00028 template <class SERVANT_TYPE> void
00029 TAO_Notify_Proxy_T<SERVANT_TYPE>::_add_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
00030 {
00031   this->_incr_refcnt ();
00032 }
00033 
00034 template <class SERVANT_TYPE> void
00035 TAO_Notify_Proxy_T<SERVANT_TYPE>::_remove_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
00036 {
00037   this->_decr_refcnt ();
00038 }
00039 
00040 template <class SERVANT_TYPE> void
00041 TAO_Notify_Proxy_T<SERVANT_TYPE>::validate_event_qos (const CosNotification::QoSProperties & /*required_qos*/, CosNotification::NamedPropertyRangeSeq_out /*available_qos*/ ACE_ENV_ARG_DECL)
00042   ACE_THROW_SPEC ((
00043                    CORBA::SystemException,
00044                    CosNotification::UnsupportedQoS
00045                    ))
00046 {
00047   ACE_THROW (CORBA::NO_IMPLEMENT ());
00048 }
00049 
00050 template <class SERVANT_TYPE> CosNotification::QoSProperties*
00051 TAO_Notify_Proxy_T<SERVANT_TYPE>::get_qos (ACE_ENV_SINGLE_ARG_DECL)
00052   ACE_THROW_SPEC ((
00053                    CORBA::SystemException
00054                    ))
00055 {
00056   ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
00057                       CORBA::INTERNAL ());
00058   ACE_CHECK_RETURN (0);
00059 
00060   return this->TAO_Notify_Object::get_qos (ACE_ENV_SINGLE_ARG_PARAMETER);
00061 }
00062 
00063 template <class SERVANT_TYPE> void
00064 TAO_Notify_Proxy_T<SERVANT_TYPE>::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL)
00065   ACE_THROW_SPEC ((
00066                    CORBA::SystemException,
00067                    CosNotification::UnsupportedQoS
00068                    ))
00069 {
00070   ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
00071                       CORBA::INTERNAL ());
00072 
00073   this->TAO_Notify_Object::set_qos (qos ACE_ENV_ARG_PARAMETER);
00074 }
00075 
00076 template <class SERVANT_TYPE> void
00077 TAO_Notify_Proxy_T<SERVANT_TYPE>::validate_qos (
00078                                             const CosNotification::QoSProperties & /*required_qos*/,
00079                                             CosNotification::NamedPropertyRangeSeq_out /*available_qos*/
00080     ACE_ENV_ARG_DECL
00081     )
00082   ACE_THROW_SPEC ((
00083                    CORBA::SystemException,
00084                    CosNotification::UnsupportedQoS
00085                    ))
00086 {
00087   ACE_THROW (CORBA::NO_IMPLEMENT ());
00088 }
00089 
00090 template <class SERVANT_TYPE> CosNotifyFilter::FilterID
00091 TAO_Notify_Proxy_T<SERVANT_TYPE>::add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL)
00092   ACE_THROW_SPEC ((
00093                    CORBA::SystemException
00094                    ))
00095 {
00096   ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
00097                       CORBA::INTERNAL ());
00098   ACE_CHECK_RETURN (0);
00099 
00100   CosNotifyFilter::FilterID fid =
00101     this->filter_admin_.add_filter (new_filter ACE_ENV_ARG_PARAMETER);
00102   ACE_CHECK_RETURN(0);
00103   this->self_change (ACE_ENV_SINGLE_ARG_PARAMETER);
00104   ACE_CHECK_RETURN(fid);
00105   return fid;
00106 }
00107 
00108 template <class SERVANT_TYPE> void
00109 TAO_Notify_Proxy_T<SERVANT_TYPE>::remove_filter (
00110     CosNotifyFilter::FilterID filter
00111     ACE_ENV_ARG_DECL
00112   )
00113   ACE_THROW_SPEC ((
00114                    CORBA::SystemException,
00115                    CosNotifyFilter::FilterNotFound
00116                    ))
00117 {
00118   ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
00119                       CORBA::INTERNAL ());
00120 
00121   this->filter_admin_.remove_filter (filter ACE_ENV_ARG_PARAMETER);
00122 }
00123 
00124 template <class SERVANT_TYPE> CosNotifyFilter::Filter_ptr
00125 TAO_Notify_Proxy_T<SERVANT_TYPE>::get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL)
00126   ACE_THROW_SPEC ((
00127                    CORBA::SystemException,
00128                    CosNotifyFilter::FilterNotFound
00129                    ))
00130 {
00131   ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
00132                       CORBA::INTERNAL ());
00133   ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ());
00134 
00135   return this->filter_admin_.get_filter (filter ACE_ENV_ARG_PARAMETER);
00136 }
00137 
00138 template <class SERVANT_TYPE> CosNotifyFilter::FilterIDSeq*
00139 TAO_Notify_Proxy_T<SERVANT_TYPE>::get_all_filters (ACE_ENV_SINGLE_ARG_DECL)
00140   ACE_THROW_SPEC ((
00141                    CORBA::SystemException
00142                    ))
00143 {
00144   ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
00145                       CORBA::INTERNAL ());
00146   ACE_CHECK_RETURN (0);
00147 
00148   return this->filter_admin_.get_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER);
00149 }
00150 
00151 template <class SERVANT_TYPE> void
00152 TAO_Notify_Proxy_T<SERVANT_TYPE>::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL)
00153   ACE_THROW_SPEC ((
00154                    CORBA::SystemException
00155                    ))
00156 {
00157   ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
00158                       CORBA::INTERNAL ());
00159 
00160   this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER);
00161 }
00162 
00163 TAO_END_VERSIONED_NAMESPACE_DECL
00164 
00165 #endif /* TAO_Notify_PROXY_T_CPP */

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