-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPassageiro.cpp
More file actions
executable file
·62 lines (45 loc) · 1.14 KB
/
Copy pathPassageiro.cpp
File metadata and controls
executable file
·62 lines (45 loc) · 1.14 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
/*
* Passageiro.cpp
*
* Created on: 17 de abr de 2017
* Author: bruno
*/
#include "include/Passageiro.h"
#include "include/Carro.h"
#include "include/Parque.h"
#define MAX_NUM_VOLTAS 50
Passageiro::Passageiro(int id, Carro *c) {
this->id = id;
this->carro = c;
}
Passageiro::~Passageiro() {
}
void Passageiro::entraNoCarro() {
// Protocolo de entrada o Algoritmo da Padaria
// Incrementa o numero de passageiros no carro (use a funcao fetch_add)
}
void Passageiro::esperaVoltaAcabar() {
// while (!voltaAcabou) { delay; }
}
void Passageiro::saiDoCarro() {
// Protocolo de saida do Algoritmo da Padaria
// Decrementa o numero de passageiros no carro (use a funcao fetch_add)
}
void Passageiro::passeiaPeloParque() {
// Dorme um tempo aleatorio
}
bool Passageiro::parqueFechado() {
if (carro->getNVoltas() < MAX_NUM_VOLTAS)
return false;
return true;
}
void Passageiro::run() {
while (!parqueFechado()) {
entraNoCarro(); // protocolo de entrada
esperaVoltaAcabar();
saiDoCarro(); // protocolo de saida
passeiaPeloParque(); // secao nao critica
}
// decrementa o numero de pessoas no parque
Parque::numPessoas -=1;
}