00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: SBrdCastAlgorithm.h,v 1.1 2003/01/24 10:04:45 hall Exp $ 00008 00009 Purpose : 00010 00011 * #end# ************************************************************* */ 00012 00013 #ifndef SBRDCASTALGORITHM_H 00014 #define SBRDCASTALGORITHM_H 00015 00016 // system header files 00017 #include <LEDA/graph.h> 00018 #include <LEDA/list.h> 00019 00020 // project header files 00021 #include "SSchedAlgorithm.h" 00022 #include "../tools/SJobIdArray.h" 00023 #include "../model/jobs/SBroadcastRequ.h" 00024 00025 // ---------------------------------------------------------------------- 00028 class SBrdCastAlgorithm : public SSchedAlgorithm { 00029 public: 00030 virtual ~SBrdCastAlgorithm() {}; 00031 virtual void startup(); 00032 virtual double innerLoop(const leda_list<STSysSchedEvent>& rEvents); 00033 virtual const leda_string getDescription() const; 00034 virtual const leda_string &getName() const; 00035 virtual const SClassification &getClassification() const; 00036 virtual SLeaBibEntry &getLeaBibEntry() const; 00037 00038 // new little, helpful functions 00041 int getNumOfMsgs() const; 00042 00046 int getBroadcastedMsg() const; 00047 00050 void broadcastMsg(int msg); 00051 00055 void stopBroadcast(); 00056 00060 leda_list<SBroadcastRequ*> getActiveRequ() const; 00061 private: 00062 }; 00063 // ---------------------------------------------------------------------- 00064 00065 #endif