00001 // $Id: EC_TPC_ProxyConsumer.cpp 81419 2008-04-24 11:35:22Z johnnyw $ 00002 00003 #include "orbsvcs/Event/EC_TPC_ProxyConsumer.h" 00004 00005 ACE_RCSID(Event, EC_TPC_ProxyConsumer, "$Id: EC_TPC_ProxyConsumer.cpp 81419 2008-04-24 11:35:22Z johnnyw $") 00006 00007 #include "orbsvcs/Event/EC_Event_Channel_Base.h" 00008 #include "orbsvcs/Event/EC_TPC_Dispatching.h" 00009 00010 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00011 00012 extern unsigned long TAO_EC_TPC_debug_level; 00013 00014 TAO_EC_TPC_ProxyPushConsumer::TAO_EC_TPC_ProxyPushConsumer (TAO_EC_Event_Channel_Base* ec) 00015 : TAO_EC_Default_ProxyPushConsumer (ec) 00016 { 00017 } 00018 00019 TAO_EC_TPC_Dispatching* 00020 TAO_EC_TPC_ProxyPushConsumer::tpc_dispatching (void) 00021 { 00022 TAO_EC_Dispatching* dispatcher = this->event_channel_->dispatching (); 00023 TAO_EC_TPC_Dispatching* tpcdispatcher = 00024 dynamic_cast<TAO_EC_TPC_Dispatching*>(dispatcher); 00025 return tpcdispatcher; 00026 } 00027 00028 TAO_EC_TPC_ProxyPushConsumer::~TAO_EC_TPC_ProxyPushConsumer (void) 00029 { 00030 // @@@ Do I need to call the logic to remove the consumer from the 00031 // dispatch map in here? I'm not sure... But, if I do, then I need 00032 // to fact that "remove" code out of just the 00033 // disconnect_push_consumer. 00034 if (TAO_EC_TPC_debug_level > 0) 00035 ACE_DEBUG ((LM_DEBUG, "RTEC (%P|%t): inside ~TAO_EC_TPC_ProxyPushConsumer (%x)\n", this)); 00036 } 00037 00038 void 00039 TAO_EC_TPC_ProxyPushConsumer::disconnect_push_consumer (void) 00040 { 00041 RtecEventComm::PushConsumer_var emulated_exceptions_suck = this->_this (); 00042 00043 this->tpc_dispatching ()->remove_consumer (emulated_exceptions_suck.in ()); 00044 00045 BASECLASS::disconnect_push_consumer (); 00046 } 00047 00048 TAO_END_VERSIONED_NAMESPACE_DECL