bool EnvironmentSubjectInterf::kill(int id) { Observer * obs = getObserverById(id); detach(obs); if (! obs) return false; switch (obs->getType()) { case TObsLogFile: ((ObserverLogFile *)obs)->close(); delete (ObserverLogFile *)obs; break; case TObsTable: ((ObserverTable *)obs)->close(); delete (ObserverTable *)obs; break; case TObsGraphic: case TObsDynamicGraphic: ((ObserverGraphic *)obs)->close(); delete (ObserverGraphic *)obs; break; case TObsUDPSender: ((ObserverUDPSender *)obs)->close(); delete (ObserverUDPSender *)obs; break; case TObsTextScreen: ((ObserverTextScreen *)obs)->close(); delete (ObserverTextScreen *)obs; break; //case TObsPlayer: // ((ObserverPlayer *)obs)->close(); // delete (ObserverPlayer *)obs; // break; // case TObsMap: // ((AgentObserverMap *)obs)->close(); // delete (AgentObserverMap *)obs; // break; //case TObsImage: // ((AgentObserverImage *)obs)->close(); // delete (AgentObserverImage *)obs; // break; default: delete obs; break; } obs = 0; return true; }
bool GlobalAgentSubjectInterf::kill(int id) { Observer * obs = getObserverById(id); detach(obs); if (!obs) return false; //if ((obs->getObserverType() != TObsMap) && (obs->getObserverType() != TObsImage)) // detachObserver(obs); switch (obs->getType()) { case TObsLogFile: ((ObserverLogFile *)obs)->close(); delete(ObserverLogFile *)obs; break; case TObsTable: ((ObserverTable *)obs)->close(); delete(ObserverTable *)obs; break; case TObsGraphic: case TObsDynamicGraphic: ((ObserverGraphic *)obs)->close(); delete(ObserverGraphic *)obs; break; case TObsUDPSender: ((ObserverUDPSender *)obs)->close(); delete(ObserverUDPSender *)obs; break; case TObsTextScreen: ((ObserverTextScreen *)obs)->close(); delete(ObserverTextScreen *)obs; break; case TObsStateMachine: ((ObserverStateMachine *)obs)->close(); delete(ObserverStateMachine *)obs; break; //case TObsMap: // ((AgentObserverMap *)obs)->unregistry(this); // break; default: delete obs; break; } obs = 0; return true; }
bool CellSubjectInterf::kill(int id) { Observer * obs = getObserverById(id); detach(obs); if (! obs) return false; switch (obs->getType()) { case TObsLogFile: ((ObserverLogFile *)obs)->close(); delete (ObserverLogFile *)obs; break; case TObsTable: ((ObserverTable *)obs)->close(); delete (ObserverTable *)obs; break; case TObsGraphic: case TObsDynamicGraphic: ((ObserverGraphic *)obs)->close(); delete (ObserverGraphic *)obs; break; case TObsUDPSender: ((ObserverUDPSender *)obs)->close(); delete (ObserverUDPSender *)obs; break; case TObsTextScreen: ((ObserverTextScreen *)obs)->close(); delete (ObserverTextScreen *)obs; break; default: delete obs; break; } obs = 0; return true; }