PilotJobScheduler.h
1 
11 #ifndef WRENCH_PILOTJOBSCHEDULER_H
12 #define WRENCH_PILOTJOBSCHEDULER_H
13 
14 
15 #include <set>
16 
17 namespace wrench {
18 
19  class ComputeService;
20  class DataMovementManager;
21  class JobManager;
22 
27 
28  public:
29 
34  this->data_movement_manager = nullptr;
35  this->job_manager = nullptr;
36  }
37 
38  /***********************/
40  /***********************/
41  virtual ~PilotJobScheduler() = default;
42  /***********************/
44  /***********************/
45 
46 
47  /***********************/
49  /***********************/
50 
56  virtual void schedulePilotJobs(const std::set<std::shared_ptr<ComputeService>> &compute_services) = 0;
57 
62  std::shared_ptr<DataMovementManager> getDataMovementManager() {
63  return this->data_movement_manager;
64  }
65 
70  std::shared_ptr<JobManager> getJobManager() {
71  return this->job_manager;
72  }
73 
74  /***********************/
76  /***********************/
77 
78  /***********************/
80  /***********************/
81 
86  void setDataMovementManager(std::shared_ptr<DataMovementManager> data_movement_manager) {
87  this->data_movement_manager = data_movement_manager;
88  }
89 
94  void setJobManager(std::shared_ptr<JobManager> job_manager) {
95  this->job_manager = job_manager;
96  }
97 
98  /***********************/
100  /***********************/
101 
102  private:
103 
104  std::shared_ptr<DataMovementManager> data_movement_manager;
105  std::shared_ptr<JobManager> job_manager;
106 
107  };
108 };
109 
110 
111 #endif //WRENCH_PILOTJOBSCHEDULER_H
virtual void schedulePilotJobs(const std::set< std::shared_ptr< ComputeService >> &compute_services)=0
A method that schedules pilot jobs, according to whatever decision algorithm it implements,...
Definition: Alarm.cpp:20
PilotJobScheduler()
Constructor.
Definition: PilotJobScheduler.h:33
A (mostly virtual) base class for implementing PilotJob scheduling algorithms to be used by a WMS.
Definition: PilotJobScheduler.h:26
std::shared_ptr< JobManager > getJobManager()
Get the job manager to be used by this scheduler (nullptr: none is used)
Definition: PilotJobScheduler.h:70
std::shared_ptr< DataMovementManager > getDataMovementManager()
Get the data movement manager to be used by this scheduler (nullptr: none is used)
Definition: PilotJobScheduler.h:62