GreenCloud Simulator
cloudtask.h
Go to the documentation of this file.
1 #ifndef ns_cloudtask_h
2 #define ns_cloudtask_h
3 
4 #include "scheduler.h"
5 #include "resourceconsumer.h"
6 #include <stdlib.h>
7 #include <float.h>
8 #include <vector>
9 
10 class TaskAlloc;
11 class ResourceProvider;
12 class CloudUser;
13 class TaskInfo;
14 
15 class CloudTask : public ResourceConsumer {
16 public:
17  CloudTask();
18  CloudTask(unsigned int size, double duration, std::vector<Resource*> demand, CloudUser* clouduser);
19  virtual ~CloudTask();
20 
21  int getID() {return id_;};
22  double getMIPS(int rd, int cap);
23  double getDeadline() {return deadline_;};
24  int getOutput() {return output_;};
25 
26  void setMIPS(int rd, int cap,double mips);
27  void setID(int id) {id_ = id;};
28  void setDeadline(double deadline) {deadline_ = deadline;};
29  void setOutput(int output) {output_ = output;};
30  void setIntercom(int intercom) {intercom_ = intercom;};
31  /*
32  * Checks if all allocations are successfully finished.
33  */
34  bool isFinished();
35 
36  void printCompCapacites();
40  void removeTaskAlloc(TaskAlloc* ta);
45  void fail(ResourceProvider* provider);
49  void releaseAllTaskAllocs();
50 
51  int id_;
52  bool scheduled_;
53  bool started_;
54  double deadline_;
55  bool failed_;
60  std::vector<TaskAlloc*> task_allocations_;
62 
63 protected:
64  void handler(Event *);
67  int output_;
68  int intercom_;
70 };
71 
72 #endif
bool scheduled_
Definition: cloudtask.h:52
double getMIPS(int rd, int cap)
Definition: cloudtask.cc:52
int getID()
Definition: cloudtask.h:21
int getOutput()
Definition: cloudtask.h:24
TaskInfo * info_
Definition: cloudtask.h:61
bool failed_
Definition: cloudtask.h:55
void handler(Event *)
bool isFinished()
Definition: cloudtask.cc:83
double getDeadline()
Definition: cloudtask.h:23
virtual ~CloudTask()
Definition: cloudtask.cc:39
int id_
Definition: cloudtask.h:51
std::vector< TaskAlloc * > task_allocations_
Definition: cloudtask.h:60
double deadline_
Definition: cloudtask.h:54
void setDeadline(double deadline)
Definition: cloudtask.h:28
void setID(int id)
Definition: cloudtask.h:27
int output_
Definition: cloudtask.h:67
int intercom_
Definition: cloudtask.h:68
void fail(ResourceProvider *provider)
Definition: cloudtask.cc:59
void releaseAllTaskAllocs()
Definition: cloudtask.cc:70
void setOutput(int output)
Definition: cloudtask.h:29
void setIntercom(int intercom)
Definition: cloudtask.h:30
void removeTaskAlloc(TaskAlloc *ta)
Definition: cloudtask.cc:78
void printCompCapacites()
Definition: cloudtask.cc:95
CloudUser * user_
Definition: cloudtask.h:65
bool started_
Definition: cloudtask.h:53
void setMIPS(int rd, int cap, double mips)
Definition: cloudtask.cc:48