00001
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
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 & , CosNotification::NamedPropertyRangeSeq_out 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 & ,
00079 CosNotification::NamedPropertyRangeSeq_out
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