3 /* timer - delayed and repetitive tasks */
4 /* module's public interface exported to end user. */
6 /* Copyright (c) 2005 Martin Quinson. All rights reserved. */
8 /* This program is free software; you can redistribute it and/or modify it
9 * under the terms of the license (GNU LGPL) which comes with this package. */
18 /** @addtogroup GRAS_timer
19 * @brief Delayed and repetitive tasks
21 * This is how to have a specific function called only once after the
22 * specified amount of time or a function executed every 5 mn until it gets
23 * removed. In the UNIX world, this is comparable to <tt>at</tt> and
26 * Note that this is very soft timers: the execution of the processes won't
27 * get interrupted at all. This is on purpose: the GRAS programming model
28 * is distributed sequential, so that users don't have to deal with mutexes
29 * and such within a specific process.
31 * Timers are served by the gras_handle() function: if there is an elapsed
32 * timer, the associated code gets executed before any incomming connexion
35 * The section \ref GRAS_ex_timer constitutes a perfect example of these features.
40 void gras_timer_delay(double delay, void_f_void_t action);
41 void gras_timer_repeat(double interval, void_f_void_t action);
43 void gras_timer_cancel_delay(double interval, void_f_void_t action);
44 void gras_timer_cancel_repeat(double interval, void_f_void_t action);
46 void gras_timer_cancel_delay_all(void);
47 void gras_timer_cancel_repeat_all(void);
49 void gras_timer_cancel_all(void);
55 #endif /* GRAS_TIMER_H */