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; }
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; }
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; }