1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
/*
* Copyright (C) 2011 Martin Willi
* Copyright (C) 2011 revosec AG
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/
/**
* @defgroup certexpire_cron certexpire_cron
* @{ @ingroup certexpire
*/
#ifndef CERTEXPIRE_CRON_H_
#define CERTEXPIRE_CRON_H_
typedef struct certexpire_cron_t certexpire_cron_t;
/**
* Callback function invoked by cron.
*
* @param data user specified callback data
*/
typedef void (*certexpire_cron_job_t)(void *data);
/**
* Cron style job scheduling.
*/
struct certexpire_cron_t {
/**
* Destroy a certexpire_cron_t.
*
* It currently is not possible to savely cancel a cron job. Make sure
* any scheduled jobs have been canceled before cleaning up.
*/
void (*destroy)(certexpire_cron_t *this);
};
/**
* Create a certexpire_cron instance.
*
* The cron string takes numeric arguments only, but supports ranges (1-5)
* and selections (1,3,5), or a combination, space separated:
* minute hour day month weekday
* minute, 0-59
* hour, 0-23
* day, 1-31
* month, 1-12
* weekday, 0-7 (0 == 7 == sunday)
* man crontab(5) for details.
*
* @param cron cron style scheduling string
* @param job callback function to invoke
* @param data user data to pass to job
*/
certexpire_cron_t *certexpire_cron_create(char *cron, certexpire_cron_job_t job,
void *data);
#endif /** CERTEXPIRE_CRON_H_ @}*/
|