]> jfr.im git - irc/quakenet/newserv.git/blame - core/schedule.h
merge
[irc/quakenet/newserv.git] / core / schedule.h
CommitLineData
2c5db955
CP
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
11typedef void (*ScheduleCallback)(void *);
12
13typedef 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
26void initschedulealloc();
27schedule *getschedule();
28void freeschedule(schedule *sp);
29
30/* schedule.c */
31void initschedule();
32void sortschedule();
33void *scheduleoneshot(time_t when, ScheduleCallback callback, void *arg);
34void *schedulerecurring(time_t first, int count, time_t interval, ScheduleCallback callback, void *arg);
35void deleteschedule(void *sch, ScheduleCallback callback, void *arg);
36void deleteallschedules(ScheduleCallback callback);
37void doscheduledevents(time_t when);
38
39#endif