From e8bb5240b38db6f61c6b72a1d1b8cb52c2c0c83e Mon Sep 17 00:00:00 2001 From: Luo Jinghua Date: Sun, 1 Nov 2009 21:16:30 +0800 Subject: milkway: add mw-source::timeout --- milkway/mw-timeout-source.c | 14 ++++++++++++++ milkway/mw-timeout-source.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/milkway/mw-timeout-source.c b/milkway/mw-timeout-source.c index bfa0738..1489204 100644 --- a/milkway/mw-timeout-source.c +++ b/milkway/mw-timeout-source.c @@ -91,6 +91,17 @@ mw_timeout_set_expiration (mw_timeout_source_t *self, } } +static mw_bool_t +source_dispatch_cb(mw_source_t *self, + mw_pointer_t user_data) +{ + mw_timeout_source_type_t *type = (mw_timeout_source_type_t*)MW_TYPE(self); + + if (!type->timeout) + return MW_FALSE; + return type->timeout((mw_timeout_source_t*)self); +} + mw_timeout_source_t* mw_timeout_source_init(mw_timeout_source_t *self, int interval, @@ -104,6 +115,9 @@ mw_timeout_source_init(mw_timeout_source_t *self, self->interval = interval; self->granularity = granularity; + mw_source_set_callback(&self->base, source_dispatch_cb, + NULL, NULL); + mw_timeval_clear(&self->expiration); mw_get_system_time(¤t_time); diff --git a/milkway/mw-timeout-source.h b/milkway/mw-timeout-source.h index e6f1819..f68486e 100644 --- a/milkway/mw-timeout-source.h +++ b/milkway/mw-timeout-source.h @@ -29,6 +29,9 @@ typedef struct _mw_timeout_source mw_timeout_source_t; struct _mw_timeout_source_type { mw_source_type_t base; + + mw_bool_t + (*timeout) (mw_timeout_source_t *self); }; struct _mw_timeout_source { -- cgit v1.2.3