-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSystem.cpp
More file actions
82 lines (62 loc) · 3.72 KB
/
Copy pathSystem.cpp
File metadata and controls
82 lines (62 loc) · 3.72 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
#include "System.h"
void System::add_track(Track track) {
tracks.push_back(track);
}
void System::add_semaphore(Semaphore semaphore) {
semaphores.push_back(semaphore);
}
System::System() {
// ID f1 f2 v s
add_track(Track("N1sul", 20, 05, 60, 500));
add_track(Track("N1norte", 00, 00, 60, 500));
add_track(Track("N2sul", 20, 05, 40, 500));
add_track(Track("N2norte", 00, 00, 40, 500));
add_track(Track("L1oeste", 10, 02, 30, 400));
add_track(Track("L1leste", 00, 00, 30, 400));
add_track(Track("S2norte", 60, 15, 40, 500));
add_track(Track("S2sul", 00, 00, 40, 500));
add_track(Track("S1norte", 30, 07, 60, 500));
add_track(Track("S1sul", 00, 00, 60, 500));
add_track(Track("O1leste", 10, 02, 80, 2000));
add_track(Track("O1oeste", 00, 00, 80, 2000));
add_track(Track("C1oeste", 00, 00, 60, 300));
add_track(Track("C1leste", 00, 00, 60, 300));
//S1
add_semaphore(Semaphore(tracks.at(tracks.find(Track("N1sul"))), // afferent
tracks.at(tracks.find(Track("C1leste"))), // efferent1
tracks.at(tracks.find(Track("S1sul"))), // efferent2
tracks.at(tracks.find(Track("O1oeste"))))); // efferent3
add_semaphore(Semaphore(tracks.at(tracks.find(Track("C1oeste"))), // afferent
tracks.at(tracks.find(Track("S1sul"))), // efferent1
tracks.at(tracks.find(Track("O1oeste"))), // efferent2
tracks.at(tracks.find(Track("N1norte"))))); // efferent3
add_semaphore(Semaphore(tracks.at(tracks.find(Track("S1norte"))), // afferent
tracks.at(tracks.find(Track("O1oeste"))), // efferent1
tracks.at(tracks.find(Track("N1norte"))), // efferent2
tracks.at(tracks.find(Track("C1leste"))))); // efferent3
add_semaphore(Semaphore(tracks.at(tracks.find(Track("O1leste"))), // afferent
tracks.at(tracks.find(Track("N1norte"))), // efferent1
tracks.at(tracks.find(Track("C1leste"))), // efferent2
tracks.at(tracks.find(Track("S1sul"))))); // efferent3
// S2
add_semaphore(Semaphore(tracks.at(tracks.find(Track("N2sul"))), // afferent
tracks.at(tracks.find(Track("L1leste"))), // efferent1
tracks.at(tracks.find(Track("S2sul"))), // efferent2
tracks.at(tracks.find(Track("C1oeste"))))); // efferent3
add_semaphore(Semaphore(tracks.at(tracks.find(Track("L1oeste"))), // afferent
tracks.at(tracks.find(Track("S2sul"))), // efferent1
tracks.at(tracks.find(Track("C1oeste"))), // efferent2
tracks.at(tracks.find(Track("N2norte"))))); // efferent3
add_semaphore(Semaphore(tracks.at(tracks.find(Track("S2norte"))), // afferent
tracks.at(tracks.find(Track("C1oeste"))), // efferent1
tracks.at(tracks.find(Track("N2norte"))), // efferent2
tracks.at(tracks.find(Track("L1leste"))))); // efferent3
add_semaphore(Semaphore(tracks.at(tracks.find(Track("C1leste"))), // afferent
tracks.at(tracks.find(Track("N2norte"))), // efferent1
tracks.at(tracks.find(Track("L1leste"))), // efferent2
tracks.at(tracks.find(Track("S2sul"))))); // efferent3
}
void System::run() {
auto track = semaphore->get_afferent_track();
track->schedule_arrival_in_track();
}