// depart.cc: the Departure class. #include "main.h" #include "car.h" #include "carqueue.h" #include "event.h" #include "pump.h" #include "pstand.h" #include "stats.h" #include "depart.h" // makeItHappen: departure event routine. void Departure::makeItHappen () { // precondition: pump != null && pump->getCarInService != null // Identify the departing car and collect statistics. Car *departingCar = pump->getCarInService(); sim->stats->accumSale (departingCar->getLitresNeeded()); // The car vanishes and the pump is free; can we serve another car? delete departingCar; if (sim->carQueue->getQueueSize() > 0) pump->startService (sim->carQueue->takeFirstCar()); else sim->pumpStand->releasePump (pump); // This departure event is all done. delete this; }