summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Event
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2003-04-09 17:14:24 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2003-04-09 17:14:24 +0000
commitb6f30a7aac5793854b319e7a824787d10d48d29d (patch)
treef185d49769c4f16ec10d4a446672d3f2e20fedd6 /TAO/orbsvcs/orbsvcs/Event
parent3f2c5466c98296f743b01ad6245ec8ca1dad53cc (diff)
downloadATCD-b6f30a7aac5793854b319e7a824787d10d48d29d.tar.gz
ChangeLogTag: Wed Apr 09 19:13:12 2002 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event')
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp30
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h6
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i4
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h8
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp10
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h4
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_;