EC_ProxySupplier.i

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // EC_ProxySupplier.i,v 1.10 2005/11/24 11:05:44 ossama Exp
00004 
00005 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00006 
00007 ACE_INLINE void
00008 TAO_EC_ProxyPushSupplier::suspend_connection_i (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
00009     ACE_THROW_SPEC ((CORBA::SystemException))
00010 {
00011   this->suspended_ = 1;
00012 }
00013 
00014 ACE_INLINE void
00015 TAO_EC_ProxyPushSupplier::suspend_connection_locked (ACE_ENV_SINGLE_ARG_DECL)
00016     ACE_THROW_SPEC ((CORBA::SystemException))
00017 {
00018   ACE_GUARD_THROW_EX (
00019             ACE_Lock, ace_mon, *this->lock_,
00020             CORBA::INTERNAL ());
00021   // @@ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
00022   ACE_CHECK;
00023 
00024   this->suspend_connection_i (ACE_ENV_SINGLE_ARG_PARAMETER);
00025 }
00026 
00027 ACE_INLINE void
00028 TAO_EC_ProxyPushSupplier::resume_connection_i (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
00029     ACE_THROW_SPEC ((CORBA::SystemException))
00030 {
00031   this->suspended_ = 0;
00032 }
00033 
00034 ACE_INLINE void
00035 TAO_EC_ProxyPushSupplier::resume_connection_locked (ACE_ENV_SINGLE_ARG_DECL)
00036     ACE_THROW_SPEC ((CORBA::SystemException))
00037 {
00038   ACE_GUARD_THROW_EX (
00039             ACE_Lock, ace_mon, *this->lock_,
00040             CORBA::INTERNAL ());
00041   // @@ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
00042   ACE_CHECK;
00043 
00044   this->resume_connection_i (ACE_ENV_SINGLE_ARG_PARAMETER);
00045 }
00046 
00047 ACE_INLINE CORBA::Boolean
00048 TAO_EC_ProxyPushSupplier::is_connected_i (void) const
00049 {
00050   return !CORBA::is_nil (this->consumer_.in ());
00051 }
00052 
00053 ACE_INLINE CORBA::Boolean
00054 TAO_EC_ProxyPushSupplier::is_connected (void) const
00055 {
00056   ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->lock_, 0);
00057 
00058   return this->is_connected_i ();
00059 }
00060 
00061 ACE_INLINE CORBA::Boolean
00062 TAO_EC_ProxyPushSupplier::is_suspended (void) const
00063 {
00064   ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->lock_, 0);
00065 
00066   return this->suspended_;
00067 }
00068 
00069 ACE_INLINE RtecEventComm::PushConsumer_ptr
00070 TAO_EC_ProxyPushSupplier::consumer (void) const
00071 {
00072   ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->lock_, 0);
00073   return RtecEventComm::PushConsumer::_duplicate (this->consumer_.in ());
00074 }
00075 
00076 ACE_INLINE void
00077 TAO_EC_ProxyPushSupplier::consumer_i (RtecEventComm::PushConsumer_ptr consumer)
00078 {
00079   this->consumer_ = consumer;
00080 }
00081 
00082 ACE_INLINE void
00083 TAO_EC_ProxyPushSupplier::consumer (RtecEventComm::PushConsumer_ptr consumer)
00084 {
00085   ACE_GUARD (ACE_Lock, ace_mon, *this->lock_);
00086 
00087   this->consumer_i (consumer);
00088 }
00089 
00090 ACE_INLINE const RtecEventChannelAdmin::ConsumerQOS&
00091 TAO_EC_ProxyPushSupplier::subscriptions (void) const
00092 {
00093   // @@ TODO There should be a better way to signal errors here.
00094   ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->lock_, this->qos_);
00095 
00096   return this->qos_;
00097 }
00098 
00099 TAO_END_VERSIONED_NAMESPACE_DECL

Generated on Thu Nov 9 13:11:09 2006 for TAO_RTEvent by doxygen 1.3.6