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