Ejemplo n.º 1
0
static int quit_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
        bool *x = userdata;

        log_error("Quit callback: %s", strerror(sd_bus_message_get_errno(m)));

        *x = 1;
        return 1;
}
Ejemplo n.º 2
0
static int cc_Calculator_split_reply_thunk(
    CC_IGNORE_BUS_ARG sd_bus_message *message, void *userdata, sd_bus_error *ret_error)
{
    int result = 0;
    sd_bus *bus;
    struct cc_client_Calculator *ii = (struct cc_client_Calculator *) userdata;
    int32_t whole;
    int32_t fraction;
    (void) ret_error;

    CC_LOG_DEBUG("invoked cc_Calculator_split_reply_thunk()\n");
    assert(message);
    bus = sd_bus_message_get_bus(message);
    assert(bus);
    assert(ii);
    assert(ii->split_reply_callback);
    assert(ii->split_reply_slot == sd_bus_get_current_slot(bus));
    result = sd_bus_message_get_errno(message);
    if (result != 0) {
        CC_LOG_ERROR("failed to receive response: %s\n", strerror(result));
        goto finish;
    }
    result = sd_bus_message_read(message, "ii", &whole, &fraction);
    if (result < 0) {
        CC_LOG_ERROR("unable to get reply value: %s\n", strerror(-result));
        goto finish;
    }
    CC_LOG_DEBUG("invoking callback in cc_Calculator_split_reply_thunk()\n");
    CC_LOG_DEBUG("with whole=%" PRId32 ", fraction=%" PRId32 "\n", whole, fraction);
    ii->split_reply_callback(ii, whole, fraction);
    result = 1;

finish:
    ii->split_reply_callback = NULL;
    ii->split_reply_slot = sd_bus_slot_unref(ii->split_reply_slot);

    return result;
}
Ejemplo n.º 3
0
static int cc_Ball_grab_reply_thunk(
    CC_IGNORE_BUS_ARG sd_bus_message *message, void *userdata, sd_bus_error *ret_error)
{
    int result = 0;
    sd_bus *bus;
    struct cc_client_Ball *ii = (struct cc_client_Ball *) userdata;
    int success_int;

    CC_LOG_DEBUG("invoked cc_Ball_grab_reply_thunk()\n");
    assert(message);
    bus = sd_bus_message_get_bus(message);
    assert(bus);
    assert(ii);
    assert(ii->grab_reply_callback);
    assert(ii->grab_reply_slot == sd_bus_get_current_slot(bus));
    result = sd_bus_message_get_errno(message);
    if (result != 0) {
        CC_LOG_ERROR("failed to receive response: %s\n", strerror(result));
        goto finish;
    }
    result = sd_bus_message_read(message, "b", &success_int);
    if (result < 0) {
        CC_LOG_ERROR("unable to get reply value: %s\n", strerror(-result));
        goto finish;
    }
    CC_LOG_DEBUG("invoking callback in cc_Ball_grab_reply_thunk()\n");
    CC_LOG_DEBUG("with success=%d\n", !!success_int);
    ii->grab_reply_callback(ii, !!success_int);
    result = 1;

finish:
    ii->grab_reply_callback = NULL;
    ii->grab_reply_slot = sd_bus_slot_unref(ii->grab_reply_slot);

    return result;
}