00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: SOpenShop.h,v 1.6 2003/01/24 10:04:59 hall Exp $ 00008 00009 Purpose : 00010 00011 RCS-Log: 00012 $Log: SOpenShop.h,v $ 00013 Revision 1.6 2003/01/24 10:04:59 hall 00014 brdCast stuff 00015 00016 Revision 1.5 2003/01/08 18:57:13 meierb 00017 added randomized release times 00018 00019 Revision 1.2 2002/12/12 19:08:56 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.3 2002/11/10 18:05:42 taeubig 00026 namespace and header include changes 00027 00028 Revision 1.2 2002/11/07 12:33:25 taeubig 00029 Added class keyword to friend declaration 00030 00031 Revision 1.1 2002/08/29 12:59:59 taeubig 00032 Added the sources 00033 00034 Revision 1.1 2000/05/29 19:44:34 taeubig 00035 Moved environment related files into subdirectory env 00036 00037 Revision 1.10 2000/05/24 12:46:13 taeubig 00038 New compiler (gcc-2.95) and new Qt (2.1) 00039 Replaced "list" by "leda_list" etc. 00040 00041 Revision 1.9 2000/01/13 16:44:08 zoidl 00042 added javadoc comments 00043 00044 Revision 1.8 1999/12/01 14:28:23 zoidl 00045 corrected declaration of getModifer() 00046 00047 Revision 1.7 1999/11/24 17:51:45 zoidl 00048 open shop example works 00049 00050 Revision 1.6 1999/11/18 19:00:39 zoidl 00051 test frame for shops, modifier for SOpenShop (no load() yet!) 00052 00053 Revision 1.5 1999/11/17 14:57:38 schickin 00054 frame for shop models added 00055 00056 Revision 1.4 1999/02/12 11:55:45 hall 00057 impl. SEnvironment slice 00058 00059 Revision 1.3 1999/02/10 15:05:45 schickin 00060 model-directory can be compiled now 00061 00062 Revision 1.2 1999/01/29 10:03:42 schickin 00063 Project-Headers added. 00064 00065 00066 * #end# ************************************************************* */ 00067 00068 #ifndef SOPENSHOP_H 00069 #define SOPENSHOP_H 00070 00071 // system header files 00072 #include <LEDA/array2.h> 00073 00074 // project header files 00075 #include "SGeneralShop.h" 00076 #include "SOpenShopMod.h" 00077 #include "../jobs/SJob.h" 00078 #include "../jobs/SShopJob.h" 00079 00087 class SOpenShop : public virtual SGeneralShop { 00088 TYPEINFO1(SOpenShop, "O", SGeneralShop); 00089 friend class SOpenShopMod; 00090 00091 public: 00094 SOpenShop(); 00095 00096 // inherited by SEnvironment (via SGeneralShop) 00097 00100 virtual SEnvironmentMod& getModifier() 00101 { return _mod; }; 00102 00110 virtual double getRemProcTimeOn(SJob& job, 00111 const SMachines& machines) const; 00112 00115 virtual int getNumOfMachines() const 00116 { return _numMach; }; 00117 00118 // inherited by SGeneralShop 00119 00125 virtual leda_list<int> getAvailOperations(const SShopJob& job) const; 00126 00133 virtual double getPartialProcTime(const SShopJob& job, int op, 00134 const SMachines& mach) const; 00135 00138 virtual int getNumOperations(const SShopJob& job) const; 00139 00147 virtual leda_list<int> getMachinesFor(const SShopJob& job, int op) const; 00148 00151 virtual int getNextOperation(const SShopJob& job) const; 00152 00153 private: 00154 SOpenShopMod _mod; 00155 00159 leda_array2<double> _partTimes; 00161 int _numMach; 00162 }; 00163 00164 #endif //SOPENSHOP_H