00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: STSysSchedEvent.h,v 1.5 2003/01/08 18:57:12 meierb Exp $ 00008 00009 Purpose : events concerning the simulation process (jobs are 00010 scheduled, machines break etc.). also used to communicate with 00011 the algorithm (see below). 00012 00013 RCS-Log: 00014 $Log: STSysSchedEvent.h,v $ 00015 Revision 1.5 2003/01/08 18:57:12 meierb 00016 added randomized release times 00017 00018 Revision 1.1.1.1 2002/12/02 22:26:19 meierb 00019 my_schedule 00020 00021 Revision 1.3 2002/11/10 01:42:33 taeubig 00022 Added std:: for standard namespace, 00023 relative path corrections for header includes 00024 00025 Revision 1.2 2002/11/09 14:19:38 taeubig 00026 <iostream> inclusion, added std:: 00027 00028 Revision 1.1 2002/08/29 12:59:58 taeubig 00029 Added the sources 00030 00031 Revision 1.15 2000/05/29 19:54:23 taeubig 00032 New subdirectory structure 00033 00034 Revision 1.14 2000/01/12 13:50:07 zoidl 00035 added javadoc comments 00036 00037 Revision 1.13 1999/12/02 08:06:11 schickin 00038 SEvent-Hierarchie modified (STSysEvent is dead now) 00039 00040 Revision 1.12 1999/11/11 13:30:23 zoidl 00041 player works now 00042 00043 Revision 1.11 1999/11/10 15:07:31 zoidl 00044 added job state to event 00045 00046 Revision 1.10 1999/08/05 13:03:00 schickin 00047 redesign: event list for algorithm is generated by logger now 00048 00049 Revision 1.9 1999/08/05 08:48:12 schickin 00050 purpose of important classes noted in the header-files 00051 00052 Revision 1.8 1999/06/17 16:34:51 hall 00053 STopology changed, tuned STSysSchedEvent-stuff and lost more! 00054 00055 Revision 1.7 1999/05/06 14:51:44 schickin 00056 event handling by jobs and machines redesigned 00057 00058 Revision 1.6 1999/04/27 13:39:42 schickin 00059 well folks, that's the first demo version that really runs 8-) 00060 00061 Revision 1.5 1999/03/23 14:26:56 schickin 00062 a lot of new code in /model: things compile but have no functionality 00063 00064 Revision 1.4 1999/02/10 15:05:52 schickin 00065 model-directory can be compiled now 00066 00067 Revision 1.3 1999/02/09 17:17:19 schickin 00068 design changes: event system refined (+ interface of SSchedAlgorithm) 00069 00070 Revision 1.2 1999/01/29 10:03:58 schickin 00071 Project-Headers added. 00072 00073 00074 * #end# ************************************************************* */ 00075 00076 #ifndef STSYSSCHEDEVENT_H 00077 #define STSYSSCHEDEVENT_H 00078 00079 // system header files 00080 00081 // project header files 00082 #include "../general/SLedaUserTypes.h" 00083 #include "../general/SEvent.h" 00084 #include "jobs/SJob.h" 00085 00096 class STSysSchedEvent : public SEvent { 00097 public: 00098 00104 enum Id { 00105 // issued by SJob 00106 JOBRESET, 00107 JOBSTATECHANGED, 00108 // the due date of a job has passed 00109 JOBOVERDUE, 00110 // job has finished a single execution phase but not the total 00111 // execution (only generated by job shops) 00112 JOBPHASEFINISHED, 00113 00114 // issued by SPassiveMachines 00115 00116 // a new job has been allocated 00117 JOBALLOCATED, 00118 // a new job has been deallocated (this may have two reasons: the job 00119 // is preempted or the job is finished; you can distinguish this by 00120 // listening to JOBFINISHED-events or simply by asking the job) 00121 JOBDEALLOCATED, 00122 // the following two events are not used yet 00123 MACHINEBROKEN, 00124 MACHINEREPAIRED 00125 }; 00126 STSysSchedEvent() {}; 00127 00134 STSysSchedEvent(Id id, int p, int j) : 00135 _id(id), _pos(p), _job(j) {}; 00136 00141 Id getId() const { return _id; }; 00142 00147 int getPos() const { return _pos; }; 00148 00153 int getJob() const { return _job; }; 00154 00159 virtual Type getType() const 00160 { return SCHEDEVENT; }; 00161 00166 virtual void write(std::ostream& rOs) const; 00167 00168 private: 00169 Id _id; 00170 int _pos; 00171 int _job; 00172 }; 00173 00174 make_input_op(STSysSchedEvent); 00175 00176 #endif //STSYSSCHEDEVENT_H 00177 00178 00179 00180 00181 00182 00183 00184 00185 00186 00187 00188