From ae39f7001e5603010afc02de29787ade6d48ef14 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 22 Mar 2013 16:34:34 -0500 Subject: port indicator-session to GMenu/cmake. Code coverage increased from 0% to 95.4%. --- src/backend-dbus/backend-dbus.c | 117 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 src/backend-dbus/backend-dbus.c (limited to 'src/backend-dbus/backend-dbus.c') diff --git a/src/backend-dbus/backend-dbus.c b/src/backend-dbus/backend-dbus.c new file mode 100644 index 0000000..ea8f0ec --- /dev/null +++ b/src/backend-dbus/backend-dbus.c @@ -0,0 +1,117 @@ +/* + * Copyright 2013 Canonical Ltd. + * + * Authors: + * Charles Kerr + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 3, as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranties of + * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +#include "actions.h" +#include "backend-dbus.h" +#include "guest.h" +#include "users.h" +#include "utils.h" + +struct dbus_world_data +{ + GCancellable * cancellable; + IndicatorSessionActionsDbus * actions; + IndicatorSessionUsersDbus * users; + IndicatorSessionGuestDbus * guest; +}; + +static void +on_proxies_ready (ConsoleKitManager * ck_manager, + Accounts * account_manager, + DisplayManagerSeat * dm_seat, + ConsoleKitSeat * ck_seat, + ConsoleKitSession * ck_session, + AccountsUser * active_user G_GNUC_UNUSED, + const GError * error, + gpointer gdata) +{ + struct dbus_world_data * data = gdata; + + if (error == NULL) + { + if (data->actions != NULL) + indicator_session_actions_dbus_set_proxies (data->actions, + ck_manager, + dm_seat, + ck_seat); + + if (data->users != NULL) + indicator_session_users_dbus_set_proxies (data->users, + account_manager, + dm_seat, + ck_seat); + + if (data->guest != NULL) + indicator_session_guest_dbus_set_proxies (data->guest, + account_manager, + dm_seat, + ck_seat, + ck_session); + } + + g_free (data); +} + +/*** +**** +***/ + +void +backend_get (GCancellable * cancellable, + IndicatorSessionActions ** setme_actions, + IndicatorSessionUsers ** setme_users, + IndicatorSessionGuest ** setme_guest) +{ + struct dbus_world_data * data; + + data = g_new0 (struct dbus_world_data, 1); + + if (setme_actions != NULL) + { + IndicatorSessionActions * actions; + actions = indicator_session_actions_dbus_new (); + data->actions = INDICATOR_SESSION_ACTIONS_DBUS (actions); + + *setme_actions = actions; + } + + if (setme_users != NULL) + { + IndicatorSessionUsers * users; + users = indicator_session_users_dbus_new (); + data->users = INDICATOR_SESSION_USERS_DBUS (users); + + *setme_users = users; + } + + if (setme_guest != NULL) + { + IndicatorSessionGuest * guest; + guest = indicator_session_guest_dbus_new (); + data->guest = INDICATOR_SESSION_GUEST_DBUS (guest); + + *setme_guest = guest; + } + + data->cancellable = g_object_ref (cancellable); + + indicator_session_util_get_session_proxies (on_proxies_ready, + data->cancellable, + data); +} -- cgit v1.2.3 From 463ed782d3f2480126cb11d3e18630e275526d9e Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 24 Jun 2013 10:16:43 -0500 Subject: update which proxies the dbus utils helper creates --- src/backend-dbus/backend-dbus.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) (limited to 'src/backend-dbus/backend-dbus.c') diff --git a/src/backend-dbus/backend-dbus.c b/src/backend-dbus/backend-dbus.c index ea8f0ec..547c6ab 100644 --- a/src/backend-dbus/backend-dbus.c +++ b/src/backend-dbus/backend-dbus.c @@ -31,38 +31,36 @@ struct dbus_world_data IndicatorSessionGuestDbus * guest; }; -static void -on_proxies_ready (ConsoleKitManager * ck_manager, +static void +on_proxies_ready (Login1Manager * login1_manager, + Login1Seat * login1_seat, + DisplayManagerSeat * display_manager_seat, Accounts * account_manager, - DisplayManagerSeat * dm_seat, - ConsoleKitSeat * ck_seat, - ConsoleKitSession * ck_session, - AccountsUser * active_user G_GNUC_UNUSED, - const GError * error, + GCancellable * cancellable, gpointer gdata) { struct dbus_world_data * data = gdata; - if (error == NULL) + if (!g_cancellable_is_cancelled (cancellable)) { if (data->actions != NULL) indicator_session_actions_dbus_set_proxies (data->actions, - ck_manager, - dm_seat, - ck_seat); + login1_manager, + login1_seat, + display_manager_seat); if (data->users != NULL) indicator_session_users_dbus_set_proxies (data->users, - account_manager, - dm_seat, - ck_seat); + login1_manager, + login1_seat, + display_manager_seat, + account_manager); if (data->guest != NULL) indicator_session_guest_dbus_set_proxies (data->guest, - account_manager, - dm_seat, - ck_seat, - ck_session); + login1_manager, + login1_seat, + display_manager_seat); } g_free (data); -- cgit v1.2.3