示例#1
0
void Person::HandleFixed(Environment &env, const Event &e) {

	Elevator *ele = static_cast<Elevator*>(e.GetSender());

	if (ele == elevator_) {
		RequestFloor(env);
	}
}
示例#2
0
void Person::HandleBeeped(Environment &env, const Event &e) {

	Elevator *ele = static_cast<Elevator*>(e.GetSender());

	if (beeping_ && elevator_ == ele) {

		beeping_ = false;
		Cancel(env);
		RequestFloor(env);
	}
}
示例#3
0
void Person::HandleEntered(Environment &env, const Event &e) {

	if (FromMe(e) ) {
		isEnteringOrExiting_ = false;

		if (elevator_->GetState() != Elevator::Malfunction) {
			RequestFloor(env);
		} else {
			Exit(env);
		}
	}
}
void ElevatorManager::OnAction() {
	int temp = RequestFloor();
	if(temp > -1 && temp < 5) {
		floorCalls[temp] = true;
	}
}