Encapsulate obscure detail that lower numeric priority is higher queue priority
[clinton/bobotpp.git] / source / TodoList.H
1 // TodoList.H -*- C++ -*-
2 // Copyright (c) 1998 Etienne BERNARD
3 // Copyright (c) 2002 Clinton Ebadi
4
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 #ifndef TODOLIST_H
20 #define TODOLIST_H
21
22 #include <set>
23 #include <ctime>
24 #include <functional>
25
26 #include "String.H"
27
28 class TodoList;
29
30 class TodoListItem {
31 String line;
32 std::time_t when;
33 public:
34 TodoListItem(String l, std::time_t w)
35 : line(l), when(w) { }
36
37 bool operator<(const TodoListItem &t) const
38 { return when < t.when; }
39
40 friend class TodoList;
41 };
42
43 class TodoList {
44
45 std::multiset<TodoListItem, std::less<TodoListItem> > todoQueue;
46
47 public:
48 TodoList();
49 ~TodoList();
50
51 void addDeban(String, String, std::time_t);
52
53 String getNext();
54 };
55
56 #endif