summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp58
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);
}