TAO_Notify_ProxySupplier_T< SERVANT_TYPE > Class Template Reference

#include <ProxySupplier_T.h>

Inheritance diagram for TAO_Notify_ProxySupplier_T< SERVANT_TYPE >:

Inheritance graph
[legend]
Collaboration diagram for TAO_Notify_ProxySupplier_T< SERVANT_TYPE >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Notify_ProxySupplier_T (void)
 Constuctor.

 ~TAO_Notify_ProxySupplier_T ()
 Destructor.

virtual void admin_types_changed (const CosNotification::EventTypeSeq &added, const CosNotification::EventTypeSeq &removed)
 Notification of subscriptions set at the admin.

virtual void forward_structured (const CosNotification::StructuredEvent &event) throw ( CORBA::SystemException )
virtual void forward_structured_no_filtering (const CosNotification::StructuredEvent &event) throw ( CORBA::SystemException )
 POA_Notify_Internal::Event_Forwarder method.

virtual void forward_any (const CORBA::Any &event) throw ( CORBA::SystemException )
 POA_Notify_Internal::Event_Forwarder method.

virtual void forward_any_no_filtering (const CORBA::Any &event) throw ( CORBA::SystemException )
 POA_Notify_Internal::Event_Forwarder method.


Protected Member Functions

virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr MyAdmin () throw ( CORBA::SystemException )
virtual void suspend_connection () throw ( CORBA::SystemException, CosNotifyChannelAdmin::ConnectionAlreadyInactive, CosNotifyChannelAdmin::NotConnected )
virtual void resume_connection () throw ( CORBA::SystemException, CosNotifyChannelAdmin::ConnectionAlreadyActive, CosNotifyChannelAdmin::NotConnected )
virtual CosNotifyFilter::MappingFilter_ptr priority_filter () throw ( CORBA::SystemException )
virtual void priority_filter (CosNotifyFilter::MappingFilter_ptr priority_filter) throw ( CORBA::SystemException )
virtual CosNotifyFilter::MappingFilter_ptr lifetime_filter () throw ( CORBA::SystemException )
virtual void lifetime_filter (CosNotifyFilter::MappingFilter_ptr lifetime_filter) throw ( CORBA::SystemException )
virtual CosNotification::EventTypeSeqobtain_offered_types (CosNotifyChannelAdmin::ObtainInfoMode mode) throw ( CORBA::SystemException )
virtual void subscription_change (const CosNotification::EventTypeSeq &added, const CosNotification::EventTypeSeq &removed) throw ( CORBA::SystemException, CosNotifyComm::InvalidEventType )

Protected Attributes

CORBA::Boolean is_suspended_

template<class SERVANT_TYPE>
class TAO_Notify_ProxySupplier_T< SERVANT_TYPE >


Constructor & Destructor Documentation

template<class SERVANT_TYPE>
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::TAO_Notify_ProxySupplier_T void   ) 
 

Constuctor.

Definition at line 20 of file ProxySupplier_T.cpp.

00021   : is_suspended_ (0)
00022 {
00023 }

template<class SERVANT_TYPE>
TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::~TAO_Notify_ProxySupplier_T  ) 
 

Destructor.

Definition at line 26 of file ProxySupplier_T.cpp.

00027 {
00028 }


Member Function Documentation

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::admin_types_changed const CosNotification::EventTypeSeq added,
const CosNotification::EventTypeSeq removed
[virtual]
 

Notification of subscriptions set at the admin.

Implements TAO_Notify_Proxy.

Definition at line 31 of file ProxySupplier_T.cpp.

References ACE_ENV_ARG_PARAMETER, CosNotification::EventTypeSeq, and TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::subscription_change().

00034 {
00035   this->subscription_change (added, removed ACE_ENV_ARG_PARAMETER);
00036 }

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::forward_any const CORBA::Any &  event  )  throw ( CORBA::SystemException ) [virtual]
 

POA_Notify_Internal::Event_Forwarder method.

Definition at line 65 of file ProxySupplier_T.cpp.

References ACE_ENV_ARG_PARAMETER.

00069 {
00070   TAO_Notify_AnyEvent_No_Copy event (any);
00071 
00072   TAO_Notify_Method_Request_Dispatch_No_Copy request (&event, this, 1);
00073 
00074   this->execute_task (request ACE_ENV_ARG_PARAMETER);
00075 }

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::forward_any_no_filtering const CORBA::Any &  event  )  throw ( CORBA::SystemException ) [virtual]
 

POA_Notify_Internal::Event_Forwarder method.

Definition at line 78 of file ProxySupplier_T.cpp.

References ACE_ENV_ARG_PARAMETER.

00082 {
00083   TAO_Notify_AnyEvent_No_Copy event(any);
00084 
00085   TAO_Notify_Method_Request_Dispatch_No_Copy request (&event, this, 0);
00086 
00087   this->execute_task (request ACE_ENV_ARG_PARAMETER);
00088 }

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::forward_structured const CosNotification::StructuredEvent event  )  throw ( CORBA::SystemException ) [virtual]
 

= POA_Notify_Internal methods POA_Notify_Internal::Event_Forwarder method

Definition at line 39 of file ProxySupplier_T.cpp.

References ACE_ENV_ARG_PARAMETER.

00043 {
00044   TAO_Notify_StructuredEvent_No_Copy event (notification);
00045 
00046   TAO_Notify_Method_Request_Dispatch_No_Copy request (&event, this, 1);
00047 
00048   this->execute_task (request ACE_ENV_ARG_PARAMETER);
00049 }

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::forward_structured_no_filtering const CosNotification::StructuredEvent event  )  throw ( CORBA::SystemException ) [virtual]
 

POA_Notify_Internal::Event_Forwarder method.

Definition at line 52 of file ProxySupplier_T.cpp.

References ACE_ENV_ARG_PARAMETER.

00056 {
00057   TAO_Notify_StructuredEvent_No_Copy event(notification);
00058 
00059   TAO_Notify_Method_Request_Dispatch_No_Copy request (&event, this, 0);
00060 
00061   this->execute_task (request ACE_ENV_ARG_PARAMETER);
00062 }

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::lifetime_filter CosNotifyFilter::MappingFilter_ptr  lifetime_filter  )  throw ( CORBA::SystemException ) [protected, virtual]
 

Definition at line 217 of file ProxySupplier_T.cpp.

References ACE_THROW.

00221 {
00222   ACE_THROW (CORBA::NO_IMPLEMENT ());
00223 }

template<class SERVANT_TYPE>
CosNotifyFilter::MappingFilter_ptr TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::lifetime_filter  )  throw ( CORBA::SystemException ) [protected, virtual]
 

Definition at line 205 of file ProxySupplier_T.cpp.

References ACE_THROW_RETURN.

00209 {
00210   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (),
00211                     CosNotifyFilter::MappingFilter::_nil ());
00212 
00213   return CosNotifyFilter::MappingFilter::_nil ();
00214 }

template<class SERVANT_TYPE>
CosNotifyChannelAdmin::ConsumerAdmin_ptr TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::MyAdmin  )  throw ( CORBA::SystemException ) [protected, virtual]
 

Definition at line 166 of file ProxySupplier_T.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and ACE_ENV_SINGLE_ARG_PARAMETER.

00170 {
00171   CosNotifyChannelAdmin::ConsumerAdmin_var ret;
00172 
00173   CORBA::Object_var object = this->consumer_admin().ref (ACE_ENV_SINGLE_ARG_PARAMETER);
00174   ACE_CHECK_RETURN (ret._retn ());
00175 
00176   ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
00177 
00178   return ret._retn ();
00179 }

template<class SERVANT_TYPE>
CosNotification::EventTypeSeq * TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::obtain_offered_types CosNotifyChannelAdmin::ObtainInfoMode  mode  )  throw ( CORBA::SystemException ) [protected, virtual]
 

Definition at line 91 of file ProxySupplier_T.cpp.

References ACE_ENV_ARG_PARAMETER.

00095 {
00096   return this->obtain_types (mode, this->event_manager().offered_types () ACE_ENV_ARG_PARAMETER);
00097 }

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::priority_filter CosNotifyFilter::MappingFilter_ptr  priority_filter  )  throw ( CORBA::SystemException ) [protected, virtual]
 

Definition at line 196 of file ProxySupplier_T.cpp.

References ACE_THROW.

00200 {
00201   ACE_THROW (CORBA::NO_IMPLEMENT ());
00202 }

template<class SERVANT_TYPE>
CosNotifyFilter::MappingFilter_ptr TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::priority_filter  )  throw ( CORBA::SystemException ) [protected, virtual]
 

Definition at line 184 of file ProxySupplier_T.cpp.

References ACE_THROW_RETURN.

00188 {
00189   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (),
00190                     CosNotifyFilter::MappingFilter::_nil ());
00191 
00192   return CosNotifyFilter::MappingFilter::_nil ();
00193 }

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::resume_connection  )  throw ( CORBA::SystemException, CosNotifyChannelAdmin::ConnectionAlreadyActive, CosNotifyChannelAdmin::NotConnected ) [protected, virtual]
 

Definition at line 145 of file ProxySupplier_T.cpp.

References ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_THROW_EX, ACE_THROW, and TAO_SYNCH_MUTEX.

00151 {
00152   {
00153     ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, CORBA::INTERNAL ());
00154 
00155     if (this->is_connected () == 0)
00156       ACE_THROW (CosNotifyChannelAdmin::NotConnected ());
00157 
00158     if (this->consumer()->is_suspended () == 0)
00159       ACE_THROW (CosNotifyChannelAdmin::ConnectionAlreadyActive ());
00160   }
00161 
00162   this->consumer()->resume (ACE_ENV_SINGLE_ARG_PARAMETER);
00163 }

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::subscription_change const CosNotification::EventTypeSeq added,
const CosNotification::EventTypeSeq removed
throw ( CORBA::SystemException, CosNotifyComm::InvalidEventType ) [protected, virtual]
 

Definition at line 100 of file ProxySupplier_T.cpp.

References ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_GUARD_THROW_EX, CosNotification::EventTypeSeq, and TAO_SYNCH_MUTEX.

Referenced by TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::admin_types_changed().

00105 {
00106   TAO_Notify_EventTypeSeq seq_added (added);
00107   TAO_Notify_EventTypeSeq seq_removed (removed);
00108 
00109   {
00110     ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
00111                         CORBA::INTERNAL ());
00112     ACE_CHECK;
00113 
00114     this->subscribed_types_.add_and_remove (seq_added, seq_removed);
00115   }
00116 
00117   this->event_manager().subscription_change (this, seq_added, seq_removed ACE_ENV_ARG_PARAMETER);
00118 }

template<class SERVANT_TYPE>
void TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::suspend_connection  )  throw ( CORBA::SystemException, CosNotifyChannelAdmin::ConnectionAlreadyInactive, CosNotifyChannelAdmin::NotConnected ) [protected, virtual]
 

Definition at line 121 of file ProxySupplier_T.cpp.

References ACE_CHECK, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_THROW_EX, ACE_THROW, and TAO_SYNCH_MUTEX.

00127 {
00128   {
00129     ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, CORBA::INTERNAL ());
00130 
00131     if (this->is_connected () == 0)
00132       ACE_THROW (CosNotifyChannelAdmin::NotConnected ());
00133 
00134     if (this->consumer()->is_suspended () == 1)
00135       ACE_THROW (CosNotifyChannelAdmin::ConnectionAlreadyInactive ());
00136   }
00137 
00138   this->consumer()->suspend (ACE_ENV_SINGLE_ARG_PARAMETER);
00139   ACE_CHECK;
00140   this->self_change (ACE_ENV_SINGLE_ARG_PARAMETER);
00141   ACE_CHECK;
00142 }


Member Data Documentation

template<class SERVANT_TYPE>
CORBA::Boolean TAO_Notify_ProxySupplier_T< SERVANT_TYPE >::is_suspended_ [protected]
 

Definition at line 73 of file ProxySupplier_T.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 13:32:54 2006 for TAO_CosNotification by doxygen 1.3.6