[tracker/libtracker-miner] TrackerMiner: Add tracker_miner_commit().



commit acda188242168899f941dd9df446123caae1c40e
Author: Carlos Garnacho <carlos lanedo com>
Date:   Mon Aug 31 17:38:59 2009 +0200

    TrackerMiner: Add tracker_miner_commit().
    
    This function also takes pausing into account.

 src/libtracker-miner/tracker-miner.c |   27 +++++++++++++++++++++++----
 src/libtracker-miner/tracker-miner.h |    2 ++
 2 files changed, 25 insertions(+), 4 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner.c b/src/libtracker-miner/tracker-miner.c
index d67a13c..bf19b1b 100644
--- a/src/libtracker-miner/tracker-miner.c
+++ b/src/libtracker-miner/tracker-miner.c
@@ -544,10 +544,6 @@ tracker_miner_execute_sparql (TrackerMiner  *miner,
 	tracker_resources_batch_sparql_update (miner->private->client,
 					       sparql, 
 					       &internal_error);
-
-	/* FIXME: should not commit after each update */
-	tracker_resources_batch_commit (miner->private->client, NULL);
-
 	if (!internal_error) {
 		return TRUE;
 	}
@@ -562,6 +558,29 @@ tracker_miner_execute_sparql (TrackerMiner  *miner,
 	return FALSE;
 }
 
+gboolean
+tracker_miner_commit (TrackerMiner *miner)
+{
+	GError *error = NULL;
+
+	g_return_val_if_fail (TRACKER_IS_MINER (miner), FALSE);
+
+	if (g_hash_table_size (miner->private->pauses) > 0) {
+		g_warning ("Can not commit while miner is paused");
+		return FALSE;
+	}
+
+	tracker_resources_batch_commit (miner->private->client, &error);
+
+	if (error) {
+		g_critical ("Could not commit: %s", error->message);
+		g_error_free (error);
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
 gint
 tracker_miner_pause (TrackerMiner  *miner,
 		     const gchar   *application,
diff --git a/src/libtracker-miner/tracker-miner.h b/src/libtracker-miner/tracker-miner.h
index 2f181eb..5d6dc9b 100644
--- a/src/libtracker-miner/tracker-miner.h
+++ b/src/libtracker-miner/tracker-miner.h
@@ -81,6 +81,8 @@ TrackerClient *tracker_miner_get_client     (TrackerMiner  *miner);
 gboolean       tracker_miner_execute_sparql (TrackerMiner  *miner,
 					     const gchar   *sparql,
 					     GError       **error);
+gboolean       tracker_miner_commit         (TrackerMiner  *miner);
+
 gint           tracker_miner_pause          (TrackerMiner  *miner,
 					     const gchar   *application,
 					     const gchar   *reason,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]