mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 15:36:14 +01:00
1b3e6bab53
This allows the controller to explicitly be removed from the bus, in a way that allows the caller to synchronise with it and know that all other references to the controller should have been dropped (i.e. after this method returns, there should be no in-flight D-Bus calls still holding a reference to the object). This is needed to be able to guarantee finalisation of the controller in unit tests (and comparable real-world situations). Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Helps: #1190
70 lines
2.1 KiB
C
70 lines
2.1 KiB
C
/* GIO - GLib Input, Output and Streaming Library
|
|
*
|
|
* Copyright © 2021 Endless OS Foundation, LLC
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General
|
|
* Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* SPDX-License-Identifier: LGPL-2.1-or-later
|
|
*/
|
|
|
|
#ifndef __G_DEBUG_CONTROLLER_DBUS_H__
|
|
#define __G_DEBUG_CONTROLLER_DBUS_H__
|
|
|
|
#include <glib.h>
|
|
#include <glib-object.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
/**
|
|
* GDebugControllerDBus:
|
|
*
|
|
* #GDebugControllerDBus is an implementation of #GDebugController over D-Bus.
|
|
*
|
|
* Since: 2.72
|
|
*/
|
|
#define G_TYPE_DEBUG_CONTROLLER_DBUS (g_debug_controller_dbus_get_type ())
|
|
GLIB_AVAILABLE_IN_2_72
|
|
G_DECLARE_DERIVABLE_TYPE (GDebugControllerDBus, g_debug_controller_dbus, G, DEBUG_CONTROLLER_DBUS, GObject)
|
|
|
|
/**
|
|
* GDebugControllerDBusClass:
|
|
* @parent_class: The parent class.
|
|
* @authorize: Default handler for the #GDebugControllerDBus::authorize signal.
|
|
*
|
|
* The virtual function table for #GDebugControllerDBus.
|
|
*
|
|
* Since: 2.72
|
|
*/
|
|
struct _GDebugControllerDBusClass
|
|
{
|
|
GObjectClass parent_class;
|
|
|
|
gboolean (*authorize) (GDebugControllerDBus *controller,
|
|
GDBusMethodInvocation *invocation);
|
|
|
|
gpointer padding[12];
|
|
};
|
|
|
|
GLIB_AVAILABLE_IN_2_72
|
|
GDebugControllerDBus *g_debug_controller_dbus_new (GDBusConnection *connection,
|
|
GCancellable *cancellable,
|
|
GError **error);
|
|
|
|
GLIB_AVAILABLE_IN_2_72
|
|
void g_debug_controller_dbus_stop (GDebugControllerDBus *self);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __G_DEBUG_CONTROLLER_DBUS_H__ */
|