00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _exact_task_advocate_hh
00020 #define _exact_task_advocate_hh
00021
00022 #include <iostream>
00023
00024 #include "RKTask.hh"
00025
00026
00027
00028
00029
00030 class ExactTaskAdvocate : public virtual RKTask,
00031 public virtual POA_Broker::RealTimeAdvocate
00032 {
00033
00034 public:
00035
00036
00037 ExactTaskAdvocate(const Broker::TaskParameters &tp)
00038 throw (CORBA::SystemException,
00039 Broker::DuplicateTaskParameter,
00040 Broker::InvalidTaskParameter,
00041 Broker::MissingTaskParameter);
00042
00043 virtual ~ExactTaskAdvocate();
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057 virtual CORBA::ULong ComputeAdvice(CORBA::ULong status)
00058 throw (CORBA::SystemException, Broker::InvalidStatus);
00059
00060
00061 virtual void ReportCPU(CORBA::ULong status)
00062 throw (CORBA::SystemException, Broker::InvalidStatus);
00063
00064 protected:
00065
00066 struct timeval eta_LastCPULog;
00067
00068 ofstream *eta_CPULog;
00069
00070 struct timeval eta_LastAdviceLog;
00071
00072 ofstream *eta_AdviceLog;
00073
00074 ofstream *eta_CompleteLog;
00075
00076 };
00077
00078 #endif