/** * gpk_log_get_old_transactions_cb **/ static void gpk_log_get_old_transactions_cb (GObject *object, GAsyncResult *res, gpointer user_data) { // PkClient *client = PK_CLIENT (object); GError *error = NULL; PkResults *results = NULL; PkError *error_code = NULL; /* get the results */ results = pk_client_generic_finish (client, res, &error); if (results == NULL) { egg_warning ("failed to get old transactions: %s", error->message); g_error_free (error); goto out; } /* check error code */ error_code = pk_results_get_error_code (results); if (error_code != NULL) { egg_warning ("failed to get old transactions: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code)); goto out; } /* get the list */ if (transactions != NULL) g_ptr_array_unref (transactions); transactions = pk_results_get_transaction_array (results); gpk_log_refilter (); out: if (error_code != NULL) g_object_unref (error_code); if (results != NULL) g_object_unref (results); }
/** * pk_package_sack_get_details_cb: **/ static void pk_package_sack_get_details_cb (GObject *source_object, GAsyncResult *res, PkPackageSackState *state) { PkClient *client = PK_CLIENT (source_object); PkDetails *item; guint i; PkPackage *package; g_autoptr(GError) error = NULL; g_autoptr(PkResults) results = NULL; g_autoptr(GPtrArray) details = NULL; /* get the results */ results = pk_client_generic_finish (client, res, &error); if (results == NULL) { g_warning ("failed to details: %s", error->message); pk_package_sack_merge_bool_state_finish (state, error); return; } /* get the details */ details = pk_results_get_details_array (results); if (details->len == 0) { error = g_error_new (1, 0, "no details found!"); pk_package_sack_merge_bool_state_finish (state, error); return; } /* set data on each item */ for (i = 0; i < details->len; i++) { g_autofree gchar *package_id = NULL; item = g_ptr_array_index (details, i); g_object_get (item, "package-id", &package_id, NULL); /* get package, and set data */ package = pk_package_sack_find_by_id (state->sack, package_id); if (package == NULL) { g_warning ("failed to find %s", package_id); continue; } /* set data */ g_object_set (package, "license", pk_details_get_license (item), "group", pk_details_get_group (item), "description", pk_details_get_description (item), "url", pk_details_get_url (item), "size", pk_details_get_size (item), NULL); g_object_unref (package); } /* all okay */ state->ret = TRUE; /* we're done */ pk_package_sack_merge_bool_state_finish (state, error); }
/** * pk_package_sack_resolve_cb: **/ static void pk_package_sack_resolve_cb (GObject *source_object, GAsyncResult *res, PkPackageSackState *state) { PkClient *client = PK_CLIENT (source_object); PkPackage *item; guint i; PkPackage *package; const gchar *package_id; g_autoptr(GError) error = NULL; g_autoptr(PkResults) results = NULL; g_autoptr(GPtrArray) packages = NULL; /* get the results */ results = pk_client_generic_finish (client, res, &error); if (results == NULL) { g_warning ("failed to resolve: %s", error->message); pk_package_sack_merge_bool_state_finish (state, error); return; } /* get the packages */ packages = pk_results_get_package_array (results); if (packages->len == 0) { g_warning ("%i", state->ret); error = g_error_new (1, 0, "no packages found!"); pk_package_sack_merge_bool_state_finish (state, error); return; } /* set data on each item */ for (i = 0; i < packages->len; i++) { item = g_ptr_array_index (packages, i); package_id = pk_package_get_id (item); package = pk_package_sack_find_by_id (state->sack, package_id); if (package == NULL) { g_warning ("failed to find %s", package_id); continue; } /* set data */ g_object_set (package, "info", pk_package_get_info (item), "summary", pk_package_get_summary (item), NULL); g_object_unref (package); } /* all okay */ state->ret = TRUE; /* we're done */ pk_package_sack_merge_bool_state_finish (state, error); }
/** * pk_package_sack_get_details_cb: **/ static void pk_package_sack_get_details_cb (GObject *source_object, GAsyncResult *res, PkPackageSackState *state) { PkClient *client = PK_CLIENT (source_object); GError *error = NULL; PkResults *results; GPtrArray *details = NULL; PkDetails *item; guint i; PkPackage *package; PkGroupEnum group; gchar *license; gchar *url; gchar *description; gchar *package_id; guint64 size; /* get the results */ results = pk_client_generic_finish (client, res, &error); if (results == NULL) { g_warning ("failed to details: %s", error->message); pk_package_sack_merge_bool_state_finish (state, error); g_error_free (error); goto out; } /* get the details */ details = pk_results_get_details_array (results); if (details->len == 0) { error = g_error_new (1, 0, "no details found!"); pk_package_sack_merge_bool_state_finish (state, error); g_error_free (error); goto out; } /* set data on each item */ for (i=0; i<details->len; i++) { item = g_ptr_array_index (details, i); g_object_get (item, "package-id", &package_id, "group", &group, "license", &license, "url", &url, "description", &description, "size", &size, NULL); /* get package, and set data */ package = pk_package_sack_find_by_id (state->sack, package_id); if (package == NULL) { g_warning ("failed to find %s", package_id); goto skip; } /* set data */ g_object_set (package, "license", license, "group", group, "description", description, "url", url, "size", size, NULL); g_object_unref (package); skip: g_free (package_id); g_free (license); g_free (url); g_free (description); } /* all okay */ state->ret = TRUE; /* we're done */ pk_package_sack_merge_bool_state_finish (state, error); out: if (results != NULL) g_object_unref (results); if (details != NULL) g_ptr_array_unref (details); }
/** * pk_package_sack_resolve_cb: **/ static void pk_package_sack_resolve_cb (GObject *source_object, GAsyncResult *res, PkPackageSackState *state) { PkClient *client = PK_CLIENT (source_object); GError *error = NULL; PkResults *results; GPtrArray *packages = NULL; PkPackage *item; guint i; PkPackage *package; PkInfoEnum info; gchar *summary; gchar *package_id; /* get the results */ results = pk_client_generic_finish (client, res, &error); if (results == NULL) { g_warning ("failed to resolve: %s", error->message); pk_package_sack_merge_bool_state_finish (state, error); g_error_free (error); goto out; } /* get the packages */ packages = pk_results_get_package_array (results); if (packages->len == 0) { g_warning ("%i", state->ret); error = g_error_new (1, 0, "no packages found!"); pk_package_sack_merge_bool_state_finish (state, error); g_error_free (error); goto out; } /* set data on each item */ for (i=0; i<packages->len; i++) { item = g_ptr_array_index (packages, i); g_object_get (item, "info", &info, "package-id", &package_id, "summary", &summary, NULL); /* get package, and set data */ package = pk_package_sack_find_by_id (state->sack, package_id); if (package == NULL) { g_warning ("failed to find %s", package_id); goto skip; } /* set data */ g_object_set (package, "info", info, "summary", summary, NULL); g_object_unref (package); skip: g_free (summary); g_free (package_id); } /* all okay */ state->ret = TRUE; /* we're done */ pk_package_sack_merge_bool_state_finish (state, error); out: if (results != NULL) g_object_unref (results); if (packages != NULL) g_ptr_array_unref (packages); }
/** * pk_package_sack_get_update_detail_cb: **/ static void pk_package_sack_get_update_detail_cb (GObject *source_object, GAsyncResult *res, PkPackageSackState *state) { PkClient *client = PK_CLIENT (source_object); GError *error = NULL; PkResults *results; GPtrArray *update_details = NULL; PkUpdateDetail *item; guint i; PkPackage *package; gchar *package_id; gchar *updates; gchar *obsoletes; gchar **vendor_urls; gchar **bugzilla_urls; gchar **cve_urls; PkRestartEnum restart; gchar *update_text; gchar *changelog; PkUpdateStateEnum state_enum; gchar *issued; gchar *updated; /* get the results */ results = pk_client_generic_finish (client, res, &error); if (results == NULL) { g_warning ("failed to update_detail: %s", error->message); pk_package_sack_merge_bool_state_finish (state, error); g_error_free (error); goto out; } /* get the update_details */ update_details = pk_results_get_update_detail_array (results); if (update_details->len == 0) { error = g_error_new (1, 0, "no update details found!"); pk_package_sack_merge_bool_state_finish (state, error); g_error_free (error); goto out; } /* set data on each item */ for (i=0; i<update_details->len; i++) { item = g_ptr_array_index (update_details, i); g_object_get (item, "package-id", &package_id, "updates", &updates, "obsoletes", &obsoletes, "vendor-urls", &vendor_urls, "bugzilla-urls", &bugzilla_urls, "cve-urls", &cve_urls, "restart", &restart, "update-text", &update_text, "changelog", &changelog, "state", &state_enum, "issued", &issued, "updated", &updated, NULL); /* get package, and set data */ package = pk_package_sack_find_by_id (state->sack, package_id); if (package == NULL) { g_warning ("failed to find %s", package_id); goto skip; } /* set data */ g_object_set (package, "update-updates", updates, "update-obsoletes", obsoletes, "update-vendor-urls", vendor_urls, "update-bugzilla-urls", bugzilla_urls, "update-cve-urls", cve_urls, "update-restart", restart, "update-text", update_text, "update-changelog", changelog, "update-state", state_enum, "update-issued", issued, "update-updated", updated, NULL); g_object_unref (package); skip: g_free (package_id); g_free (updates); g_free (obsoletes); g_strfreev (vendor_urls); g_strfreev (bugzilla_urls); g_strfreev (cve_urls); g_free (update_text); g_free (changelog); g_free (issued); g_free (updated); } /* all okay */ state->ret = TRUE; /* we're done */ pk_package_sack_merge_bool_state_finish (state, error); out: if (results != NULL) g_object_unref (results); if (update_details != NULL) g_ptr_array_unref (update_details); }