diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp | 58 |
1 files changed, 16 insertions, 42 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp index 23b54f7bf11..ae76a78f0cd 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp @@ -1,8 +1,8 @@ // $Id$ +#include "orbsvcs/RtecEventChannelAdminC.h" #include "EC_ConsumerAdmin.h" #include "EC_ProxySupplier.h" -#include "EC_ProxyConsumer.h" #include "EC_Event_Channel.h" #include "EC_Command.h" @@ -21,11 +21,7 @@ TAO_EC_ConsumerAdmin::TAO_EC_ConsumerAdmin (TAO_EC_Event_Channel *ec, { this->supplier_set_ = this->event_channel_->create_proxy_push_supplier_set (); - this->supplier_set_->busy_hwm (this->event_channel_->busy_hwm ()); - this->supplier_set_->max_write_delay (this->event_channel_->max_write_delay ()); } - this->default_POA_ = - this->event_channel_->consumer_poa (); } TAO_EC_ConsumerAdmin::~TAO_EC_ConsumerAdmin (void) @@ -35,8 +31,15 @@ TAO_EC_ConsumerAdmin::~TAO_EC_ConsumerAdmin (void) } void +TAO_EC_ConsumerAdmin::set_default_POA (PortableServer::POA_ptr poa) +{ + this->default_POA_ = + PortableServer::POA::_duplicate (poa); +} + +void TAO_EC_ConsumerAdmin::connected (TAO_EC_ProxyPushConsumer *consumer, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &ACE_TRY_ENV) { ACE_GUARD_THROW_EX (TAO_EC_ConsumerAdmin::Busy_Lock, ace_mon, this->busy_lock (), @@ -50,14 +53,12 @@ TAO_EC_ConsumerAdmin::connected (TAO_EC_ProxyPushConsumer *consumer, { (*i)->connected (consumer, ACE_TRY_ENV); ACE_CHECK; - consumer->connected (*i, ACE_TRY_ENV); - ACE_CHECK; } } void TAO_EC_ConsumerAdmin::disconnected (TAO_EC_ProxyPushConsumer *consumer, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &ACE_TRY_ENV) { ACE_GUARD_THROW_EX (TAO_EC_ConsumerAdmin::Busy_Lock, ace_mon, this->busy_lock (), @@ -71,60 +72,33 @@ TAO_EC_ConsumerAdmin::disconnected (TAO_EC_ProxyPushConsumer *consumer, { (*i)->disconnected (consumer, ACE_TRY_ENV); ACE_CHECK; - consumer->disconnected (*i, ACE_TRY_ENV); - ACE_CHECK; } } void TAO_EC_ConsumerAdmin::connected (TAO_EC_ProxyPushSupplier *supplier, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &ACE_TRY_ENV) { this->supplier_set_->connected (supplier, ACE_TRY_ENV); } void TAO_EC_ConsumerAdmin::disconnected (TAO_EC_ProxyPushSupplier *supplier, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &ACE_TRY_ENV) { this->supplier_set_->disconnected (supplier, ACE_TRY_ENV); } -void -TAO_EC_ConsumerAdmin::shutdown (CORBA::Environment &ACE_TRY_ENV) -{ - { - ACE_GUARD_THROW_EX (TAO_EC_ConsumerAdmin::Busy_Lock, - ace_mon, this->busy_lock (), - RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ()); - ACE_CHECK; - - SupplierSetIterator end = this->end (); - for (SupplierSetIterator i = this->begin (); - i != end; - ++i) - { - ACE_TRY - { - (*i)->shutdown (ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - /* ignore all exceptions */ - } - ACE_ENDTRY; - } - } - this->supplier_set_->shutdown (ACE_TRY_ENV); -} - RtecEventChannelAdmin::ProxyPushSupplier_ptr TAO_EC_ConsumerAdmin::obtain_push_supplier (CORBA::Environment &ACE_TRY_ENV) { TAO_EC_ProxyPushSupplier* supplier = this->event_channel_->create_proxy_push_supplier (); + PortableServer::POA_var poa = + this->event_channel_->supplier_poa (ACE_TRY_ENV); + supplier->set_default_POA (poa.in ()); + return supplier->_this (ACE_TRY_ENV); } |