gdbusobjectmanager: store signal ids for re-use

Having access to the signal-id is useful when we want to specify additional
signal related settings (such as va_marshaller).
This commit is contained in:
Christian Hergert 2019-06-17 16:11:26 -07:00
parent 266a292a35
commit d7c1d477bc

View File

@ -51,6 +51,16 @@
typedef GDBusObjectManagerIface GDBusObjectManagerInterface; typedef GDBusObjectManagerIface GDBusObjectManagerInterface;
G_DEFINE_INTERFACE (GDBusObjectManager, g_dbus_object_manager, G_TYPE_OBJECT) G_DEFINE_INTERFACE (GDBusObjectManager, g_dbus_object_manager, G_TYPE_OBJECT)
enum {
OBJECT_ADDED,
OBJECT_REMOVED,
INTERFACE_ADDED,
INTERFACE_REMOVED,
N_SIGNALS
};
static guint signals[N_SIGNALS];
static void static void
g_dbus_object_manager_default_init (GDBusObjectManagerIface *iface) g_dbus_object_manager_default_init (GDBusObjectManagerIface *iface)
{ {
@ -63,16 +73,17 @@ g_dbus_object_manager_default_init (GDBusObjectManagerIface *iface)
* *
* Since: 2.30 * Since: 2.30
*/ */
g_signal_new (I_("object-added"), signals[OBJECT_ADDED] =
G_TYPE_FROM_INTERFACE (iface), g_signal_new (I_("object-added"),
G_SIGNAL_RUN_LAST, G_TYPE_FROM_INTERFACE (iface),
G_STRUCT_OFFSET (GDBusObjectManagerIface, object_added), G_SIGNAL_RUN_LAST,
NULL, G_STRUCT_OFFSET (GDBusObjectManagerIface, object_added),
NULL, NULL,
g_cclosure_marshal_VOID__OBJECT, NULL,
G_TYPE_NONE, g_cclosure_marshal_VOID__OBJECT,
1, G_TYPE_NONE,
G_TYPE_DBUS_OBJECT); 1,
G_TYPE_DBUS_OBJECT);
/** /**
* GDBusObjectManager::object-removed: * GDBusObjectManager::object-removed:
@ -83,16 +94,17 @@ g_dbus_object_manager_default_init (GDBusObjectManagerIface *iface)
* *
* Since: 2.30 * Since: 2.30
*/ */
g_signal_new (I_("object-removed"), signals[OBJECT_REMOVED] =
G_TYPE_FROM_INTERFACE (iface), g_signal_new (I_("object-removed"),
G_SIGNAL_RUN_LAST, G_TYPE_FROM_INTERFACE (iface),
G_STRUCT_OFFSET (GDBusObjectManagerIface, object_removed), G_SIGNAL_RUN_LAST,
NULL, G_STRUCT_OFFSET (GDBusObjectManagerIface, object_removed),
NULL, NULL,
g_cclosure_marshal_VOID__OBJECT, NULL,
G_TYPE_NONE, g_cclosure_marshal_VOID__OBJECT,
1, G_TYPE_NONE,
G_TYPE_DBUS_OBJECT); 1,
G_TYPE_DBUS_OBJECT);
/** /**
* GDBusObjectManager::interface-added: * GDBusObjectManager::interface-added:
@ -107,17 +119,18 @@ g_dbus_object_manager_default_init (GDBusObjectManagerIface *iface)
* *
* Since: 2.30 * Since: 2.30
*/ */
g_signal_new (I_("interface-added"), signals[INTERFACE_ADDED] =
G_TYPE_FROM_INTERFACE (iface), g_signal_new (I_("interface-added"),
G_SIGNAL_RUN_LAST, G_TYPE_FROM_INTERFACE (iface),
G_STRUCT_OFFSET (GDBusObjectManagerIface, interface_added), G_SIGNAL_RUN_LAST,
NULL, G_STRUCT_OFFSET (GDBusObjectManagerIface, interface_added),
NULL, NULL,
NULL, NULL,
G_TYPE_NONE, NULL,
2, G_TYPE_NONE,
G_TYPE_DBUS_OBJECT, 2,
G_TYPE_DBUS_INTERFACE); G_TYPE_DBUS_OBJECT,
G_TYPE_DBUS_INTERFACE);
/** /**
* GDBusObjectManager::interface-removed: * GDBusObjectManager::interface-removed:
@ -132,17 +145,18 @@ g_dbus_object_manager_default_init (GDBusObjectManagerIface *iface)
* *
* Since: 2.30 * Since: 2.30
*/ */
g_signal_new (I_("interface-removed"), signals[INTERFACE_REMOVED] =
G_TYPE_FROM_INTERFACE (iface), g_signal_new (I_("interface-removed"),
G_SIGNAL_RUN_LAST, G_TYPE_FROM_INTERFACE (iface),
G_STRUCT_OFFSET (GDBusObjectManagerIface, interface_removed), G_SIGNAL_RUN_LAST,
NULL, G_STRUCT_OFFSET (GDBusObjectManagerIface, interface_removed),
NULL, NULL,
NULL, NULL,
G_TYPE_NONE, NULL,
2, G_TYPE_NONE,
G_TYPE_DBUS_OBJECT, 2,
G_TYPE_DBUS_INTERFACE); G_TYPE_DBUS_OBJECT,
G_TYPE_DBUS_INTERFACE);
} }