[tracker/miner-priority-queues: 20/22] libtracker-miner: propagate priority throughout file insertions/updates in TrackerMinerFS
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/miner-priority-queues: 20/22] libtracker-miner: propagate priority throughout file insertions/updates in TrackerMinerFS
- Date: Tue, 19 Jul 2011 11:15:09 +0000 (UTC)
commit d75e3a49e45fda33030ddd44440fd6d039ce9349
Author: Carlos Garnacho <carlos lanedo com>
Date: Thu Jul 14 14:29:15 2011 +0200
libtracker-miner: propagate priority throughout file insertions/updates in TrackerMinerFS
src/libtracker-miner/tracker-miner-fs.c | 22 +++++++++++++++++-----
1 files changed, 17 insertions(+), 5 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c
index efbe8e7..51fd00a 100644
--- a/src/libtracker-miner/tracker-miner-fs.c
+++ b/src/libtracker-miner/tracker-miner-fs.c
@@ -135,6 +135,7 @@ typedef struct {
GFile *file;
gchar *urn;
gchar *parent_urn;
+ gint priority;
GCancellable *cancellable;
TrackerSparqlBuilder *builder;
TrackerMiner *miner;
@@ -1657,6 +1658,7 @@ iri_cache_check_update (TrackerMinerFS *fs,
static UpdateProcessingTaskContext *
update_processing_task_context_new (TrackerMiner *miner,
+ gint priority,
const gchar *urn,
const gchar *parent_urn,
GCancellable *cancellable,
@@ -1668,6 +1670,7 @@ update_processing_task_context_new (TrackerMiner *miner,
ctxt->miner = miner;
ctxt->urn = g_strdup (urn);
ctxt->parent_urn = g_strdup (parent_urn);
+ ctxt->priority = priority;
if (cancellable) {
ctxt->cancellable = g_object_ref (cancellable);
@@ -1849,7 +1852,8 @@ item_add_or_update_cb (TrackerMinerFS *fs,
static gboolean
item_add_or_update (TrackerMinerFS *fs,
- GFile *file)
+ GFile *file,
+ gint priority)
{
TrackerMinerFSPrivate *priv;
TrackerSparqlBuilder *sparql;
@@ -1874,6 +1878,7 @@ item_add_or_update (TrackerMinerFS *fs,
/* Create task and add it to the pool as a WAIT task (we need to extract
* the file metadata and such) */
ctxt = update_processing_task_context_new (TRACKER_MINER (fs),
+ priority,
urn,
fs->priv->current_iri_cache_parent_urn,
cancellable,
@@ -2208,7 +2213,7 @@ item_move (TrackerMinerFS *fs,
G_PRIORITY_DEFAULT);
retval = TRUE;
} else {
- retval = item_add_or_update (fs, file);
+ retval = item_add_or_update (fs, file, G_PRIORITY_DEFAULT);
}
g_free (source_uri);
@@ -2454,7 +2459,8 @@ should_wait (TrackerMinerFS *fs,
static QueueState
item_queue_get_next_file (TrackerMinerFS *fs,
GFile **file,
- GFile **source_file)
+ GFile **source_file,
+ gint *priority_out)
{
ItemMovedData *data;
GFile *queue_file;
@@ -2487,6 +2493,7 @@ item_queue_get_next_file (TrackerMinerFS *fs,
}
*file = queue_file;
+ *priority_out = priority;
return QUEUE_DELETED;
}
@@ -2567,6 +2574,7 @@ item_queue_get_next_file (TrackerMinerFS *fs,
}
*file = queue_file;
+ *priority_out = priority;
return QUEUE_CREATED;
}
@@ -2604,6 +2612,8 @@ item_queue_get_next_file (TrackerMinerFS *fs,
return QUEUE_WAIT;
}
+ *priority_out = priority;
+
return QUEUE_UPDATED;
}
@@ -2648,6 +2658,7 @@ item_queue_get_next_file (TrackerMinerFS *fs,
*file = g_object_ref (data->file);
*source_file = g_object_ref (data->source_file);
+ *priority_out = priority;
item_moved_data_free (data);
return QUEUE_MOVED;
}
@@ -2728,9 +2739,10 @@ item_queue_handlers_cb (gpointer user_data)
GTimeVal time_now;
static GTimeVal time_last = { 0 };
gboolean keep_processing = TRUE;
+ gint priority;
fs = user_data;
- queue = item_queue_get_next_file (fs, &file, &source_file);
+ queue = item_queue_get_next_file (fs, &file, &source_file, &priority);
if (queue == QUEUE_WAIT) {
/* Items are still being processed, and there is pending
@@ -2899,7 +2911,7 @@ item_queue_handlers_cb (gpointer user_data)
if (!parent ||
fs->priv->current_iri_cache_parent_urn ||
file_is_crawl_directory (fs, file)) {
- keep_processing = item_add_or_update (fs, file);
+ keep_processing = item_add_or_update (fs, file, priority);
} else {
TrackerPriorityQueue *item_queue;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]