X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=timer.c;h=29346204f808a7a4927bf78f9911b6a32b77a16b;hp=b1571ce7ea7af864f11ad6c0273205b0fff77564;hb=87f0e418cf2c58b3201d06a60e3696ec672d2662;hpb=5cb5a6ffc33667c93e9bc3572534dcaa684046e3 diff --git a/timer.c b/timer.c index b1571ce7e..29346204f 100644 --- a/timer.c +++ b/timer.c @@ -1,39 +1,30 @@ /*-*- Mode: C; c-basic-offset: 8 -*-*/ -#include "name.h" +#include "unit.h" #include "timer.h" -static NameActiveState timer_active_state(Name *n) { +static void timer_done(Unit *u) { + Timer *t = TIMER(u); - static const NameActiveState table[_TIMER_STATE_MAX] = { - [TIMER_DEAD] = NAME_INACTIVE, - [TIMER_WAITING] = NAME_ACTIVE, - [TIMER_RUNNING] = NAME_ACTIVE - }; - - return table[TIMER(n)->state]; + assert(t); } -static void timer_free_hook(Name *n) { - Timer *t = TIMER(n); +static UnitActiveState timer_active_state(Unit *u) { - assert(t); + static const UnitActiveState table[_TIMER_STATE_MAX] = { + [TIMER_DEAD] = UNIT_INACTIVE, + [TIMER_WAITING] = UNIT_ACTIVE, + [TIMER_RUNNING] = UNIT_ACTIVE + }; - if (t->service) - t->service->timer = NULL; + return table[TIMER(u)->state]; } -const NameVTable timer_vtable = { +const UnitVTable timer_vtable = { .suffix = ".timer", - .load = name_load_fragment_and_dropin, - .dump = NULL, - - .start = NULL, - .stop = NULL, - .reload = NULL, - - .active_state = timer_active_state, + .init = unit_load_fragment_and_dropin, + .done = timer_done, - .free_hook = timer_free_hook + .active_state = timer_active_state };