StandardJobScheduler.h
1 
10 #ifndef WRENCH_STANDARDJOBSCHEDULER_H
11 #define WRENCH_STANDARDJOBSCHEDULER_H
12 
13 
14 #include <set>
15 #include <vector>
16 #include <map>
17 
18 namespace wrench {
19 
20  class ComputeService;
21 
22  class DataMovementManager;
23 
24  class JobManager;
25 
26  class WorkflowTask;
27 
32 
33  public:
34 
39  this->data_movement_manager = nullptr;
40  this->job_manager = nullptr;
41  }
42  /***********************/
44  /***********************/
45  virtual ~StandardJobScheduler() = default;
46  /***********************/
48  /***********************/
49 
56  virtual void scheduleTasks(const std::set<std::shared_ptr<ComputeService>> &compute_services,
57  const std::vector<WorkflowTask *> &tasks) = 0;
58 
59  /***********************/
61  /***********************/
62 
67  std::shared_ptr<DataMovementManager> getDataMovementManager() {
68  return this->data_movement_manager;
69  }
70 
75  std::shared_ptr<JobManager> getJobManager() {
76  return this->job_manager;
77  }
78 
79  /***********************/
81  /***********************/
82 
83  /***********************/
85  /***********************/
86 
91  void setDataMovementManager(std::shared_ptr<DataMovementManager> data_movement_manager) {
92  this->data_movement_manager = data_movement_manager;
93  }
94 
99  void setJobManager(std::shared_ptr<JobManager> job_manager) {
100  this->job_manager = job_manager;
101  }
102 
103  /***********************/
105  /***********************/
106 
107  private:
108  std::shared_ptr<DataMovementManager> data_movement_manager;
109  std::shared_ptr<JobManager> job_manager;
110 
111  };
112 
113 };
114 
115 
116 #endif //WRENCH_STANDARDJOBSCHEDULER_H
std::shared_ptr< DataMovementManager > getDataMovementManager()
Get a reference to the data movement manager to be used by this scheduler (nullptr: none is used)
Definition: StandardJobScheduler.h:67
Definition: Alarm.cpp:20
virtual void scheduleTasks(const std::set< std::shared_ptr< ComputeService >> &compute_services, const std::vector< WorkflowTask * > &tasks)=0
A method that schedules tasks (as part of standard jobs), according to whatever decision algorithm it...
StandardJobScheduler()
Constructor.
Definition: StandardJobScheduler.h:38
A (mostly virtual) base class for implementing StandardJob scheduling algorithms to be used by a WMS.
Definition: StandardJobScheduler.h:31
std::shared_ptr< JobManager > getJobManager()
Get a reference to the job manager to be used by this scheduler (nullptr: none is used)
Definition: StandardJobScheduler.h:75