1 /* 2 * cSchedule.h 3 * Avida 4 * 5 * Called "schedule.hh" prior to 12/7/05. 6 * Copyright 1999-2011 Michigan State University. All rights reserved. 7 * Copyright 1993-2003 California Institute of Technology. 8 * 9 * 10 * This file is part of Avida. 11 * 12 * Avida is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License 13 * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 14 * 15 * Avida is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public License along with Avida. 19 * If not, see <http://www.gnu.org/licenses/>. 20 * 21 */ 22 23 #ifndef cSchedule_h 24 #define cSchedule_h 25 26 class cDeme; 27 class cMerit; 28 29 /** 30 * This class is the base object to handle time-slicing. All other schedulers 31 * are derived from this class. This is a virtual class. 32 * 33 **/ 34 class cSchedule 35 { 36 protected: 37 int item_count; 38 39 40 cSchedule(); // @not_implemented 41 cSchedule(const cSchedule&); // @not_implemented 42 cSchedule& operator=(const cSchedule&); // @not_implemented 43 44 public: 45 cSchedule(int _item_count); 46 virtual ~cSchedule(); 47 OK()48 virtual bool OK() { return true; } 49 virtual void Adjust(int item_id, const cMerit& merit, int deme_id = 0) = 0; 50 virtual int GetNextID() = 0; GetStatus(int id)51 virtual double GetStatus(int id) { return 0.0; } 52 }; 53 54 #endif 55