// src/backend/simulationStatus.cc - Copyright 2005, 2006, University // of Padova, dept. of Pure and Applied // Mathematics // // This file is part of SGPEMv2. // // This is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // SGPEMv2 is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with SGPEMv2; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "simulationStatus.hh" using namespace sgpem; using namespace std; SimulationStatus::SimulationStatus() { } SimulationStatus::SimulationStatus(const SimulationStatus& dx) :_set(dx._set) { } /** \brief Adds a SchedulableStatus which represents a running Schedulable object. Adds a SchedulableStatus which represents a running Schedulable object. Note that a copy of SchedulableStatus will be created */ void SimulationStatus::setRunning(SchedulableStatus entity) { if (entity.getState() != SchedulableStatus::state_running) entity.setState(SchedulableStatus::state_running); _set.push_back(entity); } /** \brief Looks for a running Schedulable object and returns ist state. Looks for a running Schedulable object and returns its state. There can be only one running schedulable object. If no running schedulable object is found will be returned the NULL pointer. */ auto_ptr SimulationStatus::getRunning() const { for (uint i=0; i < _set.size(); i++) if (_set[i].getState() == SchedulableStatus::state_running){ //there can be only ONE running schedulable objext SchedulableStatus* s = const_cast( &_set[i]); return auto_ptr(s); } return auto_ptr(NULL); }