watch);
}
+static void
+toggle_babysitter_watch (DBusWatch *watch,
+ void *data)
+{
+ BusPendingActivation *pending_activation = data;
+
+ _dbus_loop_toggle_watch (bus_context_get_loop (pending_activation->activation->context),
+ watch);
+}
+
static dbus_bool_t
pending_activation_timed_out (void *data)
{
if (!_dbus_babysitter_set_watch_functions (pending_activation->babysitter,
add_babysitter_watch,
remove_babysitter_watch,
- NULL,
+ toggle_babysitter_watch,
pending_activation,
NULL))
{
_dbus_loop_remove_watch (context->loop, watch);
}
+static void
+toggle_server_watch (DBusWatch *watch,
+ void *data)
+{
+ DBusServer *server = data;
+ BusContext *context;
+
+ context = server_get_context (server);
+
+ _dbus_loop_toggle_watch (context->loop, watch);
+}
+
static dbus_bool_t
add_server_timeout (DBusTimeout *timeout,
void *data)
if (!dbus_server_set_watch_functions (server,
add_server_watch,
remove_server_watch,
- NULL,
+ toggle_server_watch,
server,
NULL))
{
_dbus_loop_remove_watch (connection_get_loop (connection), watch);
}
+static void
+toggle_connection_watch (DBusWatch *watch,
+ void *data)
+{
+ DBusConnection *connection = data;
+
+ _dbus_loop_toggle_watch (connection_get_loop (connection), watch);
+}
+
static dbus_bool_t
add_connection_timeout (DBusTimeout *timeout,
void *data)
if (!dbus_connection_set_watch_functions (connection,
add_connection_watch,
remove_connection_watch,
- NULL,
+ toggle_connection_watch,
connection,
NULL))
goto out;
_dbus_loop_remove_watch (client_loop, watch);
}
+static void
+toggle_client_watch (DBusWatch *watch,
+ void *data)
+{
+ _dbus_loop_toggle_watch (client_loop, watch);
+}
+
static dbus_bool_t
add_client_timeout (DBusTimeout *timeout,
void *data)
if (!dbus_connection_set_watch_functions (connection,
add_client_watch,
remove_client_watch,
- NULL,
+ toggle_client_watch,
connection,
NULL))
goto out;
}
void
+_dbus_loop_toggle_watch (DBusLoop *loop,
+ DBusWatch *watch)
+{
+ /* stub */
+}
+
+void
_dbus_loop_remove_watch (DBusLoop *loop,
DBusWatch *watch)
{
DBusWatch *watch);
void _dbus_loop_remove_watch (DBusLoop *loop,
DBusWatch *watch);
+void _dbus_loop_toggle_watch (DBusLoop *loop,
+ DBusWatch *watch);
dbus_bool_t _dbus_loop_add_timeout (DBusLoop *loop,
DBusTimeout *timeout);
void _dbus_loop_remove_timeout (DBusLoop *loop,
_dbus_loop_remove_watch (cd->loop, watch);
}
+static void
+toggle_watch (DBusWatch *watch,
+ void *data)
+{
+ CData *cd = data;
+
+ _dbus_loop_toggle_watch (cd->loop, watch);
+}
+
static dbus_bool_t
add_timeout (DBusTimeout *timeout,
void *data)
if (cd == NULL)
goto nomem;
- /* Because dbus-mainloop.c checks dbus_timeout_get_enabled(),
- * dbus_watch_get_enabled() directly, we don't have to provide
- * "toggled" callbacks.
- */
-
if (!dbus_connection_set_watch_functions (connection,
add_watch,
remove_watch,
- NULL,
+ toggle_watch,
cd, cdata_free))
goto nomem;
}
static void
+toggle_server_watch (DBusWatch *watch,
+ void *data)
+{
+ ServerData *context = data;
+
+ _dbus_loop_toggle_watch (context->loop, watch);
+}
+
+static void
remove_server_watch (DBusWatch *watch,
void *data)
{
if (!dbus_server_set_watch_functions (server,
add_server_watch,
remove_server_watch,
- NULL,
+ toggle_server_watch,
sd,
serverdata_free))
{