00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: SParallelJob.h,v 1.5 2003/03/21 15:47:05 taeubig Exp $ 00008 00009 Purpose : 00010 00011 RCS-Log: 00012 $Log: SParallelJob.h,v $ 00013 Revision 1.5 2003/03/21 15:47:05 taeubig 00014 merge with source from Bertolt 00015 00016 Revision 1.4 2003/01/08 18:57:13 meierb 00017 added randomized release times 00018 00019 Revision 1.2 2002/12/16 23:32:09 meierb 00020 *** empty log message *** 00021 00022 Revision 1.1.1.1 2002/12/02 22:26:19 meierb 00023 my_schedule 00024 00025 Revision 1.2 2002/11/09 20:50:15 taeubig 00026 <iostream> inclusion, added std:: 00027 corrected relative path for header includes 00028 00029 Revision 1.1 2002/08/29 12:59:59 taeubig 00030 Added the sources 00031 00032 Revision 1.1 2000/05/29 19:51:28 taeubig 00033 Moved job type related files into subdirectory jobs 00034 00035 Revision 1.7 2000/01/30 03:06:23 taeubig 00036 Updated topologies. 00037 00038 Revision 1.6 1999/12/01 03:59:54 taeubig 00039 SParallelJob is now superclass of SMalleableJob. 00040 Minor changes for requested topology. 00041 00042 Revision 1.5 1999/11/03 02:55:02 taeubig 00043 Multiprocessor scheduling test implemented. 00044 00045 Revision 1.4 1999/03/31 11:13:29 hall 00046 added a few output operators and save routines 00047 00048 Revision 1.3 1999/02/12 11:55:46 hall 00049 impl. SEnvironment slice 00050 00051 Revision 1.2 1999/01/29 10:03:42 schickin 00052 Project-Headers added. 00053 00054 00055 * #end# ************************************************************* */ 00056 00057 #ifndef SPARALLELJOB_H 00058 #define SPARALLELJOB_H 00059 00060 // system header files 00061 #include <iostream> 00062 00063 // project header files 00064 #include "SJob.h" 00065 #include "SParallelJobMod.h" 00066 #include "../topos/STopology.h" 00067 00068 00069 // ----------------------------------------------------------------------- 00070 class SParallelJob : public virtual SJob { 00071 TYPEINFO0(SParallelJob, "parallel"); 00072 friend class SParallelJobMod; 00073 public: 00074 SParallelJob(SProbabilityDist* dist) : SJob(dist), _mod(*this) {}; 00075 SParallelJob(double proctime) : SJob(proctime), _mod(*this) {}; 00076 virtual ~SParallelJob() {}; 00077 00078 virtual void process(SMachines& machines, double duration); 00079 00080 SJobMod& getModifier() { return _mod; }; 00081 00082 private: 00083 SParallelJobMod _mod; 00084 }; 00085 // ----------------------------------------------------------------------- 00086 std::ostream& operator<<(std::ostream& out, SParallelJob &job); 00087 // ----------------------------------------------------------------------- 00088 00089 #endif //SPARALLELJOB_H