IBusError * ibus_error_new_from_text (const gchar *name, const gchar *message) { IBusError *error = ibus_error_new (); dbus_set_error (error, name, "%s", message); return error; }
IBusError * ibus_error_new_from_message (DBusMessage *message) { g_assert (message != NULL); IBusError *error; if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_ERROR) return NULL; error = ibus_error_new (); if (dbus_set_error_from_message (error, message)) return error; dbus_error_free (error); return NULL; }
IBusMessage * ibus_connection_send_with_reply_and_block (IBusConnection *connection, IBusMessage *message, gint timeout_milliseconds, IBusError **error) { g_assert (IBUS_IS_CONNECTION (connection)); g_assert (message != NULL); g_assert (timeout_milliseconds > 0 || timeout_milliseconds == -1); IBusError *_error; IBusMessage *reply; IBusConnectionPrivate *priv; priv = IBUS_CONNECTION_GET_PRIVATE (connection); _error = ibus_error_new (); reply = dbus_connection_send_with_reply_and_block (priv->connection, message, timeout_milliseconds, _error); if (reply != NULL) { g_signal_emit (connection, connection_signals[IBUS_MESSAGE_SENT], 0, message); ibus_error_free (_error); } else { if (error != NULL) { *error = _error; } else { ibus_error_free (_error); } } return reply; }