]> jfr.im git - irc/quakenet/newserv.git/blob - core/schedule.h
7d1d586b00ceb9bcbd16c6e2b6dc52ee1a9996b9
[irc/quakenet/newserv.git] / core / schedule.h
1 /* schedule.h */
2
3 #ifndef __SCHEDULE_H
4 #define __SCHEDULE_H
5
6 #include <time.h>
7
8 #define SCHEDULE_ONESHOT 0
9 #define SCHEDULE_REPEATING 1
10
11 typedef void (*ScheduleCallback)(void *);
12
13 typedef struct schedule {
14 time_t nextschedule;
15 int type;
16 int repeatinterval;
17 int repeatcount;
18 ScheduleCallback callback;
19 void *callbackparam;
20 int index; /* Where in the array this event is currently situated */
21 } schedule;
22
23
24 /* schedulealloc.c */
25
26 void initschedulealloc();
27 schedule *getschedule();
28 void freeschedule(schedule *sp);
29
30 /* schedule.c */
31 void initschedule();
32 void sortschedule();
33 void *scheduleoneshot(time_t when, ScheduleCallback callback, void *arg);
34 void *schedulerecurring(time_t first, int count, time_t interval, ScheduleCallback callback, void *arg);
35 void deleteschedule(void *sch, ScheduleCallback callback, void *arg);
36 void deleteallschedules(ScheduleCallback callback);
37 void doscheduledevents(time_t when);
38 void finischedule();
39
40 #endif