]> jfr.im git - irc/quakenet/newserv.git/blob - core/schedule.h
TRUSTS: use correct socket opt...
[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 int deleted;
22 } schedule;
23
24
25 /* schedulealloc.c */
26
27 void initschedulealloc();
28 schedule *getschedule();
29 void freeschedule(schedule *sp);
30
31 /* schedule.c */
32 void initschedule();
33 void sortschedule();
34 void *scheduleoneshot(time_t when, ScheduleCallback callback, void *arg);
35 void *schedulerecurring(time_t first, int count, time_t interval, ScheduleCallback callback, void *arg);
36 void deleteschedule(void *sch, ScheduleCallback callback, void *arg);
37 void deleteallschedules(ScheduleCallback callback);
38 void doscheduledevents(time_t when);
39 void finischedule();
40
41 #endif