// src/backend/slice.hh - 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 #ifndef SLICE_HH #define SLICE_HH 1 #include "config.h" #include "schedulable_list.hh" namespace sgpem { class Slice; /** \brief Represents a slice of time during which some characteristic of the state of the simulation are constant Represents a slice of time during which some characteristic of the state of the simulation are constant. It holds a \ref SimulationStatus object which can be accessed through getSimulationStatus() */ class SG_DLLEXPORT Slice { public: /** Constructor for Slice. \param start The Slice's starting time. \param duration Time length of Slice. \param status Photoshot of all \ref Schedulable during this Slice. */ Slice(const int& start, const int& duration, const SchedulableList& status); /** Gets a constant reference to the \ref SchedulableList object for this Slice. \return The reference (constant) to the SchedulableList object for this Slice. */ const SchedulableList* get_simulation_status() const; /** Gets starting time of this Slice. \return The starting time. */ int get_started_at() const; /** Gets duration of this Slice. \return The duration time. */ int get_duration() const; /** Sets duration of this Slice. \param duration The desired duration time. */ void set_duration(const int& duration); private: SchedulableList _ref; int _started_at; int _duration; }; } //~ namespace sgpem #endif