1 #include "test-utils.h"
6 DBusConnection *connection;
11 connection_watch_callback (DBusWatch *watch,
12 unsigned int condition,
18 retval = dbus_connection_handle_watch (cd->connection, watch, condition);
24 add_watch (DBusWatch *watch,
29 return _dbus_loop_add_watch (cd->loop,
31 connection_watch_callback,
36 remove_watch (DBusWatch *watch,
41 _dbus_loop_remove_watch (cd->loop,
42 watch, connection_watch_callback, cd);
46 connection_timeout_callback (DBusTimeout *timeout,
51 /* Can return FALSE on OOM but we just let it fire again later */
52 dbus_timeout_handle (timeout);
56 add_timeout (DBusTimeout *timeout,
61 return _dbus_loop_add_timeout (cd->loop,
62 timeout, connection_timeout_callback, cd, NULL);
66 remove_timeout (DBusTimeout *timeout,
71 _dbus_loop_remove_timeout (cd->loop,
72 timeout, connection_timeout_callback, cd);
76 dispatch_status_function (DBusConnection *connection,
77 DBusDispatchStatus new_status,
80 DBusLoop *loop = data;
82 if (new_status != DBUS_DISPATCH_COMPLETE)
84 while (!_dbus_loop_queue_dispatch (loop, connection))
85 _dbus_wait_for_memory ();
90 cdata_free (void *data)
94 dbus_connection_unref (cd->connection);
95 _dbus_loop_unref (cd->loop);
101 cdata_new (DBusLoop *loop,
102 DBusConnection *connection)
106 cd = dbus_new0 (CData, 1);
111 cd->connection = connection;
113 dbus_connection_ref (cd->connection);
114 _dbus_loop_ref (cd->loop);
120 test_connection_setup (DBusLoop *loop,
121 DBusConnection *connection)
127 dbus_connection_set_dispatch_status_function (connection, dispatch_status_function,
130 cd = cdata_new (loop, connection);
134 /* Because dbus-mainloop.c checks dbus_timeout_get_enabled(),
135 * dbus_watch_get_enabled() directly, we don't have to provide
136 * "toggled" callbacks.
139 if (!dbus_connection_set_watch_functions (connection,
147 cd = cdata_new (loop, connection);
151 if (!dbus_connection_set_timeout_functions (connection,
158 if (dbus_connection_get_dispatch_status (connection) != DBUS_DISPATCH_COMPLETE)
160 if (!_dbus_loop_queue_dispatch (loop, connection))
170 dbus_connection_set_dispatch_status_function (connection, NULL, NULL, NULL);
171 dbus_connection_set_watch_functions (connection, NULL, NULL, NULL, NULL, NULL);
172 dbus_connection_set_timeout_functions (connection, NULL, NULL, NULL, NULL, NULL);
178 test_connection_shutdown (DBusLoop *loop,
179 DBusConnection *connection)
181 if (!dbus_connection_set_watch_functions (connection,
186 _dbus_assert_not_reached ("setting watch functions to NULL failed");
188 if (!dbus_connection_set_timeout_functions (connection,
193 _dbus_assert_not_reached ("setting timeout functions to NULL failed");
195 dbus_connection_set_dispatch_status_function (connection, NULL, NULL, NULL);