/** * backend_cancel: */ static void backend_cancel (PkBackend *backend) { aptcc *m_apt = (aptcc*) pk_backend_get_pointer(backend, "aptcc_obj"); if (m_apt) { m_apt->cancel(); } }
static void backend_search_thread (PkBackendJob *job, GVariant *params, gpointer user_data) { SearchParams *params; params = pk_backend_get_pointer (backend, "search-params"); opkg_list_packages (pk_opkg_package_list_cb, params); pk_backend_job_finished (params->backend); g_free (params->needle); g_free (params); }
static gboolean backend_remove_packages_thread (PkBackend *backend) { gint err, i; gchar **package_ids; gchar **parts; gboolean allow_deps; gboolean autoremove; gpointer *data; data = pk_backend_get_pointer (backend, "remove-params"); package_ids = (gchar**) data[0]; allow_deps = GPOINTER_TO_INT (data[1]); autoremove = GPOINTER_TO_INT (data[2]); g_free (data); opkg_set_option ((char *)"autoremove", &autoremove); opkg_set_option ((char *)"force_removal_of_dependent_packages", &allow_deps); err = 0; for (i = 0; package_ids[i]; i++) { pk_backend_package (backend, PK_INFO_ENUM_REMOVING, package_ids[i], NULL); parts = pk_package_id_split (package_ids[i]); err = opkg_remove_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend); switch (err) { //case OPKG_NO_ERROR: // break; //case OPKG_PACKAGE_NOT_INSTALLED: // pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL); // break; default: opkg_unknown_error (backend, err, "Remove"); } g_strfreev (parts); if (err != 0) break; } pk_backend_finished (backend); return (err == 0); }
static gboolean backend_search_thread (PkBackend *backend) { SearchParams *params; params = pk_backend_get_pointer (backend, "search-params"); opkg_list_packages (pk_opkg_package_list_cb, params); pk_backend_finished (params->backend); g_free (params->needle); g_free (params); return TRUE; }