static void get_modem_ready (GObject *source, GAsyncResult *result, gpointer none) { ctx->object = mmcli_get_modem_finish (result, &ctx->manager); ctx->modem_messaging = mm_object_get_modem_messaging (ctx->object); /* Setup operation timeout */ if (ctx->modem_messaging) mmcli_force_operation_timeout (G_DBUS_PROXY (ctx->modem_messaging)); ensure_modem_messaging (); if (status_flag) g_assert_not_reached (); /* Request to list SMS? */ if (list_flag) { g_debug ("Asynchronously listing SMS in modem..."); mm_modem_messaging_list (ctx->modem_messaging, ctx->cancellable, (GAsyncReadyCallback)list_ready, NULL); return; } /* Request to create a new SMS? */ if (create_str) { MMSmsProperties *properties; properties = build_sms_properties_from_input (create_str, create_with_data_str); g_debug ("Asynchronously creating new SMS in modem..."); mm_modem_messaging_create (ctx->modem_messaging, properties, ctx->cancellable, (GAsyncReadyCallback)create_ready, NULL); g_object_unref (properties); return; } /* Request to delete a given SMS? */ if (delete_str) { mmcli_get_sms (ctx->connection, delete_str, ctx->cancellable, (GAsyncReadyCallback)get_sms_to_delete_ready, NULL); return; } g_warn_if_reached (); }
void mmcli_sms_run_asynchronous (GDBusConnection *connection, GCancellable *cancellable) { /* Initialize context */ ctx = g_new0 (Context, 1); if (cancellable) ctx->cancellable = g_object_ref (cancellable); /* Get proper sms */ mmcli_get_sms (connection, mmcli_get_common_sms_string (), cancellable, (GAsyncReadyCallback)get_sms_ready, NULL); }