00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: SBroadcastRequ.h,v 1.2 2003/01/24 10:05:01 hall Exp $ 00008 00009 Purpose : 00010 00011 * #end# ************************************************************* */ 00012 00013 #ifndef SBROADCASTREQU_H 00014 #define SBROADCASTREQU_H 00015 00016 // system header files 00017 #include <iostream> 00018 00019 // project header files 00020 #include "SJob.h" 00021 #include "SBroadcastRequMod.h" 00022 #include "SParallelJob.h" 00023 #include "../topos/STopology.h" 00024 #include "../topos/SSingleTopology.h" 00025 00026 // ----------------------------------------------------------------------- 00033 class SBroadcastRequ : public virtual SJob { 00034 TYPEINFO0(SBroadcastRequ, "broadcast"); 00035 friend class SBroadcastRequMod; 00036 public: 00037 SBroadcastRequ(SProbabilityDist* dist) : SJob(dist), _mod(*this) { 00038 getModifier().setTopology(new SSingleTopology);}; 00039 SBroadcastRequ() : SJob(), _mod(*this) { 00040 getModifier().setTopology(new SSingleTopology);}; 00041 virtual ~SBroadcastRequ() {}; 00042 00046 int getMsgIndex() const { return _msgIndex; }; 00047 00048 virtual void process(SMachines& machines, double duration); 00049 00050 SJobMod& getModifier() { return _mod; }; 00051 private: 00052 SBroadcastRequMod _mod; 00054 int _msgIndex; 00055 }; 00056 // ----------------------------------------------------------------------- 00057 std::ostream& operator<<(std::ostream& out, SBroadcastRequ &job); 00058 // ----------------------------------------------------------------------- 00059 00060 #endif //SBROADCASTREQU_H