From: Anders Carlsson Date: Thu, 13 Feb 2003 20:37:07 +0000 (+0000) Subject: 2003-02-13 Anders Carlsson X-Git-Tag: dbus-0.4~33 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fef27dc10d03bf0b80e11e77739e50322aa163b9;p=thirdparty%2Fdbus.git 2003-02-13 Anders Carlsson * glib/dbus-gmain.c: (timeout_handler), (add_timeout), (remove_timeout): Implement support for timeouts in dbus-glib. --- diff --git a/ChangeLog b/ChangeLog index 778fed0ba..5c5645c39 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-02-13 Anders Carlsson + + * glib/dbus-gmain.c: (timeout_handler), (add_timeout), + (remove_timeout): + Implement support for timeouts in dbus-glib. + 2003-02-13 Anders Carlsson * dbus/dbus-message-builder.c: (_dbus_message_data_load): diff --git a/glib/dbus-gmain.c b/glib/dbus-gmain.c index c5197e5e0..80d7d6bae 100644 --- a/glib/dbus-gmain.c +++ b/glib/dbus-gmain.c @@ -172,16 +172,38 @@ remove_watch (DBusWatch *watch, g_free (poll_fd); } +static gboolean +timeout_handler (gpointer data) +{ + DBusTimeout *timeout = data; + + dbus_timeout_handle (timeout); + + return FALSE; +} + + static void add_timeout (DBusTimeout *timeout, void *data) { + guint timeout_tag; + + timeout_tag = g_timeout_add (dbus_timeout_get_interval (timeout), + timeout_handler, timeout); + + dbus_timeout_set_data (timeout, GUINT_TO_POINTER (timeout_tag), NULL); } static void remove_timeout (DBusTimeout *timeout, void *data) { + guint timeout_tag; + + timeout_tag = GPOINTER_TO_UINT (dbus_timeout_get_data (timeout)); + + g_source_remove (timeout_tag); } void