/** * pk_package_sack_get_details_async: * @sack: a valid #PkPackageSack instance * @cancellable: a #GCancellable or %NULL * @progress_callback: (scope call): the function to run when the progress changes * @progress_user_data: data to pass to @progress_callback * @callback: the function to run on completion * @user_data: the data to pass to @callback * * Merges in details about packages. **/ void pk_package_sack_get_details_async (PkPackageSack *sack, GCancellable *cancellable, PkProgressCallback progress_callback, gpointer progress_user_data, GAsyncReadyCallback callback, gpointer user_data) { GSimpleAsyncResult *res; PkPackageSackState *state; gchar **package_ids; g_return_if_fail (PK_IS_PACKAGE_SACK (sack)); g_return_if_fail (callback != NULL); res = g_simple_async_result_new (G_OBJECT (sack), callback, user_data, pk_package_sack_get_details_async); /* save state */ state = g_slice_new0 (PkPackageSackState); state->res = g_object_ref (res); state->sack = g_object_ref (sack); if (cancellable != NULL) { state->cancellable = g_object_ref (cancellable); } state->ret = FALSE; /* start details async */ package_ids = pk_package_sack_get_package_ids (sack); pk_client_get_details_async (sack->priv->client, package_ids, cancellable, progress_callback, progress_user_data, (GAsyncReadyCallback) pk_package_sack_get_details_cb, state); g_strfreev (package_ids); g_object_unref (res); }
/** * pk_package_sack_resolve_async: * @sack: a valid #PkPackageSack instance * @cancellable: a #GCancellable or %NULL * @progress_callback: (scope notified): the function to run when the progress changes * @progress_user_data: data to pass to @progress_callback * @callback: the function to run on completion * @user_data: the data to pass to @callback * * Merges in details about packages using resolve. * * Since: 0.5.2 **/ void pk_package_sack_resolve_async (PkPackageSack *sack, GCancellable *cancellable, PkProgressCallback progress_callback, gpointer progress_user_data, GAsyncReadyCallback callback, gpointer user_data) { PkPackageSackState *state; g_autoptr(GSimpleAsyncResult) res = NULL; g_auto(GStrv) package_ids = NULL; g_return_if_fail (PK_IS_PACKAGE_SACK (sack)); g_return_if_fail (callback != NULL); res = g_simple_async_result_new (G_OBJECT (sack), callback, user_data, pk_package_sack_resolve_async); /* save state */ state = g_slice_new0 (PkPackageSackState); state->res = g_object_ref (res); state->sack = g_object_ref (sack); if (cancellable != NULL) state->cancellable = g_object_ref (cancellable); state->ret = FALSE; /* start resolve async */ package_ids = pk_package_sack_get_package_ids (sack); pk_client_resolve_async (sack->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, cancellable, progress_callback, progress_user_data, (GAsyncReadyCallback) pk_package_sack_resolve_cb, state); }