diff options
Diffstat (limited to 'TAO/orbsvcs/tests/CosEvent/lib/Counting_Supplier.cpp')
-rw-r--r-- | TAO/orbsvcs/tests/CosEvent/lib/Counting_Supplier.cpp | 257 |
1 files changed, 0 insertions, 257 deletions
diff --git a/TAO/orbsvcs/tests/CosEvent/lib/Counting_Supplier.cpp b/TAO/orbsvcs/tests/CosEvent/lib/Counting_Supplier.cpp deleted file mode 100644 index b1f8e946266..00000000000 --- a/TAO/orbsvcs/tests/CosEvent/lib/Counting_Supplier.cpp +++ /dev/null @@ -1,257 +0,0 @@ -// $Id$ - -#include "Counting_Supplier.h" -#include "ace/OS_NS_unistd.h" - -ACE_RCSID(CEC_Tests, CEC_Count_Supplier, "$Id$") - -CEC_Counting_Supplier::CEC_Counting_Supplier (void) - : event_count (0), - disconnect_count (0) -{ -} - -void -CEC_Counting_Supplier::connect ( - CosEventChannelAdmin::SupplierAdmin_ptr supplier_admin - ACE_ENV_ARG_DECL) -{ - CosEventComm::PushSupplier_var supplier = - this->_this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - if (CORBA::is_nil (this->consumer_proxy_.in ())) - { - this->consumer_proxy_ = - supplier_admin->obtain_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } - - this->consumer_proxy_->connect_push_supplier (supplier.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -CEC_Counting_Supplier::disconnect (ACE_ENV_SINGLE_ARG_DECL) -{ - if (!CORBA::is_nil (this->consumer_proxy_.in ())) - { - this->consumer_proxy_->disconnect_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } - - PortableServer::POA_var supplier_poa = - this->_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - PortableServer::ObjectId_var supplier_id = - supplier_poa->servant_to_id (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - supplier_poa->deactivate_object (supplier_id.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->consumer_proxy_ = - CosEventChannelAdmin::ProxyPushConsumer::_nil (); -} - -void -CEC_Counting_Supplier::push (const CORBA::Any& - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - if (CORBA::is_nil (this->consumer_proxy_.in ())) - return; - - CORBA::Any event; - event <<= CORBA::Long(0); - - this->consumer_proxy_->push (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - this->event_count++; -} - -void -CEC_Counting_Supplier::disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - this->disconnect_count++; - this->consumer_proxy_ = - CosEventChannelAdmin::ProxyPushConsumer::_nil (); -} - -// **************************************************************** - -CEC_Counting_Supplier_Task:: - CEC_Counting_Supplier_Task (CEC_Counting_Supplier *s, - int milliseconds) - : supplier_ (s), - stop_flag_ (0), - push_count_ (0), - milliseconds_ (milliseconds) -{ -} - -int -CEC_Counting_Supplier_Task::svc () -{ - ACE_TRY_NEW_ENV - { - this->run (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - return 0; -} - -void -CEC_Counting_Supplier_Task::stop (void) -{ - ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->lock_); - this->stop_flag_ = 1; -} - -CORBA::ULong -CEC_Counting_Supplier_Task::push_count (void) -{ - return this->push_count_; -} - -void -CEC_Counting_Supplier_Task::run (ACE_ENV_SINGLE_ARG_DECL) -{ - CORBA::Any event; - event <<= CORBA::Long(0); - - int stop = 0; - do { - this->supplier_->push (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (this->milliseconds_ != 0) - { - ACE_Time_Value tv (0, 1000 * this->milliseconds_); - ACE_OS::sleep (tv); - } - else - { - // Sleep for a short time to avoid spinning... kind of klugy - ACE_OS::sleep (0); - } - - ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->lock_); - - this->push_count_++; - - stop = this->stop_flag_; - } while (stop == 0); -} - -// **************************************************************** - -CEC_Pull_Counting_Supplier::CEC_Pull_Counting_Supplier (void) - : event_count (0), - disconnect_count (0) -{ -} - -void -CEC_Pull_Counting_Supplier::connect ( - CosEventChannelAdmin::SupplierAdmin_ptr supplier_admin - ACE_ENV_ARG_DECL) -{ - CosEventComm::PullSupplier_var supplier = - this->_this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - if (CORBA::is_nil (this->consumer_proxy_.in ())) - { - this->consumer_proxy_ = - supplier_admin->obtain_pull_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } - - this->consumer_proxy_->connect_pull_supplier (supplier.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -CEC_Pull_Counting_Supplier::disconnect (ACE_ENV_SINGLE_ARG_DECL) -{ - if (!CORBA::is_nil (this->consumer_proxy_.in ())) - { - this->consumer_proxy_->disconnect_pull_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } - - PortableServer::POA_var supplier_poa = - this->_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - PortableServer::ObjectId_var supplier_id = - supplier_poa->servant_to_id (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - supplier_poa->deactivate_object (supplier_id.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->consumer_proxy_ = - CosEventChannelAdmin::ProxyPullConsumer::_nil (); -} - -CORBA::Any* -CEC_Pull_Counting_Supplier::pull (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException,CosEventComm::Disconnected)) -{ - if (CORBA::is_nil (this->consumer_proxy_.in ())) - ACE_THROW_RETURN (CosEventComm::Disconnected (), 0); - - if (this->event_count % 2) - { - // Sleep for 1 second, to simulate blocking calls. - ACE_OS::sleep (1); - } - - this->event_count++; - CORBA::Any event; - event <<= CORBA::Long(0); - - return new CORBA::Any (event); -} - -CORBA::Any* -CEC_Pull_Counting_Supplier::try_pull (CORBA::Boolean_out has_event - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException,CosEventComm::Disconnected)) -{ - if (CORBA::is_nil (this->consumer_proxy_.in ())) - ACE_THROW_RETURN (CosEventComm::Disconnected (), 0); - - if (this->event_count % 2) - { - // No event - has_event = 0; - } - else - { - // We have an event - has_event = 1; - this->event_count++; - } - - CORBA::Any event; - event <<= CORBA::Long(0); - - return new CORBA::Any (event); -} - -void -CEC_Pull_Counting_Supplier::disconnect_pull_supplier (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - this->disconnect_count++; - this->consumer_proxy_ = - CosEventChannelAdmin::ProxyPullConsumer::_nil (); -} |