summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryfzhang <yfzhang@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-04-13 16:51:39 +0000
committeryfzhang <yfzhang@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-04-13 16:51:39 +0000
commit0e918c9779c7d00e745b96fc3a1b1703633aaf28 (patch)
treed9d57440d473ec6faec63fc9469faf71b5f6ca91
parentfe0df0520ccc18b57adc51957d296d0d49473f63 (diff)
downloadATCD-EC_DT_CS520.tar.gz
*** empty log message ***EC_DT_CS520
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp50
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.dsui7
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl3
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/Makefile.Kokyu_DSRT_Schedulers6
4 files changed, 46 insertions, 20 deletions
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp
index 782346a1b7e..24cb3c2ee41 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp
+++ b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp
@@ -113,6 +113,7 @@ EDF_Scheduler::create_scheduling_parameter (const EDF_Scheduling::SchedulingPara
sched_param_policy->value (value);
+ DSUI_EVENT_LOG (EDF_SCHED_FAM, CREATE_SCHED_PARAM_END, 0, 0, NULL);
return sched_param_policy;
}
@@ -139,7 +140,7 @@ EDF_Scheduler::begin_new_scheduling_segment (const RTScheduling::Current::IdType
// ACE_DEBUG ((LM_DEBUG, "(%t|%T): guid is %d\n", int_guid));
//#endif
- DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_SCHED_SEGMENT_START, int_guid, 0, NULL);
+ DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_NEW_SCHED_SEGMENT_START, int_guid, 0, NULL);
EDF_Scheduler_Traits::QoSDescriptor_t qos;
EDF_Scheduling::SchedulingParameterPolicy_var sched_param_policy =
EDF_Scheduling::SchedulingParameterPolicy::_narrow (sched_policy);
@@ -151,7 +152,7 @@ EDF_Scheduler::begin_new_scheduling_segment (const RTScheduling::Current::IdType
kokyu_dispatcher_->schedule (guid, qos);
- DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_SCHED_SEGMENT_END, int_guid, 0, NULL);
+ DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_NEW_SCHED_SEGMENT_END, int_guid, 0, NULL);
#ifdef KOKYU_DSRT_LOGGING
ACE_DEBUG ((LM_DEBUG,
"(%t|%T):EDF_Scheduler::begin_new_scheduling_segment exit\n"));
@@ -179,6 +180,7 @@ EDF_Scheduler::begin_nested_scheduling_segment (const RTScheduling::Current::IdT
implicit_sched_param
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
+ DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_NESTED_SCHED_SEGMENT_END, int_guid, 0, NULL);
}
void
@@ -232,6 +234,7 @@ EDF_Scheduler::end_scheduling_segment (const RTScheduling::Current::IdType &guid
DSUI_EVENT_LOG (EDF_SCHED_FAM, END_SCHED_SEGMENT, int_guid, 0, NULL);
kokyu_dispatcher_->cancel_schedule (guid);
+ DSUI_EVENT_LOG (EDF_SCHED_FAM, END_SCHED_SEGMENT_END, int_guid, 0, NULL);
}
void
@@ -269,8 +272,8 @@ EDF_Scheduler::send_request (PortableInterceptor::ClientRequestInfo_ptr ri
#ifdef KOKYU_DSRT_LOGGING
ACE_DEBUG ((LM_DEBUG,
"(%t|%T): send_request "
- "from \"%s\"\n",
- operation.in ()));
+ "from \"%s\" and guid is %d\n",
+ operation.in(), int_guid));
#endif
// Make the context to send the context to the target
@@ -313,8 +316,20 @@ EDF_Scheduler::send_request (PortableInterceptor::ClientRequestInfo_ptr ri
#endif
}
//Fill the guid in the SC Qos struct
+
+ if(int_guid==1) {
+
+ long long_guid = (long) int_guid+1;
+ ACE_DEBUG((LM_DEBUG,"The long guid is %d\n",long_guid));
+ sc_qos.guid.length (sizeof(long));
+ ACE_OS::memcpy (sc_qos.guid.get_buffer (),
+ &long_guid,
+ sizeof(long));
+ }
+ else {
sc_qos.guid.length (this->current_->id ()->length ());
guid_copy (sc_qos.guid, *(this->current_->id ()));
+ }
sc_qos.deadline = deadline;
sc_qos.importance = importance;
sc_qos.task_id = task_id;
@@ -322,14 +337,17 @@ EDF_Scheduler::send_request (PortableInterceptor::ClientRequestInfo_ptr ri
CORBA::Any sc_qos_as_any;
sc_qos_as_any <<= sc_qos;
- sc.context_data =
- ACE_reinterpret_cast(IOP::ServiceContext::
- _tao_seq_CORBA_Octet_ &,
- *codec_->encode (sc_qos_as_any));
+ sc.context_data =
+ ACE_reinterpret_cast (CORBA::OctetSeq &,
+ *codec_->encode (sc_qos_as_any));
+
+ ACE_OS::memcpy (&int_guid,
+ sc_qos.guid.get_buffer (),
+ sc_qos.guid.length ());
#ifdef KOKYU_DSRT_LOGGING
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t|%T): send_request : about to add sched SC\n")));
+ "(%t|%T): send_request : about to add sched SC and guid is %d\n",int_guid));
#endif
// Add this context to the service context list.
@@ -377,7 +395,7 @@ EDF_Scheduler::receive_request (PortableInterceptor::ServerRequestInfo_ptr ri,
-#ifdef KOKYU_DSRT_LOGGING
+#ifdef MY_KOKYU_DSRT_LOGGING
ACE_DEBUG ((LM_DEBUG, "(%t|%T):entered EDF_Scheduler::receive_request\n"));
#endif
@@ -492,7 +510,7 @@ EDF_Scheduler::receive_request (PortableInterceptor::ServerRequestInfo_ptr ri,
ACE_DEBUG ((LM_DEBUG, "(%t|%T): receive_request interceptor done\n"));
#endif
- DSUI_EVENT_LOG (EDF_SCHED_FAM, LEAVE_SERVER_SCHED_TIME, 0, 0, NULL);
+ DSUI_EVENT_LOG (EDF_SCHED_FAM, LEAVE_SERVER_SCHED_TIME, int_guid, 0, NULL);
}
void
@@ -576,10 +594,10 @@ EDF_Scheduler::send_reply (PortableInterceptor::ServerRequestInfo_ptr ri
CORBA::Any sc_qos_as_any;
sc_qos_as_any <<= sc_qos;
- sc.context_data = ACE_reinterpret_cast(
- IOP::ServiceContext::
- _tao_seq_CORBA_Octet_ &,
- *codec_->encode (sc_qos_as_any));
+ sc.context_data =
+ ACE_reinterpret_cast (CORBA::OctetSeq &,
+ *codec_->encode (sc_qos_as_any));
+
// Add this context to the service context list.
ri->add_reply_service_context (sc, 1 ACE_ENV_ARG_PARAMETER);
@@ -705,7 +723,7 @@ EDF_Scheduler::receive_reply (PortableInterceptor::ClientRequestInfo_ptr ri
guid.length ());
EDF_Scheduler_Traits::QoSDescriptor_t qos;
- qos.deadline_ = qos.importance_ = importance;
+ qos.importance_ = importance;
qos.deadline_ = deadline;
this->kokyu_dispatcher_->schedule (guid, qos);
DSUI_EVENT_LOG (EDF_SCHED_FAM, EXIT_RECEIVE_REPLY, int_guid, 0, NULL);
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.dsui b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.dsui
index 5cefd8aef6a..0af7b9186c3 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.dsui
+++ b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.dsui
@@ -1,4 +1,7 @@
# EDF_SCHED (EDF_Scheduler.cpp)
+DSTRM_EVENT EDF_SCHED 4 END_SCHED_SEGMENT_END 30 "End scheduling segment end" print_string
+DSTRM_EVENT EDF_SCHED 4 BEGIN_NESTED_SCHED_SEGMENT_END 29 "Begin nested scheduling segment end" print_string
+DSTRM_EVENT EDF_SCHED 4 CREATE_SCHED_PARAM_END 28 "Create scheduling segment end" print_string
DSTRM_EVENT EDF_SCHED 4 CONSTRUCTOR 27 "Dispatcher created in constructor" print_string
DSTRM_EVENT EDF_SCHED 4 RECEIVE_OTHER 26 "Enter receive_other" print_string
DSTRM_EVENT EDF_SCHED 4 RECEIVE_EXCEPTION 25 "Enter receive_exception" print_string
@@ -24,7 +27,7 @@ DSTRM_EVENT EDF_SCHED 4 CALL_KOKYU_DISPATCH_UPDATE_SCHEDULE
DSTRM_EVENT EDF_SCHED 4 ENTER_CLIENT_SCHED_TIME 5 "Point which records the entering scheduler time on the client side" print_string
DSTRM_EVENT EDF_SCHED 4 DISPATCHER_SHUTDOWN 4 "Kokyu DSRT Dispatcher shutdown" print_string
DSTRM_EVENT EDF_SCHED 4 CREATE_SCHED_PARAM 3 "Create Scheduling parameter" print_string
-DSTRM_EVENT EDF_SCHED 4 BEGIN_SCHED_SEGMENT_START 2 "Start Schedule segment" print_string
-DSTRM_EVENT EDF_SCHED 4 BEGIN_SCHED_SEGMENT_END 1 "End Schedule segment" print_string
+DSTRM_EVENT EDF_SCHED 4 BEGIN_NEW_SCHED_SEGMENT_START 2 "Start new Schedule segment" print_string
+DSTRM_EVENT EDF_SCHED 4 BEGIN_NEW_SCHED_SEGMENT_END 1 "End new Schedule segment" print_string
DSTRM_EVENT EDF_SCHED 4 KOKYU_SCHED_START 0 "Start Kokyu Schedule call" print_string
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl
index 4f16c754a6e..cb28771919a 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl
+++ b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl
@@ -45,7 +45,8 @@ module EDF_Scheduling
{
TimeBase::TimeT deadline;
long importance;
- TimeBase::TimeT period;
+ TimeBase::TimeT period;
+ TimeBase::TimeT remain_exe;
long task_id;
};
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/Makefile.Kokyu_DSRT_Schedulers b/TAO/examples/Kokyu_dsrt_schedulers/Makefile.Kokyu_DSRT_Schedulers
index 9b55d55ac0e..e80fc1dafff 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/Makefile.Kokyu_DSRT_Schedulers
+++ b/TAO/examples/Kokyu_dsrt_schedulers/Makefile.Kokyu_DSRT_Schedulers
@@ -23,10 +23,12 @@ endif
FILES = \
EDF_Scheduler \
+ MLF_Scheduler \
Task_Stats \
utils \
Kokyu_qosC \
- EDF_SchedulingC
+ EDF_SchedulingC \
+ MLF_SchedulingC
#----------------------------------------------------------------------------
# Include macros and targets
@@ -117,6 +119,8 @@ ifeq ($(static_libs),1)
endif
CPPFLAGS += -DKOKYU_DSRT_LOGGING
+CPPFLAGS += -DMY_KOKYU_DSRT_LOGGING
+#CPPFLAGS += -DACE_HAS_DUMP
CPPFLAGS += -DKOKYU_HAS_RELEASE_GUARD
CPPFLAGS += -I$(DATASTREAM_ROOT)/include
LDFLAGS += -L../../../lib -L$(DATASTREAM_ROOT)/lib