Package ch.bailu.gtk.gio
Interface DBusConnection.OnDBusMessageFilterFunction
- Enclosing class:
- DBusConnection
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
-
Method Summary
Modifier and TypeMethodDescriptiononDBusMessageFilterFunction
(CallbackHandler __self, DBusConnection connection, DBusMessage message, boolean incoming, Pointer user_data) Signature for function used in g_dbus_connection_add_filter().
-
Method Details
-
onDBusMessageFilterFunction
DBusMessage onDBusMessageFilterFunction(CallbackHandler __self, @Nonnull DBusConnection connection, @Nonnull DBusMessage message, boolean incoming, @Nullable Pointer user_data) Signature for function used in g_dbus_connection_add_filter().
A filter function is passed a #GDBusMessage and expected to return
a #GDBusMessage too. Passive filter functions that don't modify the
message can simply return the @message object:static GDBusMessage * passive_filter (GDBusConnection *connection GDBusMessage *message, gboolean incoming, gpointer user_data) { // inspect @message return message; }
Filter functions that wants to drop a message can simply return %NULL:static GDBusMessage * drop_filter (GDBusConnection *connection GDBusMessage *message, gboolean incoming, gpointer user_data) { if (should_drop_message) { g_object_unref (message); message = NULL; } return message; }
Finally, a filter function may modify a message by copying it:static GDBusMessage * modifying_filter (GDBusConnection *connection GDBusMessage *message, gboolean incoming, gpointer user_data) { GDBusMessage *copy; GError *error; error = NULL; copy = g_dbus_message_copy (message, &error); // handle @error being set g_object_unref (message); // modify @copy return copy; }
If the returned #GDBusMessage is different from @message and cannot
be sent on @connection (it could use features, such as file
descriptors, not compatible with @connection), then a warning is
logged to standard error. Applications can
check this ahead of time using g_dbus_message_to_blob() passing a
#GDBusCapabilityFlags value obtained from @connection.- Parameters:
connection
- A #GDBusConnection.message
- A locked #GDBusMessage that the filter function takes ownership of.incoming
- %TRUE if it is a message received from the other peer, %FALSE if it is a message to be sent to the other peer.user_data
- User data passed when adding the filter.- Returns:
- A #GDBusMessage that will be freed with g_object_unref() or %NULL to drop the message. Passive filter functions can simply return the passed @message object.
-