diff options
Diffstat (limited to 'test/bus-test-loop.c')
-rw-r--r-- | test/bus-test-loop.c | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/test/bus-test-loop.c b/test/bus-test-loop.c deleted file mode 100644 index aa9e4fcc..00000000 --- a/test/bus-test-loop.c +++ /dev/null @@ -1,120 +0,0 @@ -#include "bus-test-loop.h" -#include <sys/time.h> -#include <stdio.h> - -#define DBUS_COMPILATION /* cheat and use DBusList */ -#include <dbus/dbus-list.h> -#undef DBUS_COMPILATION - -typedef struct -{ - long time; - DBusTimeout *timeout; - -} LoopTimeout; - -static DBusList *timeouts; - -static long -get_time (void) -{ - struct timeval r; - long time; - - /* Can't use dbus-sysdeps here since that isn't - * available outside of libdbus. - */ - gettimeofday (&r, NULL); - - time = r.tv_sec * 1000; - time += r.tv_usec / 1000; - - return time; -} - -static void -add_timeout (DBusTimeout *timeout, - void *data) -{ - LoopTimeout *lt; - - lt = dbus_new (LoopTimeout, 1); - lt->time = get_time () + dbus_timeout_get_interval (timeout); - lt->timeout = timeout; - - _dbus_list_append (&timeouts, lt); -} - -static void -remove_timeout (DBusTimeout *timeout, - void *data) -{ - DBusList *link; - - link = _dbus_list_get_first_link (&timeouts); - while (link != NULL) - { - LoopTimeout *lt = link->data; - if (lt->timeout == timeout) - { - _dbus_list_remove (&timeouts, lt); - return; - } - link = _dbus_list_get_next_link (&timeouts, link); - } -} - -static dbus_bool_t running_loop; - - -void -bus_test_loop_quit (void) -{ - running_loop = FALSE; -} - -void -bus_test_loop_run (void) -{ - running_loop = TRUE; - - /* Horribly inefficient main loop */ - while (running_loop) - { - DBusList *link, *list_copy; - long time; - - time = get_time (); - - _dbus_list_copy (&timeouts, &list_copy); - - link = _dbus_list_get_first_link (&list_copy); - while (link != NULL) - { - LoopTimeout *lt = link->data; - if (lt->time <= time) - { - dbus_timeout_handle (lt->timeout); - _dbus_list_remove (&timeouts, lt); - } - link = _dbus_list_get_next_link (&list_copy, link); - } - } -} - - -void -bus_test_loop_hookup_with_server (DBusServer *server) -{ - dbus_server_set_timeout_functions (server, - add_timeout, remove_timeout, - NULL, NULL); -} - -void -bus_test_loop_hookup_with_connection (DBusConnection *connection) -{ - dbus_connection_set_timeout_functions (connection, - add_timeout, remove_timeout, - NULL, NULL); -} |