summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp
diff options
context:
space:
mode:
authorvenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-12 02:58:20 +0000
committervenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-12 02:58:20 +0000
commit1f89455515043242c68c7b16f248796452c9ae03 (patch)
tree2c45f8e6a9f3bdc565f33f3290dfba218244ec0b /TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp
parent0ac825ef47e755ea99f8ab399f727411ccea0a19 (diff)
downloadATCD-1f89455515043242c68c7b16f248796452c9ae03.tar.gz
ChangeLogTag: Sat Oct 11 21:42:36 2003 Venkita Subramonian <venkita@cs.wustl.edu>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp
index 015c5e97b85..e30cfbe09a0 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp
@@ -64,6 +64,41 @@ TAO_EC_Kokyu_Factory::init (int argc, ACE_TCHAR* argv[])
}
arg_shifter.consume_arg ();
}
+ //if Kokyu dispatching - look for sched policy
+ if (this->dispatching_ == 2)
+ {
+ if (arg_shifter.is_parameter_next ())
+ {
+ const ACE_TCHAR* opt = arg_shifter.get_current ();
+ if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("SCHED_FIFO")) == 0)
+ {
+ this->disp_sched_policy_ = ACE_SCHED_FIFO;
+ }
+ else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("SCHED_RR")) == 0)
+ {
+ this->disp_sched_policy_ = ACE_SCHED_RR;
+ }
+ else
+ {
+ this->disp_sched_policy_ = ACE_SCHED_OTHER;
+ }
+ arg_shifter.consume_arg ();
+
+ if (arg_shifter.is_parameter_next ())
+ {
+ const ACE_TCHAR* opt = arg_shifter.get_current ();
+ if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("SYSTEM")) == 0)
+ {
+ this->disp_sched_policy_ = ACE_SCOPE_THREAD;
+ }
+ else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("PROCESS")) == 0)
+ {
+ this->disp_sched_policy_ = ACE_SCOPE_PROCESS;
+ }
+ arg_shifter.consume_arg ();
+ }
+ }
+ }
}
else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECFiltering")) == 0)
@@ -178,7 +213,9 @@ TAO_EC_Dispatching*
TAO_EC_Kokyu_Factory::create_dispatching (TAO_EC_Event_Channel_Base *ec)
{
if (this->dispatching_ == 2)
- return new TAO_EC_Kokyu_Dispatching (ec);
+ return new TAO_EC_Kokyu_Dispatching (ec,
+ this->disp_sched_policy_,
+ this->disp_sched_scope_);
return this->TAO_EC_Default_Factory::create_dispatching (ec);
}