[tracker] TrackerMinerManager: add get_status() and is_paused().
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] TrackerMinerManager: add get_status() and is_paused().
- Date: Fri, 2 Oct 2009 10:47:42 +0000 (UTC)
commit fc0acc7b0c5846f0126fdb6f23cb84c2e775ba1b
Author: Carlos Garnacho <carlos lanedo com>
Date: Fri Oct 2 11:51:39 2009 +0200
TrackerMinerManager: add get_status() and is_paused().
src/libtracker-miner/tracker-miner-manager.c | 110 ++++++++++++++++++++++++++
src/libtracker-miner/tracker-miner-manager.h | 10 +++
2 files changed, 120 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-manager.c b/src/libtracker-miner/tracker-miner-manager.c
index ff0461c..405e77e 100644
--- a/src/libtracker-miner/tracker-miner-manager.c
+++ b/src/libtracker-miner/tracker-miner-manager.c
@@ -591,6 +591,116 @@ tracker_miner_manager_is_active (TrackerMinerManager *manager,
return active;
}
+gboolean
+tracker_miner_manager_get_status (TrackerMinerManager *manager,
+ const gchar *miner,
+ gchar **status,
+ gdouble *progress)
+{
+ DBusGProxy *proxy;
+ GError *error = NULL;
+ gdouble p;
+ gchar *st;
+
+ g_return_val_if_fail (TRACKER_IS_MINER_MANAGER (manager), FALSE);
+ g_return_val_if_fail (miner != NULL, FALSE);
+
+ proxy = find_miner_proxy (manager, miner);
+
+ if (!proxy) {
+ g_critical ("No D-Bus proxy found for miner '%s'", miner);
+ return FALSE;
+ }
+
+ org_freedesktop_Tracker1_Miner_get_progress (proxy, &p, &error);
+
+ if (error) {
+ g_critical ("Could not get miner progress for '%s': %s", miner,
+ error->message);
+ g_error_free (error);
+
+ return FALSE;
+ }
+
+ org_freedesktop_Tracker1_Miner_get_status (proxy, &st, &error);
+
+ if (error) {
+ g_critical ("Could not get miner status for '%s': %s", miner,
+ error->message);
+ g_error_free (error);
+
+ return FALSE;
+ }
+
+ if (status) {
+ *status = st;
+ } else {
+ g_free (st);
+ }
+
+ if (progress) {
+ *progress = p;
+ }
+
+ return TRUE;
+}
+
+gboolean
+tracker_miner_manager_is_paused (TrackerMinerManager *manager,
+ const gchar *miner,
+ GStrv *applications,
+ GStrv *reasons)
+{
+ DBusGProxy *proxy;
+ GStrv apps, r;
+ GError *error = NULL;
+ gboolean paused;
+
+ if (applications) {
+ *applications = NULL;
+ }
+
+ if (reasons) {
+ *reasons = NULL;
+ }
+
+ g_return_val_if_fail (TRACKER_IS_MINER_MANAGER (manager), TRUE);
+ g_return_val_if_fail (miner != NULL, TRUE);
+
+ proxy = find_miner_proxy (manager, miner);
+
+ if (!proxy) {
+ g_critical ("No D-Bus proxy found for miner '%s'", miner);
+ return FALSE;
+ }
+
+ org_freedesktop_Tracker1_Miner_get_pause_details (proxy, &apps, &r, &error);
+
+ if (error) {
+ g_critical ("Could not get pause details for miner '%s': %s", miner,
+ error->message);
+ g_error_free (error);
+
+ return TRUE;
+ }
+
+ paused = (g_strv_length (apps) > 0);
+
+ if (applications) {
+ *applications = apps;
+ } else {
+ g_strfreev (apps);
+ }
+
+ if (reasons) {
+ *reasons = r;
+ } else {
+ g_strfreev (r);
+ }
+
+ return paused;
+}
+
const gchar *
tracker_miner_manager_get_display_name (TrackerMinerManager *manager,
const gchar *miner)
diff --git a/src/libtracker-miner/tracker-miner-manager.h b/src/libtracker-miner/tracker-miner-manager.h
index 9ce77f4..6cfc857 100644
--- a/src/libtracker-miner/tracker-miner-manager.h
+++ b/src/libtracker-miner/tracker-miner-manager.h
@@ -74,6 +74,16 @@ gboolean tracker_miner_manager_resume (TrackerMinerManager *manager,
gboolean tracker_miner_manager_is_active (TrackerMinerManager *manager,
const gchar *miner);
+gboolean tracker_miner_manager_is_paused (TrackerMinerManager *manager,
+ const gchar *miner,
+ GStrv *applications,
+ GStrv *reasons);
+
+gboolean tracker_miner_manager_get_status (TrackerMinerManager *manager,
+ const gchar *miner,
+ gchar **status,
+ gdouble *progress);
+
const gchar * tracker_miner_manager_get_display_name (TrackerMinerManager *manager,
const gchar *miner);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]