summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-03-21 03:27:03 +0000
committervenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-03-21 03:27:03 +0000
commit0c4f11eb426d06d0062321851c92fecdc6754127 (patch)
treef5ae3ea382ba5ca985fdc3092107c1fe002f1f89
parent7b440886f0708c772256f1598d40b7bcc7e333b1 (diff)
downloadATCD-0c4f11eb426d06d0062321851c92fecdc6754127.tar.gz
*** empty log message ***
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp3
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.cpp11
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter.cpp7
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter_Builder.cpp32
5 files changed, 52 insertions, 5 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp
index 2d7a359b555..e7cb2716c45 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp
@@ -43,6 +43,7 @@ TAO_EC_Priority_Dispatching::activate (void)
ACE_DECLARE_NEW_CORBA_ENV;
for (int i = 0; i < this->ntasks_; ++i)
{
+#if 0 //ifdef'd by VS
ACE_TRY
{
RtecScheduler::Period_t period =
@@ -73,6 +74,8 @@ TAO_EC_Priority_Dispatching::activate (void)
}
ACE_ENDTRY;
+#endif //ifdef 0 end by VS
+
ACE_NEW (this->tasks_[i],
TAO_EC_Dispatching_Task (&this->thread_manager_));
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.cpp
index 4a98e9bf5d4..940e9fe912c 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.cpp
@@ -21,6 +21,13 @@ TAO_EC_Sched_Factory::~TAO_EC_Sched_Factory (void)
}
int
+TAO_EC_Sched_Factory::init_svcs (void)
+{
+ return ACE_Service_Config::static_svcs ()->
+ insert (&ace_svc_desc_TAO_EC_Sched_Factory);
+}
+
+int
TAO_EC_Sched_Factory::init (int argc, ACE_TCHAR* argv[])
{
ACE_Arg_Shifter arg_shifter (argc, argv);
@@ -132,7 +139,7 @@ TAO_EC_Sched_Factory::init (int argc, ACE_TCHAR* argv[])
{
this->scheduling_ = 0;
}
- else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("priority")) == 0)
+ else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("group")) == 0)
{
this->scheduling_ = 1;
}
@@ -206,7 +213,7 @@ TAO_EC_Sched_Factory::create_scheduling_strategy (TAO_EC_Event_Channel* ec)
RtecScheduler::Scheduler::_narrow (tmp.in ());
return new TAO_EC_Priority_Scheduling (scheduler.in ());
}
- return this->TAO_EC_Sched_Factory::create_scheduling_strategy (ec);
+ return this->TAO_EC_Default_Factory::create_scheduling_strategy (ec);
}
// ****************************************************************
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.h b/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.h
index 311b08694ad..26cbc96deda 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Factory.h
@@ -36,6 +36,10 @@ public:
/// Constructor
TAO_EC_Sched_Factory (void);
+ /// Helper function to register the sched factory into the service
+ /// configurator.
+ static int init_svcs (void);
+
/// destructor...
virtual ~TAO_EC_Sched_Factory (void);
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter.cpp
index 7391d41bd8c..6d59aac0f1d 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter.cpp
@@ -202,6 +202,8 @@ TAO_EC_Sched_Filter::init_rt_info (ACE_ENV_SINGLE_ARG_DECL)
if (this->rt_info_computed_)
return;
+#if 0 //ifdef'ed by VS
+
// Provide dummy values the scheduler will compute them based on the
// dependencies and the fact that this is a DISJUNCTION.
this->scheduler_->set (this->rt_info_,
@@ -216,6 +218,7 @@ TAO_EC_Sched_Filter::init_rt_info (ACE_ENV_SINGLE_ARG_DECL)
this->info_type_
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
+#endif //ifdef'ed by VS
#if 0
ChildrenIterator end = this->end ();
@@ -243,7 +246,7 @@ TAO_EC_Sched_Filter::init_rt_info (ACE_ENV_SINGLE_ARG_DECL)
}
#endif /* 0 */
-#if 1
+#if 0 //ifdef changed from 1 to 0 by VS
if (this->body_info_ != this->rt_info_)
{
this->scheduler_->add_dependency (this->rt_info_,
@@ -262,7 +265,7 @@ TAO_EC_Sched_Filter::init_rt_info (ACE_ENV_SINGLE_ARG_DECL)
}
#endif /* 0 */
-#if 1
+#if 0 //ifdef changed from 1 to 0 by VS
this->scheduler_->add_dependency (this->parent_info_,
this->rt_info_,
1,
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter_Builder.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter_Builder.cpp
index 593fdc01afd..601bc84b597 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter_Builder.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Sched_Filter_Builder.cpp
@@ -33,14 +33,16 @@ TAO_EC_Sched_Filter_Builder::build (
RtecScheduler::Scheduler::_narrow (tmp.in () ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
+#if 0 //by VS
// @@ How do we figure out which parent???
RtecScheduler::handle_t parent_info =
scheduler->lookup ("Dispatching_Task-250000.us" ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
+#endif
return this->recursive_build (supplier, qos, pos,
scheduler.in (),
- parent_info
+ 0 //parent_info
ACE_ENV_ARG_PARAMETER);
}
@@ -144,6 +146,34 @@ TAO_EC_Sched_Filter_Builder::recursive_build (
ACE_CHECK_RETURN (0);
return filter;
}
+#if 1 //added by VS
+ else if (e.header.type == ACE_ES_GLOBAL_DESIGNATOR)
+ {
+ CORBA::ULong npos = pos+1;
+ const RtecEventComm::Event& e = qos.dependencies[npos].event;
+
+ RtecScheduler::handle_t body_info = qos.dependencies[npos].rt_info;
+
+ RtecScheduler::RT_Info_var info =
+ scheduler->get (body_info ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+
+ ACE_CString name = info->entry_point.in ();
+
+ TAO_EC_Sched_Filter *filter;
+ ACE_NEW_RETURN (filter,
+ TAO_EC_Sched_Filter (name.c_str (),
+ body_info,
+ scheduler,
+ new TAO_EC_Type_Filter (e.header),
+ body_info,
+ 0,
+ RtecScheduler::OPERATION),
+ 0);
+
+ return filter;
+ }
+#endif
else if (e.header.type == ACE_ES_EVENT_TIMEOUT
|| e.header.type == ACE_ES_EVENT_INTERVAL_TIMEOUT