diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-05-24 01:45:54 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-05-24 01:45:54 +0200 |
commit | 871d7de47c13ee6cd78b8eefdf9128be3c740ac0 (patch) | |
tree | c92b146f086cdf7a58145e4e744133e645f8c8e0 /src/timer.h | |
parent | 4288f619215e3dda0b75113d78e4fb7ba219ed58 (diff) |
timer: fully implement timer units
Diffstat (limited to 'src/timer.h')
-rw-r--r-- | src/timer.h | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/src/timer.h b/src/timer.h index 0ec3e0d9bb..69c5609a9c 100644 --- a/src/timer.h +++ b/src/timer.h @@ -30,20 +30,57 @@ typedef enum TimerState { TIMER_DEAD, TIMER_WAITING, TIMER_RUNNING, - _TIMER_STATE_MAX + TIMER_ELAPSED, + TIMER_MAINTAINANCE, + _TIMER_STATE_MAX, + _TIMER_STATE_INVALID = -1 } TimerState; +typedef enum TimerBase { + TIMER_ACTIVE, + TIMER_BOOT, + TIMER_STARTUP, + TIMER_UNIT_ACTIVE, + TIMER_UNIT_INACTIVE, + _TIMER_BASE_MAX, + _TIMER_BASE_INVALID = -1 +} TimerBase; + +typedef struct TimerValue { + TimerBase base; + usec_t value; + + usec_t next_elapse; + + bool disabled; + + LIST_FIELDS(struct TimerValue, value); +} TimerValue; + struct Timer { Meta meta; - TimerState state; + LIST_HEAD(TimerValue, values); + + TimerState state, deserialized_state; - clockid_t clock_id; usec_t next_elapse; - Service *service; + Unit *unit; + + Watch timer_watch; + + bool failure; }; +void timer_unit_notify(Unit *u, UnitActiveState new_state); + extern const UnitVTable timer_vtable; +const char *timer_state_to_string(TimerState i); +TimerState timer_state_from_string(const char *s); + +const char *timer_base_to_string(TimerBase i); +TimerBase timer_base_from_string(const char *s); + #endif |