[box] implemented backend_update_packages()
This commit is contained in:
parent
86388cf105
commit
26786e2800
@ -66,6 +66,7 @@ typedef struct {
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
gchar *package_id;
|
gchar *package_id;
|
||||||
|
gchar **package_ids;
|
||||||
gint type;
|
gint type;
|
||||||
} ThreadData;
|
} ThreadData;
|
||||||
|
|
||||||
@ -298,7 +299,41 @@ backend_install_package_thread (PkBackendThread *thread, gpointer data)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
backend_update_packages_thread (PkBackendThread *thread, gpointer data)
|
||||||
|
{
|
||||||
|
ThreadData *d = (ThreadData*) data;
|
||||||
|
gboolean result = TRUE;
|
||||||
|
PkPackageId *pi;
|
||||||
|
PkBackend *backend;
|
||||||
|
gint i;
|
||||||
|
|
||||||
|
/* get current backend */
|
||||||
|
backend = pk_backend_thread_get_backend (thread);
|
||||||
|
|
||||||
|
pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
|
||||||
|
|
||||||
|
for (i = 0; i < g_strv_length (d->package_ids); i++)
|
||||||
|
{
|
||||||
|
pi = pk_package_id_new_from_string (d->package_ids[i]);
|
||||||
|
if (pi == NULL) {
|
||||||
|
pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
|
||||||
|
pk_package_id_free (pi);
|
||||||
|
g_strfreev (d->package_ids);
|
||||||
|
g_free (d);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
result |= box_package_install(pi->name, ROOT_DIRECTORY, common_progress, backend, FALSE);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
g_strfreev (d->package_ids);
|
||||||
|
g_free (d);
|
||||||
|
pk_backend_finished (backend);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
static gboolean
|
static gboolean
|
||||||
backend_install_file_thread (PkBackendThread *thread, gpointer data)
|
backend_install_file_thread (PkBackendThread *thread, gpointer data)
|
||||||
{
|
{
|
||||||
@ -727,10 +762,10 @@ backend_search_name (PkBackend *backend, const gchar *filter, const gchar *searc
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* backend_update_package:
|
* backend_update_packages:
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
backend_update_package (PkBackend *backend, const gchar *package_id)
|
backend_update_packages (PkBackend *backend, gchar **package_ids)
|
||||||
{
|
{
|
||||||
ThreadData *data = g_new0(ThreadData, 1);
|
ThreadData *data = g_new0(ThreadData, 1);
|
||||||
|
|
||||||
@ -742,8 +777,8 @@ backend_update_package (PkBackend *backend, const gchar *package_id)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->package_id = g_strdup(package_id);
|
data->package_ids = g_strdupv (package_ids);
|
||||||
pk_backend_thread_create (thread, backend_install_package_thread, data);
|
pk_backend_thread_create (thread, backend_update_packages_thread, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -839,7 +874,7 @@ PK_BACKEND_OPTIONS (
|
|||||||
backend_search_file, /* search_file */
|
backend_search_file, /* search_file */
|
||||||
NULL, /* search_group */
|
NULL, /* search_group */
|
||||||
backend_search_name, /* search_name */
|
backend_search_name, /* search_name */
|
||||||
backend_update_package, /* update_package */
|
backend_update_packages, /* update_packages */
|
||||||
backend_update_system, /* update_system */
|
backend_update_system, /* update_system */
|
||||||
backend_get_repo_list, /* get_repo_list */
|
backend_get_repo_list, /* get_repo_list */
|
||||||
backend_repo_enable, /* repo_enable */
|
backend_repo_enable, /* repo_enable */
|
||||||
|
Loading…
Reference in New Issue
Block a user