diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2003-04-09 17:14:24 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2003-04-09 17:14:24 +0000 |
commit | b6f30a7aac5793854b319e7a824787d10d48d29d (patch) | |
tree | f185d49769c4f16ec10d4a446672d3f2e20fedd6 /TAO/orbsvcs/orbsvcs/Event | |
parent | 3f2c5466c98296f743b01ad6245ec8ca1dad53cc (diff) | |
download | ATCD-b6f30a7aac5793854b319e7a824787d10d48d29d.tar.gz |
ChangeLogTag: Wed Apr 09 19:13:12 2002 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event')
10 files changed, 76 insertions, 14 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp index 13e31b03f64..ff1ba640a69 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp @@ -223,7 +223,9 @@ TAO_EC_Basic_Factory::create_consumer_control (TAO_EC_Event_Channel* ec) CORBA::ORB_init (argc, argv, ""); // Hard-coded rate to 10 times a second ACE_Time_Value rate (0, 100000); - return new TAO_EC_Reactive_ConsumerControl (rate, ec, orb.in ()); + // Hard-coded polling-timeout to 10 msec + ACE_Time_Value timeout (0, TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT); + return new TAO_EC_Reactive_ConsumerControl (rate, timeout, ec, orb.in ()); } void @@ -241,7 +243,9 @@ TAO_EC_Basic_Factory::create_supplier_control (TAO_EC_Event_Channel* ec) CORBA::ORB_init (argc, argv, ""); // Hard-coded rate to 10 times a second ACE_Time_Value rate (0, 100000); - return new TAO_EC_Reactive_SupplierControl (rate, ec, orb.in ()); + // Hard-coded polling-timeout to 10 msec + ACE_Time_Value timeout (0, TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT); + return new TAO_EC_Reactive_SupplierControl (rate, timeout, ec, orb.in ()); } void diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp index b6c8596e5bf..3694d31c2e2 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp @@ -409,6 +409,32 @@ TAO_EC_Default_Factory::init (int argc, ACE_TCHAR* argv[]) } } + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECConsumerControlTimeout")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + unsigned long timeout_ = ACE_OS::strtoul(opt, 0, 10); + this->consumer_control_timeout_.usec(timeout_); + arg_shifter.consume_arg (); + } + } + + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECSupplierControlTimeout")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + unsigned long timeout_ = ACE_OS::strtoul(opt, 0, 10); + this->supplier_control_timeout_.usec(timeout_); + arg_shifter.consume_arg (); + } + } + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECPushSupplierSet")) == 0) { ACE_ERROR ((LM_ERROR, @@ -876,7 +902,7 @@ TAO_EC_Default_Factory::create_consumer_control (TAO_EC_Event_Channel* ec) CORBA::ORB_init (argc, argv, this->orbid_.c_str ()); ACE_Time_Value rate (0, this->consumer_control_period_); - return new TAO_EC_Reactive_ConsumerControl (rate, ec, orb.in ()); + return new TAO_EC_Reactive_ConsumerControl (rate, consumer_control_timeout_, ec, orb.in ()); } return 0; } @@ -900,7 +926,7 @@ TAO_EC_Default_Factory::create_supplier_control (TAO_EC_Event_Channel* ec) CORBA::ORB_init (argc, argv, this->orbid_.c_str ()); ACE_Time_Value rate (0, this->supplier_control_period_); - return new TAO_EC_Reactive_SupplierControl (rate, ec, orb.in ()); + return new TAO_EC_Reactive_SupplierControl (rate, supplier_control_timeout_, ec, orb.in ()); } return 0; } diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h index 9055f07453b..b2e7b313eda 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h @@ -149,6 +149,12 @@ protected: /// The consumer and supplier control periods in usecs int consumer_control_period_; int supplier_control_period_; + + /// The consumer control timeout in usecs + ACE_Time_Value consumer_control_timeout_; + + /// The supplier control timeout in usecs + ACE_Time_Value supplier_control_timeout_; }; #if defined (__ACE_INLINE__) diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i index 7e80488bf44..cd98301fa1d 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i @@ -20,6 +20,8 @@ TAO_EC_Default_Factory::TAO_EC_Default_Factory (void) consumer_control_ (TAO_EC_DEFAULT_CONSUMER_CONTROL), supplier_control_ (TAO_EC_DEFAULT_SUPPLIER_CONTROL), consumer_control_period_ (TAO_EC_DEFAULT_CONSUMER_CONTROL_PERIOD), - supplier_control_period_ (TAO_EC_DEFAULT_SUPPLIER_CONTROL_PERIOD) + supplier_control_period_ (TAO_EC_DEFAULT_SUPPLIER_CONTROL_PERIOD), + consumer_control_timeout_ (0, TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT), + supplier_control_timeout_ (0, TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT) { } diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h b/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h index d34deb58353..7dc1b4a3237 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h @@ -133,5 +133,13 @@ # define TAO_EC_DEFAULT_SUPPLIER_CONTROL_PERIOD 5000000 /* usecs */ #endif /* TAO_EC_DEFAULT_SUPPLIER_CONTROL_PERIOD */ +#ifndef TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT +# define TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT 10000 /* usecs */ +#endif /* TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT */ + +#ifndef TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT +# define TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT 10000 /* usecs */ +#endif /* TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT */ + #include "ace/post.h" #endif /* TAO_EC_DEFAULTS_H */ diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp index be322c6c6a7..6c5f997384e 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp @@ -265,6 +265,14 @@ TAO_EC_ProxyPushSupplier::connect_push_consumer ( RtecEventComm::PushConsumer::_duplicate (push_consumer); this->qos_ = qos; + // AVE-WEB test. Try to validate the connection to the consumer + ACE_DEBUG ((LM_DEBUG, "Before validate connection \n")); + CORBA::PolicyList_var pols; + this->consumer_->_validate_connection(pols); + ACE_CHECK; + ACE_DEBUG ((LM_DEBUG, "After validate connection \n")); + + #if TAO_EC_ENABLE_DEBUG_MESSAGES ACE_DEBUG ((LM_DEBUG, "Building filters for consumer <%x>\n", this)); diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp index 25e473a8f30..84eab4dc3c3 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp @@ -19,9 +19,11 @@ ACE_RCSID(Event, EC_Reactive_ConsumerControl, "$Id$") TAO_EC_Reactive_ConsumerControl:: TAO_EC_Reactive_ConsumerControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_EC_Event_Channel *ec, CORBA::ORB_ptr orb) : rate_ (rate), + timeout_ (timeout), adapter_ (this), event_channel_ (ec), orb_ (CORBA::ORB::_duplicate (orb)) @@ -110,10 +112,8 @@ TAO_EC_Reactive_ConsumerControl::activate (void) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - // Pre-compute the policy list to the set the right timeout - // value... - // @@ TODO It is currently hard-coded to 10 milliseconds - TimeBase::TimeT timeout = 10 * 10000; + // Timeout for polling state (default = 10 msec) + TimeBase::TimeT timeout = timeout_.usec() * 10; CORBA::Any any; any <<= timeout; diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h index 063d478b916..8ab5f0767df 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h @@ -68,6 +68,7 @@ public: /// Constructor. It does not assume ownership of the <event_channel> /// parameter. TAO_EC_Reactive_ConsumerControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_EC_Event_Channel *event_channel, CORBA::ORB_ptr orb); @@ -96,6 +97,9 @@ private: /// The polling rate ACE_Time_Value rate_; + /// The polling timeout + ACE_Time_Value timeout_; + /// The Adapter for the reactor events TAO_EC_ConsumerControl_Adapter adapter_; diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp index e1f7e0f7421..30c83096e8c 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp @@ -19,9 +19,11 @@ ACE_RCSID(Event, EC_Reactive_SupplierControl, "$Id$") TAO_EC_Reactive_SupplierControl:: TAO_EC_Reactive_SupplierControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_EC_Event_Channel *ec, CORBA::ORB_ptr orb) : rate_ (rate), + timeout_ (timeout), adapter_ (this), event_channel_ (ec), orb_ (CORBA::ORB::_duplicate (orb)) @@ -110,10 +112,8 @@ TAO_EC_Reactive_SupplierControl::activate (void) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - // Pre-compute the policy list to the set the right timeout - // value... - // @@ TODO It is currently hard-coded to 10 milliseconds - TimeBase::TimeT timeout = 10 * 10000; + // Timeout for polling state (default = 10 msec) + TimeBase::TimeT timeout = timeout_.usec() * 10; CORBA::Any any; any <<= timeout; @@ -122,7 +122,7 @@ TAO_EC_Reactive_SupplierControl::activate (void) this->orb_->create_policy ( Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE, any - ACE_ENV_ARG_PARAMETER); + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } ACE_CATCHANY diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h index 1dbaad605e3..a38b9adc291 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h @@ -68,6 +68,7 @@ public: /// Constructor. It does not assume ownership of the <event_channel> /// parameter. TAO_EC_Reactive_SupplierControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_EC_Event_Channel *event_channel, CORBA::ORB_ptr orb); @@ -96,6 +97,9 @@ private: /// The polling rate ACE_Time_Value rate_; + /// The polling timeout + ACE_Time_Value timeout_; + /// The Adapter for the reactor events TAO_EC_SupplierControl_Adapter adapter_; |