Repository navigation
Expand file tree
/
Copy pathnode.cpp
More file actions
71 lines (58 loc) · 1.61 KB
/
Copy pathnode.cpp
File metadata and controls
71 lines (58 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include "job.hh"
#include "node.hh"
// Constructors
Node::Node(std::shared_ptr<Job> a_job, std::shared_ptr<Node> a_parent,
int const a_finish_time)
: job(a_job), parent(a_parent), finish_time(a_finish_time)
{}
Node::Node(std::shared_ptr<Job> a_job)
: Node(a_job, nullptr, -1)
{}
// Setters and getters
void Node::setFinishTime(int a_finish_time) {
finish_time = a_finish_time;
}
int Node::getFinishTime(void) {
return finish_time;
}
void Node::setJob(std::shared_ptr<Job> a_job) {
job = a_job;
}
std::shared_ptr<Job>& Node::getJob(void) {
return job;
}
void Node::setParent(std::shared_ptr<Node> a_parent) {
parent = a_parent;
}
std::shared_ptr<Node>& Node::getParent(void) {
return parent;
}
// Overload << to output class to stream
std::ostream& operator<<(std::ostream &stream, Node& node) {
stream << "Node j" << node.getJobTaskNumber() << " | ";
stream << *(node.getJob()) << ", f";
stream << node.getJobTaskNumber() << ": " << node.getFinishTime();
if (node.getParent()) {
stream << " | Parent Node ";
if (node.getParent()->getJobTaskNumber() == -1) {
stream << "root";
} else {
stream << "j" << node.getParent()->getJobTaskNumber();
}
}
return stream;
}
// Class functions
// Returns job's task_number
int Node::getJobTaskNumber(void) {
return job->getTaskNumber();
}
int Node::getJobArrivalTime(void) {
return job->getArrivalTime();
}
int Node::getJobComputationTime(void) {
return job->getComputationTime();
}
int Node::getJobDeadline(void) {
return job->getDeadline();
}