Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}