72f4f3a68ca8499e4cc325affc5e42c9cdb74f67
[wakeup.git] / src / event.h
1
2 #include <list>
3 #include <set>
4 #include <xml.h>
5 #include <date.h>
6
7 #include "action.h"
8
9 class Event
10 {
11    String              label;
12    UTC                 start_time;
13
14    String              pattern;    // for recurrance
15    UTC                 recurrance_interval;
16    std::set<int>       weekdays;
17
18    std::list<Action *> sequence;
19
20 public:
21
22    Event()
23    {
24       label = "";
25       pattern = "none";
26    }
27
28    Event(String lbl)
29    {
30       label = lbl;
31       pattern = "none";
32    }
33
34    void   FromXML(xml_element x);
35    String ToXML(void);
36
37    void  add_action(String command);
38
39    UTC   next_occurance(UTC after);
40 };
41
42 std::list<Event> read_alarms(const char *filename);
43 String alarms_to_XML(std::list<Event> alarms);