Gio.DBusMessageFilterFunction

function onDBusMessageFilterFunction(connection: Gio.DBusConnection, message: Gio.DBusMessage, incoming: Boolean): Gio.DBusMessage {
}
  

Signature for function used in Gio.DBusConnection.prototype.add_filter.

A filter function is passed a Gio.DBusMessage and expected to return a Gio.DBusMessage 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 is set *<!-- -->/ g_object_unref (message);

/<!-- -->* modify @copy *<!-- -->/

return copy; } ]| If the returned Gio.DBusMessage 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 <emphasis>standard error</emphasis>. Applications can check this ahead of time using Gio.DBusMessage.prototype.to_blob passing a Gio.DBusCapabilityFlags value obtained from connection.

Since 2.26

connection

A Gio.DBusConnection.

message

A locked Gio.DBusMessage 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.

Returns

A Gio.DBusMessage that will be freed with GObject.Object.prototype.unref or null to drop the message. Passive filter functions can simply return the passed message object.