[tracker/libtracker-miner] Added status and progress to tracker-miner object
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/libtracker-miner] Added status and progress to tracker-miner object
- Date: Mon, 17 Aug 2009 13:08:00 +0000 (UTC)
commit 523ae37416cc382395ff5deecf0966dc1b014f6b
Author: Martyn Russell <martyn imendio com>
Date: Mon Aug 17 14:07:24 2009 +0100
Added status and progress to tracker-miner object
src/libtracker-miner/tracker-marshal.list | 1 +
src/libtracker-miner/tracker-miner.c | 72 +++++++++++++++++++++++++++--
src/libtracker-miner/tracker-miner.h | 20 +++++---
3 files changed, 82 insertions(+), 11 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-marshal.list b/src/libtracker-miner/tracker-marshal.list
index 2032ad4..f519b71 100644
--- a/src/libtracker-miner/tracker-marshal.list
+++ b/src/libtracker-miner/tracker-marshal.list
@@ -1,4 +1,5 @@
VOID:OBJECT,BOOLEAN
VOID:OBJECT,OBJECT,BOOLEAN,BOOLEAN
VOID:UINT,UINT,UINT,UINT
+VOID:STRING,DOUBLE
BOOL:OBJECT
diff --git a/src/libtracker-miner/tracker-miner.c b/src/libtracker-miner/tracker-miner.c
index 915721b..251f654 100644
--- a/src/libtracker-miner/tracker-miner.c
+++ b/src/libtracker-miner/tracker-miner.c
@@ -22,19 +22,25 @@
#include <libtracker/tracker.h>
+#include "tracker-marshal.h"
#include "tracker-miner.h"
#include "tracker-miner-dbus.h"
#define TRACKER_MINER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRACKER_TYPE_MINER, TrackerMinerPrivate))
struct TrackerMinerPrivate {
- gchar *name;
TrackerClient *client;
+
+ gchar *name;
+ gchar *status;
+ gdouble progress;
};
enum {
PROP_0,
- PROP_NAME
+ PROP_NAME,
+ PROP_STATUS,
+ PROP_PROGRESS
};
enum {
@@ -43,6 +49,7 @@ enum {
PAUSED,
RESUMED,
TERMINATED,
+ PROGRESS,
LAST_SIGNAL
};
@@ -112,14 +119,40 @@ tracker_miner_class_init (TrackerMinerClass *klass)
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ signals[PROGRESS] =
+ g_signal_new ("progress",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (TrackerMinerClass, terminated),
+ NULL, NULL,
+ tracker_marshal_VOID__STRING_DOUBLE,
+ G_TYPE_NONE, 2,
+ G_TYPE_STRING,
+ G_TYPE_DOUBLE);
g_object_class_install_property (object_class,
PROP_NAME,
g_param_spec_string ("name",
- "Miner name",
- "Miner name",
+ "Mame",
+ "Name",
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (object_class,
+ PROP_STATUS,
+ g_param_spec_string ("status",
+ "Status",
+ "Status (unique to each miner)",
+ NULL,
+ G_PARAM_READWRITE));
+ g_object_class_install_property (object_class,
+ PROP_PROGRESS,
+ g_param_spec_double ("progress",
+ "Progress",
+ "Progress (between 0 and 1)",
+ 0.0,
+ 1.0,
+ 0.0,
+ G_PARAM_READWRITE));
g_type_class_add_private (object_class, sizeof (TrackerMinerPrivate));
}
@@ -147,6 +180,14 @@ miner_set_property (GObject *object,
g_free (miner->private->name);
miner->private->name = g_value_dup_string (value);
break;
+ case PROP_STATUS:
+ g_free (miner->private->status);
+ miner->private->status = g_value_dup_string (value);
+ break;
+ case PROP_PROGRESS:
+ miner->private->progress = g_value_get_double (value);
+ /* Do we signal here? */
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -165,6 +206,12 @@ miner_get_property (GObject *object,
case PROP_NAME:
g_value_set_string (value, miner->private->name);
break;
+ case PROP_STATUS:
+ g_value_set_string (value, miner->private->status);
+ break;
+ case PROP_PROGRESS:
+ g_value_set_double (value, miner->private->progress);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -187,6 +234,7 @@ static gboolean
terminate_miner_cb (TrackerMiner *miner)
{
g_signal_emit (miner, signals[TERMINATED], 0);
+
return TRUE;
}
@@ -222,6 +270,22 @@ tracker_miner_start (TrackerMiner *miner)
g_signal_emit (miner, signals[STARTED], 0);
}
+gchar *
+tracker_miner_get_status (TrackerMiner *miner)
+{
+ g_return_val_if_fail (TRACKER_IS_MINER (miner), NULL);
+
+ return g_strdup ("Idle");
+}
+
+gdouble
+tracker_miner_get_progress (TrackerMiner *miner)
+{
+ g_return_val_if_fail (TRACKER_IS_MINER (miner), 0.0);
+
+ return 0.0;
+}
+
/* DBus methods */
void
tracker_miner_pause (TrackerMiner *miner,
diff --git a/src/libtracker-miner/tracker-miner.h b/src/libtracker-miner/tracker-miner.h
index c903c6c..e5bd133 100644
--- a/src/libtracker-miner/tracker-miner.h
+++ b/src/libtracker-miner/tracker-miner.h
@@ -45,21 +45,27 @@ struct TrackerMinerClass {
GObjectClass parent_class;
/* signals */
- void (* started) (TrackerMiner *miner);
- void (* stopped) (TrackerMiner *miner);
+ void (* started) (TrackerMiner *miner);
+ void (* stopped) (TrackerMiner *miner);
- void (* paused) (TrackerMiner *miner);
- void (* resumed) (TrackerMiner *miner);
+ void (* paused) (TrackerMiner *miner);
+ void (* resumed) (TrackerMiner *miner);
void (* terminated) (TrackerMiner *miner);
+
+ void (* progress) (TrackerMiner *miner,
+ const gchar *status,
+ gdouble progress);
};
-GType tracker_miner_get_type (void) G_GNUC_CONST;
+GType tracker_miner_get_type (void) G_GNUC_CONST;
-G_CONST_RETURN gchar *tracker_miner_get_name (TrackerMiner *miner);
-void tracker_miner_start (TrackerMiner *miner);
+void tracker_miner_start (TrackerMiner *miner);
+G_CONST_RETURN gchar *tracker_miner_get_name (TrackerMiner *miner);
+gchar *tracker_miner_get_status (TrackerMiner *miner);
+gdouble tracker_miner_get_progress (TrackerMiner *miner);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]