-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUser.java
More file actions
126 lines (98 loc) · 3.08 KB
/
User.java
File metadata and controls
126 lines (98 loc) · 3.08 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import java.util.*;
public class User implements Comparable<User> {
private int service_time; // service time required by doctor
private int severity;
private int interarrival_time;
private long priority;
private long time_arrived;
private long time_waited;
private long time_serviced;
private long time_in_ED = -1;
private long time_to_doctor = -1;
private long last_time_waiting_started = -1;
private long last_time_servicing_started = -1;
public User() {
}
public User(int severity, int interarrival_time, long time_arrived, long priority) {
this.severity = severity;
this.interarrival_time = interarrival_time;
this.time_arrived = time_arrived;
this.priority = priority;
}
@Override
public int compareTo(User u) {
return u.priority > this.priority ? -1 : 1;
}
public long getPriority() {
return priority;
}
public void setPriority(long priority) {
this.priority = priority;
}
public int getService_time() {
return service_time;
}
public void setService_time(int service_time) {
this.service_time = service_time;
}
public int getSeverity() {
return severity;
}
public void setSeverity(int severity) {
this.severity = severity;
}
public int getInterarrivalTime() {
return interarrival_time;
}
public void setInterarrivalTime(int interarrival_time) {
this.interarrival_time = interarrival_time;
}
public long getTime_waited() {
return time_waited;
}
public void setTime_waited(long time_waited) {
this.time_waited = time_waited;
}
public long getTime_serviced() {
return time_serviced;
}
public void setTime_serviced(long time_serviced) {
this.time_serviced = time_serviced;
}
public long getTime_arrived() {
return time_arrived;
}
public void setTime_arrived(long time_arrived) {
this.time_arrived = time_arrived;
}
public long getTimeToDoctor() {
return time_to_doctor;
}
public void setTimeToDoctor(long curr_time) {
this.time_to_doctor = curr_time - time_arrived;
}
public long getTimeInED() {
return time_in_ED;
}
public void setTimeInED(long time_discharged) {
this.time_in_ED = time_discharged - time_arrived;
}
public void start_waiting (int curr_time) {
/**
* Resume time waiting counter by updating last_time_waiting_started
*/
if (last_time_servicing_started >= 0) {
time_serviced += (curr_time - last_time_servicing_started);
}
last_time_waiting_started = curr_time;
}
public void start_service (int curr_time) {
/**
* User no longer waiting, add the difference between last_time_waiting_started and current to time_waited
*/
if (last_time_waiting_started >= 0) {
time_waited += (curr_time - last_time_waiting_started);
}
last_time_servicing_started = curr_time;
}
}