add task description to pkmon
This commit is contained in:
parent
d4edf2c61b
commit
467f36cb2e
@ -49,6 +49,10 @@ pkmon_SOURCES = \
|
||||
pk-debug.h \
|
||||
pk-marshal.c \
|
||||
pk-marshal.h \
|
||||
pk-task-list.c \
|
||||
pk-task-list.h \
|
||||
pk-task-client.c \
|
||||
pk-task-client.h \
|
||||
pk-task-common.c \
|
||||
pk-task-common.h \
|
||||
pk-job-list.c \
|
||||
|
@ -162,10 +162,10 @@ pk_job_list_get_latest (PkJobList *jlist)
|
||||
}
|
||||
|
||||
/**
|
||||
* PK_JOB_LIST_CHANGED_cb:
|
||||
* pk_job_list_changed_cb:
|
||||
*/
|
||||
static void
|
||||
PK_JOB_LIST_CHANGED_cb (DBusGProxy *proxy,
|
||||
pk_job_list_changed_cb (DBusGProxy *proxy,
|
||||
GPtrArray *job_list,
|
||||
PkJobList *jlist)
|
||||
{
|
||||
@ -234,7 +234,7 @@ pk_job_list_init (PkJobList *jlist)
|
||||
dbus_g_proxy_add_signal (proxy, "JobListChanged",
|
||||
struct_array_type, G_TYPE_INVALID);
|
||||
dbus_g_proxy_connect_signal (proxy, "JobListChanged",
|
||||
G_CALLBACK(PK_JOB_LIST_CHANGED_cb), jlist, NULL);
|
||||
G_CALLBACK(pk_job_list_changed_cb), jlist, NULL);
|
||||
|
||||
/* force a refresh so we have valid data*/
|
||||
pk_job_list_get_latest (jlist);
|
||||
|
@ -30,15 +30,15 @@
|
||||
|
||||
#include "pk-debug.h"
|
||||
#include "pk-task-common.h"
|
||||
#include "pk-job-list.h"
|
||||
#include "pk-task-list.h"
|
||||
|
||||
/**
|
||||
* pk_monitor_job_list_changed_cb:
|
||||
* pk_monitor_task_list_changed_cb:
|
||||
**/
|
||||
static void
|
||||
pk_monitor_job_list_changed_cb (PkJobList *jlist, gpointer data)
|
||||
pk_monitor_task_list_changed_cb (PkTaskList *tlist, gpointer data)
|
||||
{
|
||||
pk_job_list_print (jlist);
|
||||
pk_task_list_print (tlist);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,9 +47,9 @@ pk_monitor_job_list_changed_cb (PkJobList *jlist, gpointer data)
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
PkJobList *jlist;
|
||||
PkTaskList *tlist;
|
||||
gboolean ret;
|
||||
GArray *job_list;
|
||||
GPtrArray *task_list;
|
||||
GMainLoop *loop;
|
||||
|
||||
if (! g_thread_supported ()) {
|
||||
@ -57,27 +57,27 @@ main (int argc, char *argv[])
|
||||
}
|
||||
dbus_g_thread_init ();
|
||||
g_type_init ();
|
||||
pk_debug_init (TRUE);
|
||||
pk_debug_init (FALSE);
|
||||
|
||||
if (!g_thread_supported ())
|
||||
g_thread_init (NULL);
|
||||
dbus_g_thread_init ();
|
||||
|
||||
jlist = pk_job_list_new ();
|
||||
g_signal_connect (jlist, "job-list-changed",
|
||||
G_CALLBACK (pk_monitor_job_list_changed_cb), NULL);
|
||||
tlist = pk_task_list_new ();
|
||||
g_signal_connect (tlist, "task-list-changed",
|
||||
G_CALLBACK (pk_monitor_task_list_changed_cb), NULL);
|
||||
|
||||
ret = pk_job_list_refresh (jlist);
|
||||
ret = pk_task_list_refresh (tlist);
|
||||
if (ret == FALSE) {
|
||||
g_error ("cannot refresh job list");
|
||||
}
|
||||
job_list = pk_job_list_get_latest (jlist);
|
||||
pk_job_list_print (jlist);
|
||||
task_list = pk_task_list_get_latest (tlist);
|
||||
pk_task_list_print (tlist);
|
||||
|
||||
loop = g_main_loop_new (NULL, FALSE);
|
||||
g_main_loop_run (loop);
|
||||
|
||||
g_object_unref (jlist);
|
||||
g_object_unref (tlist);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -211,6 +211,40 @@ pk_task_client_find_packages (PkTaskClient *tclient, const gchar *search)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* pk_task_client_get_job_status:
|
||||
**/
|
||||
gboolean
|
||||
pk_task_client_get_job_status (PkTaskClient *tclient, guint job,
|
||||
PkTaskStatus *status, gchar **package)
|
||||
{
|
||||
gboolean ret;
|
||||
gchar *status_text;
|
||||
GError *error;
|
||||
|
||||
g_return_val_if_fail (tclient != NULL, FALSE);
|
||||
g_return_val_if_fail (PK_IS_TASK_CLIENT (tclient), FALSE);
|
||||
|
||||
error = NULL;
|
||||
ret = dbus_g_proxy_call (tclient->priv->proxy, "GetJobStatus", &error,
|
||||
G_TYPE_UINT, job,
|
||||
G_TYPE_INVALID,
|
||||
G_TYPE_STRING, &status_text,
|
||||
G_TYPE_STRING, package,
|
||||
G_TYPE_INVALID);
|
||||
if (error) {
|
||||
pk_debug ("ERROR: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
if (ret == FALSE) {
|
||||
/* abort as the DBUS method failed */
|
||||
pk_warning ("GetJobStatus failed!");
|
||||
return FALSE;
|
||||
}
|
||||
*status = pk_task_status_from_text (status_text);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* pk_task_client_get_deps:
|
||||
**/
|
||||
@ -400,7 +434,7 @@ pk_task_client_finished_cb (DBusGProxy *proxy,
|
||||
g_return_if_fail (PK_IS_TASK_CLIENT (tclient));
|
||||
|
||||
if (job == tclient->priv->job) {
|
||||
exit = pk_task_common_exit_from_text (exit_text);
|
||||
exit = pk_task_exit_from_text (exit_text);
|
||||
pk_debug ("emit finished %i", exit);
|
||||
g_signal_emit (tclient , signals [PK_TASK_CLIENT_FINISHED], 0, exit);
|
||||
|
||||
@ -444,7 +478,7 @@ pk_task_client_job_status_changed_cb (DBusGProxy *proxy,
|
||||
g_return_if_fail (tclient != NULL);
|
||||
g_return_if_fail (PK_IS_TASK_CLIENT (tclient));
|
||||
|
||||
status = pk_task_common_status_from_text (status_text);
|
||||
status = pk_task_status_from_text (status_text);
|
||||
|
||||
if (job == tclient->priv->job) {
|
||||
pk_debug ("emit job-status-changed %i", status);
|
||||
|
@ -23,6 +23,7 @@
|
||||
#define __PK_TASK_CLIENT_H
|
||||
|
||||
#include <glib-object.h>
|
||||
#include "pk-task-common.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
@ -65,6 +66,12 @@ gboolean pk_task_client_install_package (PkTaskClient *tclient,
|
||||
const gchar *package);
|
||||
gboolean pk_task_client_cancel_job_try (PkTaskClient *tclient);
|
||||
|
||||
/* not sure where this belongs... */
|
||||
gboolean pk_task_client_get_job_status (PkTaskClient *tclient,
|
||||
guint job,
|
||||
PkTaskStatus *status,
|
||||
gchar **package);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __PK_TASK_CLIENT_H */
|
||||
|
@ -36,50 +36,109 @@
|
||||
#include "pk-task-common.h"
|
||||
|
||||
/**
|
||||
* pk_task_common_exit_from_text:
|
||||
* pk_task_exit_from_text:
|
||||
*/
|
||||
PkTaskExit
|
||||
pk_task_common_exit_from_text (const gchar *exit)
|
||||
pk_task_exit_from_text (const gchar *exit)
|
||||
{
|
||||
if (strcmp (exit, "success") == 0) {
|
||||
return PK_TASK_COMMON_EXIT_SUCCESS;
|
||||
return PK_TASK_EXIT_SUCCESS;
|
||||
}
|
||||
if (strcmp (exit, "failed") == 0) {
|
||||
return PK_TASK_COMMON_EXIT_FAILED;
|
||||
return PK_TASK_EXIT_FAILED;
|
||||
}
|
||||
if (strcmp (exit, "canceled") == 0) {
|
||||
return PK_TASK_COMMON_EXIT_CANCELED;
|
||||
return PK_TASK_EXIT_CANCELED;
|
||||
}
|
||||
return PK_TASK_COMMON_EXIT_UNKNOWN;
|
||||
return PK_TASK_EXIT_UNKNOWN;
|
||||
}
|
||||
|
||||
/**
|
||||
* pk_task_common_status_from_text:
|
||||
* pk_task_exit_to_text:
|
||||
**/
|
||||
PkTaskStatus
|
||||
pk_task_common_status_from_text (const gchar *status)
|
||||
const gchar *
|
||||
pk_task_exit_to_text (PkTaskExit exit)
|
||||
{
|
||||
if (strcmp (status, "setup") == 0) {
|
||||
return PK_TASK_COMMON_STATUS_SETUP;
|
||||
const gchar *text = NULL;
|
||||
switch (exit) {
|
||||
case PK_TASK_EXIT_SUCCESS:
|
||||
text = "success";
|
||||
break;
|
||||
case PK_TASK_EXIT_FAILED:
|
||||
text = "failed";
|
||||
break;
|
||||
case PK_TASK_EXIT_CANCELED:
|
||||
text = "canceled";
|
||||
break;
|
||||
default:
|
||||
text = "unknown";
|
||||
}
|
||||
if (strcmp (status, "query") == 0) {
|
||||
return PK_TASK_COMMON_STATUS_QUERY;
|
||||
}
|
||||
if (strcmp (status, "remove") == 0) {
|
||||
return PK_TASK_COMMON_STATUS_REMOVE;
|
||||
}
|
||||
if (strcmp (status, "download") == 0) {
|
||||
return PK_TASK_COMMON_STATUS_DOWNLOAD;
|
||||
}
|
||||
if (strcmp (status, "install") == 0) {
|
||||
return PK_TASK_COMMON_STATUS_INSTALL;
|
||||
}
|
||||
if (strcmp (status, "update") == 0) {
|
||||
return PK_TASK_COMMON_STATUS_UPDATE;
|
||||
}
|
||||
if (strcmp (status, "exit") == 0) {
|
||||
return PK_TASK_COMMON_STATUS_EXIT;
|
||||
}
|
||||
return PK_TASK_COMMON_STATUS_INVALID;
|
||||
return text;
|
||||
}
|
||||
|
||||
/**
|
||||
* pk_task_status_from_text:
|
||||
**/
|
||||
PkTaskStatus
|
||||
pk_task_status_from_text (const gchar *status)
|
||||
{
|
||||
if (strcmp (status, "setup") == 0) {
|
||||
return PK_TASK_STATUS_SETUP;
|
||||
}
|
||||
if (strcmp (status, "query") == 0) {
|
||||
return PK_TASK_STATUS_QUERY;
|
||||
}
|
||||
if (strcmp (status, "remove") == 0) {
|
||||
return PK_TASK_STATUS_REMOVE;
|
||||
}
|
||||
if (strcmp (status, "download") == 0) {
|
||||
return PK_TASK_STATUS_DOWNLOAD;
|
||||
}
|
||||
if (strcmp (status, "install") == 0) {
|
||||
return PK_TASK_STATUS_INSTALL;
|
||||
}
|
||||
if (strcmp (status, "update") == 0) {
|
||||
return PK_TASK_STATUS_UPDATE;
|
||||
}
|
||||
if (strcmp (status, "exit") == 0) {
|
||||
return PK_TASK_STATUS_EXIT;
|
||||
}
|
||||
return PK_TASK_STATUS_INVALID;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* pk_task_status_to_text:
|
||||
**/
|
||||
const gchar *
|
||||
pk_task_status_to_text (PkTaskStatus status)
|
||||
{
|
||||
const gchar *text = NULL;
|
||||
switch (status) {
|
||||
case PK_TASK_STATUS_SETUP:
|
||||
text = "setup";
|
||||
break;
|
||||
case PK_TASK_STATUS_QUERY:
|
||||
text = "query";
|
||||
break;
|
||||
case PK_TASK_STATUS_REMOVE:
|
||||
text = "remove";
|
||||
break;
|
||||
case PK_TASK_STATUS_DOWNLOAD:
|
||||
text = "download";
|
||||
break;
|
||||
case PK_TASK_STATUS_INSTALL:
|
||||
text = "install";
|
||||
break;
|
||||
case PK_TASK_STATUS_UPDATE:
|
||||
text = "update";
|
||||
break;
|
||||
case PK_TASK_STATUS_EXIT:
|
||||
text = "exit";
|
||||
break;
|
||||
default:
|
||||
text = "invalid";
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
|
@ -19,8 +19,8 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __PK_TASK_COMMON_H
|
||||
#define __PK_TASK_COMMON_H
|
||||
#ifndef __PK_TASK_H
|
||||
#define __PK_TASK_H
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
@ -31,27 +31,29 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef enum {
|
||||
PK_TASK_COMMON_STATUS_INVALID,
|
||||
PK_TASK_COMMON_STATUS_SETUP,
|
||||
PK_TASK_COMMON_STATUS_QUERY,
|
||||
PK_TASK_COMMON_STATUS_REMOVE,
|
||||
PK_TASK_COMMON_STATUS_DOWNLOAD,
|
||||
PK_TASK_COMMON_STATUS_INSTALL,
|
||||
PK_TASK_COMMON_STATUS_UPDATE,
|
||||
PK_TASK_COMMON_STATUS_EXIT,
|
||||
PK_TASK_COMMON_STATUS_UNKNOWN
|
||||
PK_TASK_STATUS_INVALID,
|
||||
PK_TASK_STATUS_SETUP,
|
||||
PK_TASK_STATUS_QUERY,
|
||||
PK_TASK_STATUS_REMOVE,
|
||||
PK_TASK_STATUS_DOWNLOAD,
|
||||
PK_TASK_STATUS_INSTALL,
|
||||
PK_TASK_STATUS_UPDATE,
|
||||
PK_TASK_STATUS_EXIT,
|
||||
PK_TASK_STATUS_UNKNOWN
|
||||
} PkTaskStatus;
|
||||
|
||||
typedef enum {
|
||||
PK_TASK_COMMON_EXIT_SUCCESS,
|
||||
PK_TASK_COMMON_EXIT_FAILED,
|
||||
PK_TASK_COMMON_EXIT_CANCELED,
|
||||
PK_TASK_COMMON_EXIT_UNKNOWN
|
||||
PK_TASK_EXIT_SUCCESS,
|
||||
PK_TASK_EXIT_FAILED,
|
||||
PK_TASK_EXIT_CANCELED,
|
||||
PK_TASK_EXIT_UNKNOWN
|
||||
} PkTaskExit;
|
||||
|
||||
PkTaskExit pk_task_common_exit_from_text (const gchar *exit);
|
||||
PkTaskStatus pk_task_common_status_from_text (const gchar *status);
|
||||
PkTaskExit pk_task_exit_from_text (const gchar *exit);
|
||||
const gchar *pk_task_exit_to_text (PkTaskExit exit);
|
||||
PkTaskStatus pk_task_status_from_text (const gchar *status);
|
||||
const gchar *pk_task_status_to_text (PkTaskStatus status);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __PK_TASK_COMMON_H */
|
||||
#endif /* __PK_TASK_H */
|
||||
|
Loading…
Reference in New Issue
Block a user